【问题标题】:Read JWT token content in REST Service读取 REST 服务中的 JWT 令牌内容
【发布时间】:2016-11-22 22:20:48
【问题描述】:
【问题讨论】:
标签:
spring
jwt
spring-security-oauth2
【解决方案1】:
如果您的请求标头具有 jwt 令牌。执行以下操作
String jwtToken = request.getHeader("Authorization");
Claims claims = Jwts.parser().setSigningKey("secretkey")
.parseClaimsJws(jwtToken).getBody();
claims.getSubject();
claims.getExpiration();
secretkey 是创建 jwt 令牌时使用的密钥。
【解决方案2】:
您有一些选择:
((OAuth2AuthenticationDetails) SecurityContextHolder.getContext()
.getAuthentication().getDetails())
.getTokenValue();
第一个选项的优点是在集成测试中进行模拟。
或者:
@AutoWired
private OAuth2ClientContext oAuth2ClientContext ;
public void getToken() {
String token = oAuth2ClientContext.getAccessToken().getValue();
}
我真的不知道如何在集成测试中模拟 OAuth2ClientContext。
或者(如果令牌使用名称“授权”传递):
((ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes())
.getRequest().getHeader("Authorization");