Spring 读取REST服务中的JWT令牌内容
您好,我正在JWTTokenStore中使用Spring Security Oauth2。我想在用户将令牌内容与资源请求一起发送回来后从REST服务读取令牌内容。 如: curl-i-H“授权:持有人” 读取UserDetails服务中的令牌Spring 读取REST服务中的JWT令牌内容,spring,jwt,spring-security-oauth2,Spring,Jwt,Spring Security Oauth2,您好,我正在JWTTokenStore中使用Spring Security Oauth2。我想在用户将令牌内容与资源请求一起发送回来后从REST服务读取令牌内容。 如: curl-i-H“授权:持有人” 读取UserDetails服务中的令牌 谢谢。如果您的请求标头具有jwt令牌。执行以下操作 String jwtToken = request.getHeader("Authorization"); Claims claims = Jwts.parser().setSigningKey("sec
谢谢。如果您的请求标头具有jwt令牌。执行以下操作
String jwtToken = request.getHeader("Authorization");
Claims claims = Jwts.parser().setSigningKey("secretkey")
.parseClaimsJws(jwtToken).getBody();
claims.getSubject();
claims.getExpiration();
其中,secretkey是创建jwt令牌时使用的密钥。您可以选择:
((OAuth2AuthenticationDetails) SecurityContextHolder.getContext()
.getAuthentication().getDetails())
.getTokenValue();
第一个选项的优点是在集成测试中进行模拟
或:
我真的不知道如何在集成测试中模拟OAuth2Client上下文
或者(如果使用名称“授权”传递令牌):
检查这个项目,它是简单和有效的,并有“授权:持有人”正如你所说的。
@AutoWired
private OAuth2ClientContext oAuth2ClientContext ;
public void getToken() {
String token = oAuth2ClientContext.getAccessToken().getValue();
}
((ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes())
.getRequest().getHeader("Authorization");