Spring boot множественная аутентификация - PullRequest
1 голос
/ 07 октября 2019

Я сделал загрузочное приложение с интегрированной защитой и специальным провайдером аутентификации. Теперь я хочу, чтобы по какой-то ссылке использовался пользовательский провайдер Authent, а по какой-нибудь другой - аутентификация с использованием памяти. Как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 07 октября 2019

Ты прав. Вот мой класс SecurityConfig. Теперь я хочу защитить путь как '/ api / **' с базовой аутентификацией.

@Autowired
private CustomAuthenticationProvider authProvider;

@Autowired
DataSource dataSource;

@Autowired
CustomLogoutSuccessHandler  customLogoutSuccessHandler;

@Autowired
CustomAuthenticationSuccessHandler customAutheincationSuccessHandler;

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
    auth.authenticationProvider(authProvider);
}

@Override
protected void configure(HttpSecurity http) throws Exception {

    http.authorizeRequests()
        .antMatchers("/list/**").hasAnyAuthority("Administrator","Operator")
        .antMatchers("/api/**").permitAll()
        .and()
        .formLogin()
        .loginPage("/login")
        .loginProcessingUrl("/authenticateTheUser")
        .successHandler(customAutheincationSuccessHandler)
        .and().logout()
        .logoutUrl("/logout")
        .logoutSuccessHandler(customLogoutSuccessHandler)
        .logoutSuccessUrl("/login").and().exceptionHandling().accessDeniedPage("/accessDenied")
        .and()
        .csrf().disable();
}
0 голосов
/ 08 октября 2019

Вы можете создать две конфигурации безопасности Spring с разными путями. В первой конфигурации вы можете исключить / api / **. Но вторая конфигурация сможет это проверить.

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