私はSpring SecurityのAuthenticationManagerBeanをカスタムフィルタ内で使用する必要がありますが、常にnullを返すようです。私は春のブート1.3.8を使用しています。Autowiring Spring AuthenticationManagerフィルタは常にnullを返します
@Configuration
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
@Bean(name = BeanIds.AUTHENTICATION_MANAGER)
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
}
}
フィルターコード::
public class MyFilter extends OncePerRequestFilter {
private TokenExtractor tokenExtractor = new BearerTokenExtractor();
@Autowired
private AuthenticationManager authenticationManager;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
//some checks
Authentication receivedAuthentication = tokenExtractor.extract(request);
receivedAuthentication.setAuthenticated(true);
authenticationManager.authenticate(receivedAuthentication);
SecurityContextHolder.getContext().setAuthentication(receivedAuthentication);
}
}
}
authenticationManagerがnullであるため、例外がスローされます。ここのコードからの抜粋です。
お手数ですが、
あなたはhttp://stackoverflow.com/questions/5417509/get-instance-of-authenticationmanager-manuallyまたはその1つを参照してください。http://stackoverflow.com/questions/21633555/how-to-inject-authenticationmanagerager -using-java-configuration-in-a-custom-filter?を使用していますか? – Victor
あなたは[リンク](http://stackoverflow.com/questions/21633555/how-to-inject-authenticationmanager-using-java-configuration-in-a-custom-filter)またはその1 [ AuthenticationManager Manual](http://stackoverflow.com/questions/5417509/get-instance-of-authenticationmanager-manually)? – Victor
[link](http://stackoverflow.com/questions/21633555/how-to-inject-authenticationmanager-using-java-configuration-in-a-custom-filter)またはその1つの[Get instance of AuthenticationManager Manual](http://stackoverflow.com/questions/5417509/get-instance-of-authenticationmanager-manually)? – Victor