Fetch the repository succeeded.
{
"alg": "RS256",
"typ": "JWT",
"kid": "myoidc-keyid"
}.{
"sub": "admin",
"user_name": "admin",
"scope": [
"server"
],
"iss": "http://localhost:3000/",
"exp": 1617805722,
"iat": 1617762522,
"authorities": [
这是生成的默认的 claim,我百度有个 enhance方法可以修改,但是不起作用、
/**
* 自定义token扩展链
*
* @return tokenEnhancerChain
*/
@Bean
public TokenEnhancerChain tokenEnhancerChain() throws Exception {
TokenEnhancerChain tokenEnhancerChain = new TokenEnhancerChain();
tokenEnhancerChain.setTokenEnhancers(Arrays.asList(new CustomTokenEnhancer(), accessTokenConverter()));
return tokenEnhancerChain;
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints
.allowedTokenEndpointRequestMethods(HttpMethod.GET, HttpMethod.POST)
.tokenStore(tokenStore())
.accessTokenConverter(accessTokenConverter())
.tokenEnhancer(tokenEnhancerChain()) //这里执行上面的enhance方法
你的 MyOIDCJwtAccessTokenConverter 中的 这个方法是不是也可以啊
@Override
public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
OAuth2AccessToken enhanceToken = super.enhance(accessToken, authentication);
//if have openid, add id_token
if (authentication.getOAuth2Request().getScope().contains(OIDCUtils.SCOPE_OPENID)) {
ImmutableMap<String, String> extHeader = ImmutableMap.of(
KEY_ID, publicJsonWebKey.getKeyId());
String idToken = encodeWithHeader(accessToken, authentication, extHeader);
enhanceToken.getAdditionalInformation().put(ID_TOKEN, idToken);
if (LOG.isDebugEnabled()) {
LOG.debug("{}|Added id_token: {} to accessToken: {}", WebUtils.getIp(), idToken, enhanceToken);
}
}
return enhanceToken;
}