客户端详细信息服务java配置外部授权服务器配置RADAPTER

客户端详细信息服务java配置外部授权服务器配置RADAPTER,java,spring,oauth-2.0,Java,Spring,Oauth 2.0,我正在尝试将所有特定于环境的bean等分组到几个类中,但我在OAuth2类型的应用程序中遇到了ClientDetailsService问题 @Configuration @EnableAuthorizationServer protected static class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter { @Autowired private UserDetails

我正在尝试将所有特定于环境的bean等分组到几个类中,但我在OAuth2类型的应用程序中遇到了ClientDetailsService问题

@Configuration
@EnableAuthorizationServer
protected static class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter {

  @Autowired
  private UserDetailsService userDetailsService;

  ...

  @Autowired
  private ClientDetailsService clientDetailsService;

  ...

  @Override
  public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
      clients.withClientDetails( clientDetailsService );
  }
}
然后我有一个单独的配置类,如下所示:

@Configuration
@Profile(value={"default"})
public class DevConfiguration {

  ...

  @Bean
  public ClientDetailsService clientDetailsService() {
    return new InMemoryClientDetailsService();
  }

  @Bean
  public UserDetailsService userDetailsService() {
    return new InMemoryUserDetails();
  }

  ...

}
然后,我将为所有这些服务创建一个使用JDBC实现的
ProductionConfiguration
类。其思想是,
AuthorizationServerConfiguration
有很多东西适用于所有环境(令牌增强器、端点配置等),因此我希望避免复制/粘贴所有这些代码

问题是没有调用我的
public clientdetails服务clientdetails服务()
,而
AuthorizationServerConfiguration
中的
@Autowired clientdetails服务
似乎被代理,好像它没有找到创建
clientdetails服务的实例的代码。
当应用程序按id加载客户机详细信息时,我得到了一个
StackOverflowerError
(猜测代理正在调用自己)

我可以从
DevConfiguration
(比如
userdetailssservice
)中看到其他@Bean被实例化,因此在配置应用程序时,它肯定会考虑该类。我也非常希望避免使用限定符

我做错了什么? 从
AuthorizationServerConfigurerAdapter
等“外部化”数据存储等的最佳方式是什么


谢谢你的帮助

My
AuthorizationServerConfiguration
实际上在另一个
@Configuration
类中。
原来,将
AuthorizationServerConfiguration
移动到自己的文件解决了问题。

我的
AuthorizationServerConfiguration
实际上在另一个
@Configuration
类中。 事实证明,将
AuthorizationServerConfiguration
移动到自己的文件解决了问题