user1997553
user1997553

Reputation: 233

JSF filter not executed

@WebFilter(filterName = "loginFilter",  value = { "/faces/kosz.xhtml" } , dispatcherTypes = { DispatcherType.FORWARD, DispatcherType.ERROR, DispatcherType.REQUEST, DispatcherType.INCLUDE }  )
public class loginFilter implements Filter {    
    public loginFilter(){
    }

    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain)
            throws IOException, ServletException{
        HttpServletRequest req = ( HttpServletRequest ) request;
        userSession auth = ( userSession ) req.getSession().getAttribute("user");
        if ( auth != null && auth.isLogged() ) {
            chain.doFilter(request, response);
             HttpServletResponse res = ( HttpServletResponse ) response;
            res.sendRedirect(req.getContextPath() + "/login.xhtml");
        }
        else {
            HttpServletResponse res = ( HttpServletResponse ) response;
            res.sendRedirect(req.getContextPath() + "/login.xhtml");
        }
      }

    @Override
    public void init(FilterConfig filterConfig) throws ServletException
      {
        throw new UnsupportedOperationException("Not supported yet.");
      }

    @Override
    public void destroy()
      {
        throw new UnsupportedOperationException("Not supported yet.");
      }
/**
 * Return the filter configuration object for this filter.
}

The problem is that the filter doesn't execute. THe URL is localhost:8080/PP2/faces/kosz.xhtml . What would be the proper way to do this? I have no entry in my web.xml, it's all based on Annotations.

Upvotes: 0

Views: 410

Answers (1)

partlov
partlov

Reputation: 14277

You throw exceptions in init() and destroy() methods of filter. If you don't want to do anything in init() or destroy(), just leave body of method empty. In this case your filter is not successfully initialized at all.

Upvotes: 4

Related Questions