Я переопределяю метод расширения из класса JwtAccessTokenConverter.java и пытаюсь настроить информацию о полезной нагрузке JWT. Ниже приведен код расширенного класса.
public class NewAccessTokenConvertor extends JwtAccessTokenConverter {
@Override
public OAuth2AccessToken enhance(OAuth2AccessToken accessToken, OAuth2Authentication authentication) {
DefaultOAuth2AccessToken fooAccessToken = new DefaultOAuth2AccessToken(accessToken);
Map<String,Object> valueMap = new HashMap<>();
valueMap.put("name","test");
String name = authentication.getName();
fooAccessToken.setAdditionalInformation(valueMap);
return super.enhance(fooAccessToken,authentication);
}
}
Ниже приведен метод tokenEnhancer, который я написал.
@Bean
public JwtAccessTokenConverter tokenEnhancer() {
JwtAccessTokenConverter converter = new NewAccessTokenConvertor();
converter.setSigningKey("123");
return converter;
}
Я выполняю API / oauth / token, добавленная информация уже отображается в JWTполезная нагрузка токена, а также отображение в ответной нагрузке. Ниже следует указать тело токена JWT и полезную нагрузку ответа.
Полезная нагрузка токена JWT
{
"aud": [
"app1",
"app2"
],
"user_name": "testuser",
"scope": [
"READ",
"WRITE"
],
"name": "test",
"exp": 1569929226,
"jti": "c49f0fbf-fceb-47ea-a613-8550b2efe575",
"client_id": "testclient"
}
Полезная нагрузка ответа
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicGF5bWVudCIsImludmVudG9yeSJdLCJ1c2VyX25hbWUiOiJrcmlzaCIsInNjb3BlIjpbIlJFQUQiLCJXUklURSJdLCJuYW1lIjoibGFrc2hpdGhhIiwiZXhwIjoxNTY5OTI5MjI2LCJqdGkiOiJjNDlmMGZiZi1mY2ViLTQ3ZWEtYTYxMy04NTUwYjJlZmU1NzUiLCJjbGllbnRfaWQiOiJtb2JpbGUifQ.siryNGlQrDguWTxzs9Y3NsNPxl8a4hXd3hqZySQ0okk",
"token_type": "bearer",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsicGF5bWVudCIsImludmVudG9yeSJdLCJ1c2VyX25hbWUiOiJrcmlzaCIsInNjb3BlIjpbIlJFQUQiLCJXUklURSJdLCJhdGkiOiJjNDlmMGZiZi1mY2ViLTQ3ZWEtYTYxMy04NTUwYjJlZmU1NzUiLCJuYW1lIjoibGFrc2hpdGhhIiwiZXhwIjoxNTY5OTM1NjI2LCJqdGkiOiI4ODE2NDc3Yi02ZTk4LTRiZmEtYWEzYi0xYTYxNTZmYTlhYzIiLCJjbGllbnRfaWQiOiJtb2JpbGUifQ.2XEWC60M3GwSKyQFiF68EZlOANFwphcYWEi1hPAWPoA",
"expires_in": 3599,
"scope": "READ WRITE",
"name": "test",
"jti": "c49f0fbf-fceb-47ea-a613-8550b2efe575"
}
Пожалуйста, предоставьте мне решение для удаления дополнительной информации из полезной нагрузки ответа. Я хочу это только в теле полезной нагрузки JWT.