1 21 22 package uk.org.primrose.web; 23 24 import javax.servlet.Filter ; 26 import javax.servlet.FilterConfig ; 27 import javax.servlet.FilterChain ; 28 import javax.servlet.ServletContext ; 29 import javax.servlet.ServletRequest ; 30 import javax.servlet.ServletResponse ; 31 import javax.servlet.ServletException ; 32 import javax.servlet.http.HttpServletRequest ; 33 import javax.servlet.http.HttpServletResponse ; 34 35 import java.io.IOException ; 37 import java.util.Date ; 38 39 40 47 public class SecurityFilter implements Filter { 48 private FilterConfig config = null; 50 51 52 58 public void init(FilterConfig config) throws ServletException { 59 this.config = config; 60 } 61 62 66 public void destroy() { 67 config = null; 68 } 69 70 79 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException , ServletException { 80 HttpServletRequest httpRequest = (HttpServletRequest )request; 81 HttpServletResponse httpResponse = (HttpServletResponse )response; 82 String uri = httpRequest.getRequestURI(); 83 if (uri.indexOf("/primrose/") != -1) uri = uri.replaceAll("/primrose/", "/"); 84 String [] parts = uri.split("/"); 85 String referer = httpRequest.getHeader("referer"); 86 if (referer == null) referer = ""; 87 88 89 System.err.println("Referer : " +referer +", RemoteAddr : " +httpRequest.getRemoteAddr() +", URL : " +uri +", Date : " +(new java.util.Date ())); 90 92 if (parts.length == 0 || parts[parts.length -1].indexOf(".") == -1) { 94 System.err.println("[SecurityFilter] Rejecting request for " +uri +", forwarding to home.jsp " +new Date ()); 95 httpResponse.sendRedirect("/home.jsp"); 96 } else { 102 chain.doFilter(request, response); 104 } 105 106 } 107 108 } 109 | Popular Tags |