Весенняя загрузка oauth2 - не может обновить sh токен доступа - PullRequest
0 голосов
/ 29 марта 2020

Spring boot oauth2 генерирует access и refre sh токенов, но когда я хочу refre sh токен доступа после его истечения я отправляю сообщение запрос к http://localhost:8080/oauth/token с использованием почтальона, и он возвращает server_error, и весенняя загрузка ничего не регистрирует об ошибке. Что может быть причиной этого? Ниже моя конфигурация для oauth2. Я что-то упустил в своей конфигурации?

enter image description here

Регистрация конфигурации в файле свойств весенней загрузки

logging.level.=debug

Конфигурация WebSecurityConfig

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private CustomAuthenticationProvider customProvider;

    @Autowired
    public void globalUserDetails(final AuthenticationManagerBuilder auth) throws Exception {
        auth.authenticationProvider(customProvider);
    } 

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/**", "/login", "/oauth/authorize").permitAll()
            .anyRequest().authenticated()
        .and()
            .formLogin().loginPage("/login").permitAll()
        .and()
            .csrf().disable();
    }

    @Bean
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

}

Конфигурация сервера авторизации

@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
    private static final Logger lgg = LogManager.getLogger(AuthorizationServerConfig.class);

    @Autowired
    @Qualifier("authenticationManagerBean")
    private AuthenticationManager authenticationManager;

    @Autowired
    private ClientDetailsServiceImpl clientDetailsService;

    @Autowired
    private SsoProperties ssoProperties;

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.withClientDetails(clientDetailsService);
    }

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
       TokenEnhancerChain tokenEnhancerChain = new TokenEnhancerChain();
       tokenEnhancerChain.setTokenEnhancers(Arrays.asList(tokenEnhancer(), accessTokenConverter()));

       endpoints
           .tokenStore(tokenStore())
           .tokenEnhancer(tokenEnhancerChain)
           .authenticationManager(authenticationManager);
   }

    @Override
    public void configure(final AuthorizationServerSecurityConfigurer oauthServer) throws Exception {
        oauthServer.tokenKeyAccess("permitAll()").checkTokenAccess("isAuthenticated()").allowFormAuthenticationForClients();
    }

    @Bean
    public JwtAccessTokenConverter accessTokenConverter() {
       JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
       converter.setSigningKey(ssoProperties.getPrivateKey());
       return converter;
    }

    @Bean
    public TokenStore tokenStore() {
        return new JwtTokenStore(accessTokenConverter());
    }

    @Bean
    public TokenEnhancer tokenEnhancer() {
        return new CustomTokenEnhancer();
    }

    @Bean
    PasswordEncoder passwordEncoder() {
        return PasswordEncoderFactories.createDelegatingPasswordEncoder();
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...