spring-security-oauth AuthenticationManager注入顺序

时间:2015-01-23 10:50:10

标签: java spring spring-security oauth-2.0 spring-security-oauth2

我手边有一个最奇怪的问题。通过spring-seucrity-oauth(2)保护应用程序,身份验证突然停止工作,我们无法找到问题所在。 实际上我们可以。注入太晚的身份验证管理器。配置AuthorizationServerEndpointsConfigurer时,尚未注入authenticationManager。因此,AuthorizationServerEndpointsConfigurer创建了一个没有ResourceOwnerPasswordTokenGranter的tokenGranters列表。

我们不知道可能导致此行为的原因或我们如何解决或解决此问题。

感谢任何建议或帮助!

AuthorizationServerConfiguration.class

@EnableAuthorizationServer  
@Configuration
protected static class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {

     @Inject
     private AuthenticationManager authenticationManager;

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
       endpoints
             .tokenStore(tokenStore)
             .prefix("/api")
             .authenticationManager(authenticationManager); // when this method is called authenticationManager is null 
     }

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        // when I check authentionManager here, it is injected
}

这是身份验证管理器bean的公开和创建方式。

SecurityConfigurer.class:

   @Configuration
   @EnableWebSecurity
   public class SecurityConfigurer extends WebSecurityConfigurerAdapter {
        @Override
        @Bean
        public AuthenticationManager authenticationManagerBean() throws Exception {
            return super.authenticationManagerBean();
        }

0 个答案:

没有答案