Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Struts 2 »

[S2] Filter Cookie

ekoje ekoje

2007-02-14


Hi Guys,

I would like to check a cookie every time a user try to access my website.
So, I've created an interceptor, it work fine but it didn't work if the user
ask for a JSP page. The interceptor was never called.
So, I've created a filter who check all cookies at every request to my
server. Unfortunetly it doesn't work too, every time my request parameters
and cookies are empty even if I'm sure that I can find a cookie.

Is there anything in Struts 2 who remove all data in the request object ???

Please find the code:
public final class LoginFilter implements Filter {
  private final static String FILTER_APPLIED =
"_clickstream_filter_applied";

  private FilterConfig filterConfig = null;

  public void init(FilterConfig filterConfig) throws ServletException {
    this.filterConfig = filterConfig;
  }

  public void destroy() {
    this.filterConfig = null;
  }

  public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
       throws IOException, ServletException {
    if (request.getAttribute (FILTER_APPLIED) == null) {
       request.setAttribute(FILTER_APPLIED, Boolean.TRUE);
       Cookie[] cookies = ((HttpServletRequest) request).getCookies();

       if (cookies != null) {
          System.out.println(cookies.length);

          for (int i = 0; i < cookies.length; i++) {
            System.out.println(cookies[i].getName());
            if (cookies != null &&
cookies[i].getName().equals("ebespoke"))
{
               System.out.println("cookie found");
               if
(AccountManager.isCookieLogin(cookies[i].getValue()))
{
                  System.out.println("cookie alive");
                  String[] values =
StringUtils.split(cookies[i].getComment(),
"|");
                  ((HttpServletRequest)
request).getSession().setAttribute("userD",
                       AccountManager.getUserDetails
(values[0]));
               }
            }
          }
       }
    }
    chain.doFilter(request, response);
  }
}

Thanks for your help
©2008 junlu.com - Jax Systems, LLC, U.S.A.