【发布时间】:2019-04-26 22:13:28
【问题描述】:
如何在 spring 中从 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
【问题讨论】:
-
你使用 https 吗?如果你不这样做,由于设置了安全标志,浏览器不会发送它:这就是安全标志的重点。
-
不,它在 HTTP 上。我使用邮递员发送请求;它只在 HTTPS 上发送吗?
-
你试图做什么?为什么需要这两个标志?
-
完成了。我尝试将 JWT 令牌保存在 cookie 中然后获取它,并在本地开发中启用了安全功能。
标签: spring spring-mvc spring-boot cookies