Konfiguruję aplikację internetową Spring Security (v4.0.1). Chcę mieć dwóch dostawców uwierzytelniania, jeden "w pamięci" do zarządzania kontem administratora i niestandardowy, który odnosi się do mojej własnej implementacji. System powinien podjąć próbę uwierzytelnienia wobec dostawcy "in-memory" przede wszystkim, a nie niestandardowego na drugim miejscu. Mój kod wygląda następująco:W pamięci i niestandardowych dostawców wszyscy razem
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth,
AuthenticationProvider provider) throws Exception {
auth.inMemoryAuthentication()
.withUser("admin")
.password("s3cr3t")
.authorities("ADMIN");
auth.authenticationProvider(provider);
}
Jednak ten kod prowadzi strukturę do wypróbowania najpierw mojej niestandardowej implementacji. Ma to sens, ponieważ metoda AuthenticationManagerBuilder#authenticationProvider
dodaje dostawcę do wewnętrznej listy, podczas gdy AuthenticationManagerBuilder#inMemoryAuthentication
konfiguruje ją wewnętrznie. Jak mogłem sprawić, żeby działało?
To zdecydowanie działa ;-) –