Взаимная аутентификация с использованием сертификатов в Spring security - PullRequest
0 голосов
/ 04 июня 2019

У меня есть класс securityconfig, в котором я определяю настройки безопасности

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(securedEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private CustomX509AuthenticationFilter customX509AuthenticationFilter;

    @Autowired
    private JwtAuthenticationEntryPoint unauthorizedHandler;

    @Bean
    public JwtAuthenticationFilter jwtAuthenticationFilter() {
        return new JwtAuthenticationFilter();
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests().anyRequest().authenticated()
        .and()
            .exceptionHandling().authenticationEntryPoint(unauthorizedHandler)
        .and()
            .x509().x509AuthenticationFilter(customX509AuthenticationFilter).subjectPrincipalRegex("CN=(.*?)(?:,|$)")
        .and()
            .authorizeRequests().antMatchers("/").denyAll().anyRequest().authenticated();
    }
}

У меня есть класс CustomX509AuthenticationFilter

@Component
public class CustomX509AuthenticationFilter extends X509AuthenticationFilter {

    @Override
    @Autowired
    public void setAuthenticationManager(AuthenticationManager authenticationManager) {
        super.setAuthenticationManager(authenticationManager);
    }
    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {

        X509Certificate x509Certificate = (X509Certificate) getPreAuthenticatedPrincipal((HttpServletRequest)request);

    }
}

Здесь я получаю несколько исключений, таких как

Consider defining a bean of type 'org.springframework.security.authentication.AuthenticationManager' in your configuration.

Как правильно построить его? Какие изменения мне нужно сделать здесь?

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