客户端详细信息服务java配置外部授权服务器配置RADAPTER
我正在尝试将所有特定于环境的bean等分组到几个类中,但我在OAuth2类型的应用程序中遇到了ClientDetailsService问题客户端详细信息服务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
@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
等“外部化”数据存储等的最佳方式是什么
谢谢你的帮助 MyAuthorizationServerConfiguration
实际上在另一个@Configuration
类中。
原来,将AuthorizationServerConfiguration
移动到自己的文件解决了问题。我的AuthorizationServerConfiguration
实际上在另一个@Configuration
类中。
事实证明,将AuthorizationServerConfiguration
移动到自己的文件解决了问题