Как добавить Custom Token Granter на новый сервер авторизации Spring
Здравствуйте, в настоящее время я использую старый сервер авторизации с зависимостью от срока службы spring-security-oauth2-autoconfigure , и теперь я хотел бы перейти на новый сервер авторизации Spring.
Мои вопросы заключаются в том, как я могу перехватить/переопределить Token Granter по умолчанию для новой службы авторизации Spring. В старой версии я просто расширил AbstractTokenGranter.SsoTokenGranter extends AbstractTokenGranter
.
Я хотел бы вызвать другие службы во время создания токена и добавить пользовательские утверждения/полномочия к токену JWT с информацией о пользователе (роли, имя и т. д.).
Любые советы, как я могу это сделать?
1 ответ
я думаюOAuth2TokenCustomizer
может хорошо вписаться в ваш вариант использования.
@Bean
public OAuth2TokenCustomizer<JwtEncodingContext> tokenCustomizer(
OidcUserInfoService userInfoService) {
return (context) -> {
if (OidcParameterNames.ID_TOKEN.equals(context.getTokenType().getValue())) {
OidcUserInfo userInfo = userInfoService.loadUser( // <2>
context.getPrincipal().getName());
context.getClaims().claims(claims ->
claims.putAll(userInfo.getClaims()));
}
};
}
Существует раздел справочных документов и образец , который вы можете использовать в качестве справочного материала.