添加cookie然后将重定向发送到不同的域会导致cookie丢失

时间:2015-01-22 05:34:36

标签: jsf servlets redirect cookies

我使用response.addCookie添加Cookie,然后使用response.sendRedirect重定向到不同域中的网址。 Cookie路径已设置为“/".

HttpServletResponse response = (HttpServletResponse) Facescontext.getCurrentInstance().getExternalcontext().getResponse();
response.addCookie(cookie);
response.sendRedirect("http://different.domain.com/xyz.xhtml");

我在调试模式下观察并检查每个级别的响应对象在调用“xhtml”页面本身之前cookie丢失了。

我正在使用Tomcat 7.0.26。 JDK 1.7和JSF 2.0。

1 个答案:

答案 0 :(得分:0)

这是违反安全规定的行为。您不能为发送请求的域设置不同域的响应cookie。您最多可以在foo.example.combar.example.com等不同子域之间共享Cookie,方法是将Cookie域设置为.example.com,并带有前导时段。

寻找您想到的功能要求的另一种解决方案。一种常用的方法是发送一个长的唯一自动生成值作为"令牌"作为重定向网址中的请求参数。