【发布时间】:2017-10-26 23:40:44
【问题描述】:
我有一个基于 xml 的 Apache Shiro SecurityManager 和几个自定义领域(它们扩展了领域中的构建)。我正在尝试迁移到 Spring Boot,它主要是基于注释的。
我想轻松地将所有领域配置到安全管理器中。目前,我可以通过创建 ShiroConfig.java(由 @Configuration 注释),在 ShiroConfig 中手动创建每个领域的对象并将其添加到下DefaultWebSecurityManager.setRealms(Collection)。
有没有其他方法,通过注解可以实现同样的事情,我对每个 Realm 进行注解,说它是一个领域,并且它们都将在运行时添加到安全管理器下?
-
当前xml配置
<bean id="securityManager" class="com.abc.xyz.SecurityManager"> <property name="realms"> <set> <ref component-id="Realm_1”/> <ref component-id="Realm_2” /> <ref component-id="Realm_3” /> <ref component-id="Realm_4” /> </set> </property> </bean> <bean id="Realm_1" class="com.abc.xyz.Realm_1”> </bean> <bean id="Realm_2" class="com.abc.xyz.Realm_2”> </bean> <bean id="Realm_3” class="com.abc.xyz.Realm_3”> </bean> <bean id="Realm_4” class="com.abc.xyz.Realm_4”> </bean>- 当前的 Spring 引导代码 [我不想为每个领域重复]
@Bean(name="securityManager")
public DefaultWebSecurityManager securityManager() {
DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
manager.setRealm(userRealm());
manager.setSessionManager(defaultWebSessionManager());
return manager;
}
@豆 @DependsOn(value="lifecycleBeanPostProcessor")
public Realm_1 userRealm() {
Realm_1 userRealm = new Realm_1();
return userRealm;
}
【问题讨论】:
标签: java spring spring-boot shiro