【发布时间】:2018-11-07 09:35:37
【问题描述】:
我正在 Spring Security 中实现 JWT 身份验证。 我有预定义的角色,例如。普通用户、管理员等
我有以下令牌负载:
{
"sub": "nick",
"iat": "<some_date>",
"exp": "<some_date+1h>",
"scopes": [
"ROLE_USER",
"ROLE_ADMIN"
]
}
到目前为止,我看到的大多数实现都基于 id/username/email 从数据库中检索用户详细信息,然后使用这些数据来创建身份验证(例如,通过身份验证 UsernamePasswordAuthenticationToken)。 对我来说,这实际上是一种更可取的方式,因为我总是拥有最新的特权和限制(例如,用户是否被禁止)并且与收益相比,时间开销并没有那么大。
我只是好奇如何仅基于传入请求中包含的角色(在其授权标头令牌中)使用 Spring Security 实现授权。我希望能够在请求被适当路由后访问控制器中的用户标识符。仅基于检查过期时间和角色有效性的令牌验证是否足够?
【问题讨论】:
-
你能发布你的配置类中的内容吗?
标签: spring spring-security jwt