Я пытаюсь реализовать аутентификацию http basi c для /basic
url и аутентификацию на основе форм для /user
url:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
public PasswordEncoder passwordEncoder() {
return NoOpPasswordEncoder.getInstance();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
.withUser("user")
.password("user")
.roles("USER")
.and()
.withUser("admin")
.password("admin")
.roles("ADMIN")
;
}
@Configuration
@Order(1)
public static class C1 extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/basic/**")
.authorizeRequests(authorize -> authorize
.anyRequest().hasRole("ADMIN")
)
.httpBasic();
}
}
@Configuration
@Order(2)
public static class C2 extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/user/**")
.authorizeRequests(authorize -> authorize
.anyRequest().hasRole("USER")
)
.formLogin();
}
}
}
Проблема заключается в том, что когда я перейдя по ссылке /basic
и предоставив учетные данные admin/admin
во всплывающем окне, я немедленно перенаправлюсь на другую страницу - стандартная форма входа в Spring Security. Почему и как это исправить?