1 15 package org.apache.tapestry; 16 17 import java.io.IOException ; 18 19 import javax.servlet.Filter ; 20 import javax.servlet.FilterChain ; 21 import javax.servlet.FilterConfig ; 22 import javax.servlet.ServletException ; 23 import javax.servlet.ServletRequest ; 24 import javax.servlet.ServletResponse ; 25 import javax.servlet.http.HttpServletRequest ; 26 import javax.servlet.http.HttpServletResponse ; 27 28 import org.apache.commons.logging.Log; 29 import org.apache.commons.logging.LogFactory; 30 import org.apache.hivemind.HiveMind; 31 32 47 48 public class RedirectFilter implements Filter 49 { 50 private static final Log LOG = LogFactory.getLog(RedirectFilter.class); 51 52 public static final String REDIRECT_PATH_PARAM = "redirect-path"; 53 54 private String _redirectPath; 55 56 public void init(FilterConfig config) throws ServletException 57 { 58 _redirectPath = config.getInitParameter(REDIRECT_PATH_PARAM); 59 60 if (HiveMind.isBlank(_redirectPath)) 61 _redirectPath = "/app"; 62 63 if (LOG.isDebugEnabled()) 64 LOG.debug(Tapestry.format("RedirectServlet.redirect-path", _redirectPath)); 65 } 66 67 public void destroy() 68 { 69 70 } 71 72 78 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 79 throws IOException , ServletException 80 { 81 HttpServletRequest hrequest = (HttpServletRequest ) request; 82 HttpServletResponse hresponse = (HttpServletResponse ) response; 83 84 String servletPath = hrequest.getServletPath(); 85 String pathInfo = hrequest.getPathInfo(); 86 87 91 if ((HiveMind.isBlank(servletPath) || servletPath.equals("/")) 92 && (HiveMind.isBlank(pathInfo) || pathInfo.equals("/"))) 93 { 94 String path = hrequest.getContextPath() + _redirectPath; 95 96 if (LOG.isDebugEnabled()) 97 LOG.debug(Tapestry.format("RedirectServlet.redirecting", path)); 98 99 hresponse.sendRedirect(path); 100 return; 101 } 102 103 chain.doFilter(request, response); 104 } 105 106 } | Popular Tags |