Spring security 自从Spring安全性从XML迁移到JavaConfig后,UserDetailsService bean丢失
我使用Spring SecuritySpring security 自从Spring安全性从XML迁移到JavaConfig后,UserDetailsService bean丢失,spring-security,spring-java-config,Spring Security,Spring Java Config,我使用Spring Security3.2.0.RELEASE 我目前正在将我的应用程序基于XML的Spring安全配置迁移到基于JavaConfig的Spring安全配置 在旧的security.xml中,我配置了一个基于JDBC的UserDetailsService,如下所示: 除其他效果外,上述XML配置自动注册了一个类型为JdbcUserDetailsManager(一个UserDetailsService的子类型)的Springbean,我可以将其注入到其他组件中,如下所示: @服
3.2.0.RELEASE
我目前正在将我的应用程序基于XML的Spring安全配置迁移到基于JavaConfig的Spring安全配置
在旧的security.xml
中,我配置了一个基于JDBC的UserDetailsService
,如下所示:
除其他效果外,上述XML配置自动注册了一个类型为JdbcUserDetailsManager
(一个UserDetailsService
的子类型)的Springbean,我可以将其注入到其他组件中,如下所示:
@服务
公共类MyCustomService{
@注入
私有JdbcUserDetailsManager judm;
//...
}
我对上述XML基于JavaConfig的改编如下:
@配置
//@ImportResource(“classpath:to/no/more/needed/security.xml”)
@启用Web安全性
公共类SecurityConfig扩展了WebSecurity配置适配器{
@凌驾
受保护的无效配置(AuthenticationManagerBuilder auth)引发异常{
认证
.jdbc身份验证()
.passwordEncoder(somePasswordEncoder)
.dataSource(someDataSource);
}
// ...
}
上面的JavaConfig配置似乎没有额外注册类型为JdbcUserDetailsManager
的springbean。这意味着MyCustomService
没有注入这样的bean,因此我得到了NoSuchBeanDefinitionException
:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.security.provisioning.JdbcUserDetailsManager] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.inject.Inject()}
使用JavaConfig方法,如何获得类型为JdbcUserDetailsManager
的bean?您尝试添加了吗
@Bean
public JdbcUserDetailsManager jdbcUserDetailsManager(){
return new JdbcUserDetailsManager();
}
到您的SecurityConfig类