Я работаю над Spring конфигурацией безопасности на основе Java.
Я создал свой собственный MyAuthenticationProvider
, который я хочу зарегистрировать в ProviderManager
(единственный экземпляр AuthenticationManager
).
Я обнаружил, что ProviderManager
имеет список поставщиков, которым я могу зарегистрировать свой сингл
MyAuthenticationProvider
.
Вот часть моей Конфигурации:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(MyAuthenticationProvider);
}
}
Я обнаружил, что AuthenticationManagerBuilder
имеет parentAuthenticationManager
, defaultUserDetailsService
и многие другие поля.
Мои вопросы:
- Где эта аннотация
@Autowired
, добавляющаяAuthenticationManagerBuilder
auth from? Является лиAuthenticationManagerBuilder
уже созданным в контексте приложения? - Каким будет состояние по умолчанию
AuthenticationManagerBuilder
, которое вводится? По умолчанию я хочу сказать, что вAuthenticationManagerBuilder
? уже есть теги
parentAuthenticationManager
, authenticationProvider
Если я добавляю auth.authenticationProvider(MyAuthenticationProvider)
, значит ли это, что я добавляю еще одного провайдера в AuthenticationManagerBuilder
?
Что это значит? Взято из Spring Документация
Имя метода configureGlobal не имеет значения. Однако это важно только настроить AuthenticationManagerBuilder в классе аннотированный с помощью @EnableWebSecurity, @EnableWebMvcSecurity, @EnableGlobalMethodSecurity, или @EnableGlobalAuthentication. дела в противном случае непредсказуемые результаты.