Tôi đang làm việc trên cấu hình dựa trên Java của Spring Security.Cách Spring Security thêm/cấu hình AuthenticationManagerBuilder?
Tôi đã tạo riêng mình MyAuthenticationProvider
mà tôi muốn đăng ký trong ProviderManager
(ví dụ đơn lẻ AuthenticationManager
).
Tôi đã tìm thấy rằng ProviderManager
có danh sách các nhà cung cấp mà tôi có thể đăng ký MyAuthenticationProvider
của mình.
Dưới đây là một phần của cấu hình của tôi:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(MyAuthenticationProvider);
}
}
tôi phát hiện ra rằng AuthenticationManagerBuilder
có parentAuthenticationManager
, defaultUserDetailsService
và nhiều lĩnh vực khác.
Câu hỏi của tôi là:
- đâu
@Autowired
chú thích này thêmAuthenticationManagerBuilder
auth từ đâu? Có phảiAuthenticationManagerBuilder
đã được tạo trong ngữ cảnh ứng dụng không? - Trạng thái mặc định là
AuthenticationManagerBuilder
nào đang được tiêm? Theo mặc định, ý tôi là sẽ có một sốparentAuthenticationManager
,authenticationProvider
s đã được đăng ký trong sốAuthenticationManagerBuilder
? - Nếu tôi thêm
auth.authenticationProvider(MyAuthenticationProvider)
, điều này có nghĩa là tôi đang thêm một nhà cung cấp khác trong sốAuthenticationManagerBuilder
? Điều này có nghĩa là gì? Lấy từ Tài Liệu Mùa Xuân
Tên của phương thức configureGlobal không quan trọng. Tuy nhiên, nó là quan trọng để chỉ định cấu hình AuthenticationManagerBuilder trong một lớp được chú thích bằng @EnableWebSecurity, @EnableWebMvcSecurity, @EnableGlobalMethodSecurity hoặc @EnableGlobalAuthentication. Làm nếu không có kết quả không thể đoán trước.