我如何在春季从cookie中读取安全的HttpOnly值?
我将JWT令牌保存在cookie中的一个安全的HttpOnly值中,但无法从HttpServletRequest
获取。
我与邮递员发送请求,如果我从cookie中删除安全性,它可以正常工作,但是当我与cookie发送时,我将无法访问它!
这是cookie的值:
token=eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxIiwiaWF0IjoxNTQzMDgzMzc2LCJleHAiOjE1NDM2ODgxNzZ9.8IWh2HO7aVoxuVNUWCIhV1AeHvmTD5GyvopJGQFv9fgrYNBY8ZzbeapikTRpPNG3oDSWOvjbLU-lpWx7MWAYRw; path=/; domain=localhost; Secure; HttpOnly; Expires=Tue, 19 Jan 2038 03:14:07 GMT;
我使用以下代码创建cookie:
Cookie cookie = new Cookie(jwtTokenName, generateToken(authentication));
cookie.setPath("/");
cookie.setHttpOnly(true);
cookie.setSecure(true);
response.addCookie(cookie);
及其在applications.yml上的内容:
server:
port: 8181
servlet:
session:
cookie:
secure: true
app:
jwtSecret: JWTSuperSecretKey
jwtExpirationInMs: 604800000
jwtTokenName: token
答案 0 :(得分:0)
当您在 HTTP 标头中添加“安全”时,表示 Cookie 应仅通过安全通道使用 HTTPS 传输。
这就是您面临问题的可能原因。
如果您有所需的证书或经过身份验证的令牌,您可以在 HTTP 标头中设置它们。
使用为您提供这些选项的 Insomnia 或 Advanced REST Client 等客户端。