Hello, comments below
On Wed, 2005-04-27 at 10:19, Scott Purcell wrote: > Hello, > I decided to try and implement a filter for my struts application. A filter > that would check for a session object, and if it does not exist, send the > user to a certain link. > > Anyway, I found an example in the "Struts Cookbook" and I am implementing it. > But for whatever reason, when I hit a page that should redirect me, I can see > (by debug statements) that the filter is hit 10 or more times, and then I get > an error stating: "Redirect limit for this URL exceeeded. Unable to load the > requested page") in an alert Box? > > I would really like to get this going: > Here is the code, and the web.xml I am using. Any help would be appreciated. > > CODE > public class AppFilter implements Filter { > > private String onFailure = "index.jsp"; > private FilterConfig filterConfig; > > public void init(FilterConfig filterConfig) throws ServletException { > this.filterConfig = filterConfig; > onFailure = filterConfig.getInitParameter("onFailure"); > } > > public void doFilter(ServletRequest request, > ServletResponse response, > FilterChain chain) > throws IOException, ServletException { > > > Logger log = Logger.getLogger(this.getClass().getName()); > HttpServletRequest req = (HttpServletRequest) request; > HttpServletResponse resp = (HttpServletResponse) response; > log.info("XXXXXXXXXXXXX"); > log.info("AppFilter called for a request."); > log.info("param onFailure=" + onFailure); > > // if the page is onFailure page continue down the chain i think you should change this: > if (req.getServletPath().equals(onFailure)) { to this: if (req.getPathInfo().equals(onFailure)) { > log.info("YYYY equals YYYY"); > chain.doFilter(request, response); > return; > } > > > HttpSession session = req.getSession(); > AppObject appObject = (AppObject)session.getAttribute("APP_OBJECT"); > if (appObject == null) { > log.info("AppObject is null, send to front door."); > log.info("sending path=" + req.getContextPath() + onFailure); > resp.sendRedirect(req.getContextPath() + onFailure); > return; > } else { > log.info("DDDDDDDD"); > chain.doFilter(request, response); > } > } > > public void destroy() { > } > } > > > WEB.XML > <filter> > <filter-name>AppFilter</filter-name> > <filter-class>com.mb.purcell.app.AppFilter</filter-class> > <init-param> > <param-name>onFailure</param-name> > <param-value>/index.jsp</param-value> > </init-param> > </filter> > > <filter-mapping> > <filter-name>AppFilter</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > > Thanks, > > Scott K Purcell > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]