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]

Reply via email to