Project

General

Profile

1
/* WMS Filter
2
 * Author: MP
3
 * Status: Just a test
4
 * MPTODO: make this a true servlet filter to append sld to any incoming wms request
5
 */
6
package edu.ucsb.nceas.metacat.spatial;
7

    
8
import javax.servlet.*;
9
import javax.servlet.http.*;
10
import java.io.IOException;
11
import java.util.Enumeration;
12

    
13
public final class WmsFilter implements Filter {
14
   private FilterConfig filterConfig = null;
15

    
16
   public void init(FilterConfig filterConfig) 
17
      throws ServletException {
18
      this.filterConfig = filterConfig;
19
   }
20

    
21
   public void destroy() {
22
      this.filterConfig = null;
23
   }
24

    
25
   public void doFilter(ServletRequest request,
26
      ServletResponse response, FilterChain chain) 
27
      throws IOException, ServletException {
28

    
29
      if (filterConfig == null)
30
         return;
31

    
32
      System.out.println("\n===============");
33

    
34
      System.out.println(" The filter Works !!!");
35
      long before = System.currentTimeMillis();
36
      
37
      // Attributes != Paramters but there is no setParameter
38
      //request.setAttribute("SLD", "http://pmark.msi.ucsb.edu:8180/knb/style/skins/ebm/spatial/data_bounds_style.sld");
39

    
40
      Enumeration e = request.getParameterNames();
41
      while( e.hasMoreElements() ) {
42
          String name = (String) e.nextElement();
43
          System.out.println( name + " = " + request.getParameter(name));
44
      }
45

    
46
      
47
      chain.doFilter(request, response);
48
      long after = System.currentTimeMillis();
49
      System.out.println(" *** Time  " + (after - before) + "ms");
50

    
51

    
52
      System.out.println("===============\n");
53

    
54
      // A simple redirect won't work since it will filter itself endlessly
55
      //HttpServletResponse hres = (HttpServletResponse) response;
56
      //HttpServletRequest hreq = (HttpServletRequest) response;
57
      //hres.sendRedirect( hreq.getRequestURL().toString() );
58
   }
59
}
(7-7/8)