我如何在春季从cookie中读取安全值?

时间:2018-11-24 18:37:54

标签: spring spring-mvc spring-boot cookies

我如何在春季从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

1 个答案:

答案 0 :(得分:0)

当您在 HTTP 标头中添加“安全”时,表示 Cookie 应仅通过安全通道使用 HTTPS 传输。

这就是您面临问题的可能原因。

如果您有所需的证书或经过身份验证的令牌,您可以在 HTTP 标头中设置它们。

使用为您提供这些选项的 Insomnia 或 Advanced REST Client 等客户端。