@dtnboqux

Spring Security несколько различных авторизаций. Как реализовать?

Всем привет. Пише веб проект на Spring MVC. На сайте будет несколько авторизаций, одна по Email и Password, вторая по уникальному коду, и еще 1 (не важно с по чему). Вот и вопрос. Как сделать несколько авторизаций? Вот пример моего кода с 1 авторизацией:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

	@Autowired
	@Qualifier("authenticationProvider")
	AuthenticationProvider authenticationProvider;

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

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

		http.authorizeRequests().antMatchers("/admin/**")
			.access("hasRole('ROLE_USER')").and().formLogin()
			.loginPage("/login").failureUrl("/login?error")
				.usernameParameter("username")
				.passwordParameter("password")
				.and().logout().logoutSuccessUrl("/login?logout").and().csrf();
	}
}

Заранее спасибо
  • Вопрос задан
  • 523 просмотра
Пригласить эксперта
Ответы на вопрос 1
jaxtr
@jaxtr
JavaEE/Spring-разработчик
Для каждого механизма авторизации описываешь свой класс конфигурации, наследуемый от WebSecurityConfigurerAdapter, и добавляешь классам конфигурации аннотацию @Order с порядковым номером. Таким образом Spring Security будет при запросе обходить конфигурации и проверять их применимость к запросу.

Так же можно сузить применимость механизма авторизации при помощи фильтрующего метода http.antMatcher() (не путать с antMatchers(), который используется для настроек доступа).
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы