gpt4 book ai didi

java - Cookie 未被读取

转载 作者:行者123 更新时间:2023-12-04 06:27:29 25 4
gpt4 key购买 nike

我在我的网络应用程序中实现了“记住我”功能。我使用包含使用 RSA 加密的用户名/密码的 cookie 来做到这一点。

我登录时添加cookie;如果然后我注销(不关闭浏览器)cookie 读取正常,在登录页面我看到用户名/密码已经输入。
但是如果我关闭浏览器;或关闭选项卡并再次运行应用程序,当读取 cookie 时,读取的唯一 cookie 是 JSESSIONID。带有凭据的 cookie 不在由返回的数组中((HttpServletRequest)facesContext.getExternalContext().getRequest()).getCookies(­);即使我可以在浏览器中看到它。这是为什么?

这是创建cookie的代码:

String credentials = username + "?" + password;
Cookie c = CookieHandler.getInstance().createCookie("vtcred", credentials, rememberMe);
FacesContext facesContext = FacesContext.getCurrentInstance();
((HttpServletResponse) facesContext.getExternalContext().getResponse()).addCookie(c);

和方法 createCookie:
public Cookie createCookie(String name, String value, boolean rememberMe) {
value = encript(value);
Cookie credCookie = new Cookie(name, value);
credCookie.setHttpOnly(true);
if(rememberMe) {
credCookie.setMaxAge(86400);
}
else {
credCookie.setMaxAge(0);
}
return credCookie;
}

编辑:我将 cookie 的最大年龄设置为一天;在浏览器中我可以看到 cookie 明天到期,所以这不是问题

提前致谢,
达米安

编辑2:这很奇怪,但现在似乎可以正常工作了。我会继续测试并通知。谢谢。

最佳答案

我发现为什么有时不读取 cookie。它与路径属性有关。

如果有人遇到此问题,请设置 cookie 的路径,如下所示:

Cookie c = new Cookie("name", "value");
cookie.setMaxAge(86400);
cookie.setPath("/");

问候

关于java - Cookie 未被读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5861782/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com