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]