Spring Sec 5 настраиваемый фильтр аутентификации и сервер авторизации Oauth2 - PullRequest
0 голосов
/ 27 октября 2019

У меня есть пользовательский фильтр аутентификации spring sec 5, который работает и заполняет AuthenticationToken / SpringContext, и после успешной проверки поток перенаправляется на определенную страницу «успеха».

Теперь мы хотим получитьэта пользовательская аутентификация подключена к серверу авторизации Spring-Oauth2, поэтому, когда пользователь должен пройти аутентификацию, он вызывает эту обычную аутентификацию (вместо того, чтобы вызывать регулярную сборку usr / pwd authn)

Каков наилучший способ добиться этого? Имейте следующее в настоящее время

Заранее спасибо

@Configuration
@EnableAuthorizationServer

public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {

    @Value("${config.oauth2.clientid}")
    private String clientid;

    @Value("${config.oauth2.clientSecret}")
    private String clientSecret;

    @Value("${config.oauth2.privateKey}")
    private String privateKey;

    @Value("${config.oauth2.publicKey}")
    private String publicKey;

    @Autowired
    private CustomURLFilter customfilter; 
//custom authentication filter extends AbstractAuthenticationProcessingFilter


    @Override
    public void configure(AuthorizationServerSecurityConfigurer security) throws Exception {
        security.tokenKeyAccess("permitAll()").checkTokenAccess("isAuthenticated()");

        security.tokenEndpointAuthenticationFilters((List<Filter>) customfilter);

    }


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


    @Bean
    public JwtAccessTokenConverter accessTokenConverter() {

        JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
        converter.setSigningKey(privateKey);
        converter.setVerifierKey(publicKey);
        return converter;

    }

    @Bean
    @Primary
    public DefaultTokenServices tokenService() {

        DefaultTokenServices defaultTokenServices = new DefaultTokenServices();

        defaultTokenServices.setTokenStore(tokenStore());
        defaultTokenServices.setSupportRefreshToken(true);
        return defaultTokenServices;
    }

}
...