【问题标题】:jersey adding a cookie and then doing a redirect球衣添加一个cookie,然后做一个重定向
【发布时间】:2015-07-26 11:10:37
【问题描述】:

我正在尝试为以下域设置 cookie 并执行 307 重定向。但是,cookie 似乎没有被设置,并且不会出现在来自浏览器的后续请求中。有什么我遗漏的吗?

import javax.ws.rs.*;
import javax.ws.rs.core.*;

public Response getUserInfo() {
     try {
         return Response.temporaryRedirect(new java.net.URI(this.loginResponseRedirectUrl))
             .cookie(new NewCookie("xxxx", "value", "/", ".test.net", 1, null, 24*60*60, false ))
             .build();

     } catch(Exception e) {
         System.out.println("REDIRECT EXCEPTION " + e.getMessage());
     }
}

【问题讨论】:

  • 你的球衣版本是什么?
  • 1.19 请注意,我尝试设置的域与传入请求的域不同。难道就不能这样做吗?
  • 您能否启用日志记录以查看 cookie 是否从 jersey 服务器发送,这样我们可以查看客户端是否即使服务器发送也没有接收到:

标签: java cookies jersey http-status-code-307


【解决方案1】:

您可能会从服务器发送 cookie 但客户端拒绝它,以便查看是否可以启用日志记录

在 jersey 1.x 中进入你的 web.xml 并添加:

<init-param>
    <param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
    <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>
<init-param>
    <param-name>com.sun.jersey.spi.container.ContainerRequestFilters</param-name>
    <param-value>com.sun.jersey.api.container.filter.LoggingFilter</param-value>
</init-param>

给我反馈以帮助您解决这个问题。

【讨论】:

  • 请给我看一下服务器跟踪。
  • 您不会有任何 cookie 拒绝错误,但您将在球衣服务器代码的响应中看到没有 cookie。
  • 好吧,我在响应中看到了 cookie,我什至在浏览器 (Set-Cookie) 标头中的请求的 302 响应中看到了它,但是由于安全限制,浏览器忽略了设置它也许..提供一点上下文:我试图将 cookie 域设置为 a.com 并重定向到 a.com,而请求的传入域位于 b.com 域
  • 1. 域名必须有两个点(参见 RFC tools.ietf.org/html/rfc1034#section-3.5)才有效 2. 开发环境注意事项:cookie 域必须设置为 "" 而不是 localhos
猜你喜欢
  • 1970-01-01
  • 2021-08-29
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 2018-03-17
相关资源
最近更新 更多