Project

General

Profile

1 3035 perry
/* 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
}