我想
1.在远程服务器上内省JWT标记
1.然后在本地检查scope/aud/iss/exp是否正确
如何在Sping Boot 中最轻松地完成此操作?
据我所知,第一种情况类似于opauqeToken功能(但我使用的是普通的JWT),第二种情况更像是使用jwt
Spring Security只支持JWT或不透明令牌,不能同时支持这两者。
如果我使用opaqueToken,那么远程服务器上的验证就可以轻松完成(即使是JWT)
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(authorize -> authorize
.mvcMatchers("/api/**").hasAuthority("SCOPE_" + scope)
.anyRequest().authenticated()
)
.oauth2ResourceServer(oauth2 -> oauth2
.opaqueToken(opaque -> opaque
.introspectionUri(this.introspectionUri)
.introspectionClientCredentials(this.clientId, this.clientSecret)
));
return http.build();
我已经验证了作用域。现在我想检查iss
、aud
、exp
。这对opaqueToken
可行吗?
还是应该使用jwt
身份验证?
IMHO opaqueToken
可以是JWT,所以现在的问题是如何在远程自省之后在本地验证和检查它?
这是两种不同方法的混合,但希望你知道如何做到这一点的简单方法。
1条答案
按热度按时间ecr0jaav1#
好的,我想我有答案了。我创建了自己的内省器,它实现了
OpaqueTokenIntrospector
我把它添加为@Bean