【问题标题】:autowired for authentication manager为身份验证管理器自动装配
【发布时间】:2020-07-07 08:35:50
【问题描述】:

我想为 Oauth2 实现授权和资源服务器,here 是我的参考站点,但私有 AuthenticationManager authenticationManager 在 intellij 上给我一个错误,例如“无法自动装配”,那么我该如何解决?

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.oauth2.config.annotation.configurers.ClientDetailsServiceConfigurer;
import org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerConfigurerAdapter;
import org.springframework.security.oauth2.config.annotation.web.configuration.EnableAuthorizationServer;
import org.springframework.security.oauth2.config.annotation.web.configurers.AuthorizationServerEndpointsConfigurer;

@Configuration
@EnableAuthorizationServer
public class AuthorizationServer extends AuthorizationServerConfigurerAdapter {

    @Autowired
    private AuthenticationManager authenticationManager;

    @Override
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
        endpoints.authenticationManager(authenticationManager);
    }

    @Override
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
        clients.inMemory().withClient("javainuse-client").secret("javainuse-secret")
                .authorizedGrantTypes("client_credentials").scopes("resource-server-read", "resource-server-write");
    }
}

【问题讨论】:

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


    【解决方案1】:

    如果您必须使用 AuthenticationManager(并非总是如此,这取决于您管理用户的方式),则需要将其公开为 bean。像这样:

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

    来源(这是一本有趣的读物,提供了许多见解):

    https://github.com/spring-projects/spring-boot/issues/11136

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-25
      • 2011-11-30
      相关资源
      最近更新 更多