在其他servlet中设置的Cookie未在请求中设置到同一应用程序的不同servlet

时间:2014-06-24 23:07:15

标签: java jsf servlets cookies servlet-filters

我在JBOSS 8服务器上部署了一个耳朵应用程序。前端部分是JSF应用程序。在frontend.war中,我定义了两个servlet:

  1. 我的GUI的JSF 2.2 servlet,在本地运行127.0.0.1:8080/app
  2. MockAuthenticationServlet,在本地运行127.0.0.1:8080/app/auth
  3. MockAuthenticationServlet只是设置一个cookie(测试cookie),如下所示:

    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        Cookie cookie = new Cookie(COOKIE_NAME, "12345");
        cookie.setPath("/");
        resp.addCookie(cookie);
        resp.sendRedirect("/app");
    }
    

    这是ServletFilter中从doFiter调用的方法:

    private Cookie getCookie(HttpServletRequest request) {
        if (request.getCookies() != null) {
            for (Cookie c : request.getCookies()) {
                if (c.getName().equals(COOKIE_NAME)) {
                    return c;
                }
            }
        }
    
        return (Cookie) request.getAttribute(COOKIE_NAME);
    }
    

    最后一次返回仅适用于作为属性发送的情况。该cookie应该从循环中返回。

    我已经调试了MockAuthenticationServlet并且Cookie被设置了,当我打开浏览器cookie列表时我也看到了它。但是,在我的ServletFilter中,我想检查是否设置了此cookie,请求中的cookie列表为空。我错过了什么吗?谢谢你的提示。

0 个答案:

没有答案