我正在使用 Spring Security 3.2 的 java 配置功能,我想知道是否有办法将默认 AuthenticationManager 实例注入自定义(身份验证)过滤器。到目前为止我所做的所有尝试都以
没有 [org.springframework.security.authentication.AuthenticationManager] 类型的合格 bean
这是我当前的bean定义:
@Bean(name="tokenAuthenticationFilter")
public Filter getTokenAuthenticationFilter(AuthenticationManager authenticationManager) {
TokenAuthenticationFilter filter = new TokenAuthenticationFilter(authenticationManager);
return filter;
}
我读到以下内容会隐式告诉 spring security 使用默认身份验证管理器。
<authentication-manager>
<authentication-provider>
...
</authentication-provider>
</authentication-manager>
我想翻译成以下 java 配置片段:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private TokenAuthenticationProvider tokenAuthenticationProvider = null;
@Override
protected void registerAuthentication(AuthenticationManagerBuilder auth) throws Exception {
auth.authenticationProvider(tokenAuthenticationProvider);
}