我基础模块有 securityConfig
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
......
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
......
然后管理模块我定义mallSecurityConfig
继承 securityConfig
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MallSecurityConfig extends SecurityConfig {
@Autowired
private UmsAdminService adminService;
@Autowired
private UmsResourceService resourceService;
@Bean
public UserDetailsService userDetailsService() {
//获取登录用户信息
return username -> adminService.loadUserByUsername(username);
}
@Bean
public DynamicSecurityService dynamicSecurityService() {
return new DynamicSecurityService() {
@Override
public Map<String, ConfigAttribute> loadDataSource() {
Map<String, ConfigAttribute> map = new ConcurrentHashMap<>();
List<UmsResource> resourceList = resourceService.listAll();
for (UmsResource resource : resourceList) {
map.put(resource.getUrl(), new org.springframework.security.access.SecurityConfig(resource.getId() + ":" + resource.getName()));
}
return map;
}
};
}
}
然后提示我说passwordEncoder
这个bean
已经被注册了,我查了下说是两个都加了@configuration
的话,继承会导致父类的bean
被重复注册,这个我能理解了
但是我另外写的功能也是同样两个@configuration
,几乎一样的写法,没有提示报错,这是为啥呀