Настройка Spring OAuth2TokenEndpointFilter

Мне нужно настроить метод обработчика успеха аутентификации для Spring Authorization Server OAuth2TokenEndpointFilter, чтобы имитировать поставщика OAuth2 с ограниченными возможностями.

Я пробовал следующее:

          @Bean
    public OAuth2TokenEndpointFilter oauth2TokenEndpointFilter(AuthenticationManager authenticationManager) {
        
        OAuth2TokenEndpointFilter filter = new OAuth2TokenEndpointFilter(authenticationManager);
        
        // this is ugly but seems to be the only way to customize the token format.
        filter.setAuthenticationSuccessHandler((request, response, authentication) -> {
            
            OAuth2AccessTokenAuthenticationToken accessTokenAuthentication =
                    (OAuth2AccessTokenAuthenticationToken) authentication;

            OAuth2AccessToken accessToken = accessTokenAuthentication.getAccessToken();
            OAuth2RefreshToken refreshToken = accessTokenAuthentication.getRefreshToken();
            Map<String, Object> additionalParameters = accessTokenAuthentication.getAdditionalParameters();
            additionalParameters.put("expires_in", null);
            additionalParameters.put("user_id", null);
            
            final HttpMessageConverter<OAuth2AccessTokenResponse> accessTokenHttpResponseConverter =
                    new OAuth2AccessTokenResponseHttpMessageConverter();
            
            OAuth2AccessTokenResponse.Builder builder = OAuth2AccessTokenResponse.withToken(accessToken.getTokenValue())
                    .refreshToken(refreshToken.getTokenValue())
                    .additionalParameters(additionalParameters);
            
            OAuth2AccessTokenResponse accessTokenResponse = builder.build();
            ServletServerHttpResponse httpResponse = new ServletServerHttpResponse(response);
            accessTokenHttpResponseConverter.write(accessTokenResponse, null, httpResponse);            
        });
        
        return filter;
    }

К сожалению, токен по-прежнему возвращается с полями по умолчанию в токене.

Может ли кто-нибудь сказать мне, что я делаю неправильно?

0 ответов

Другие вопросы по тегам