将多个Shiro领域集成到Spring Boot环境Java中

时间:2017-05-26 06:56:03

标签: java spring spring-boot shiro

我有一个基于xml的Apache Shiro SecurityManager和一些自定义领域(它们在领域中扩展构建)。我正在尝试迁移到Spring Boot,它主要是基于注释的。

我想轻松地将所有领域配置到安全管理器中。目前,我可以通过创建ShiroConfig.java(由@Configuration注释),在ShiroConfig中手动创建每个领域的对象并在其下添加它来实现。 DefaultWebSecurityManager.setRealms(集合)。

还有其他任何方式,通过注释可以实现同样的事情,我在其中注释每个Realm,说它是一个领域,所有这些都将在运行时添加到安全管理器下吗? < / p>

  • 当前的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(名称= “安全管理器”)

public DefaultWebSecurityManager securityManager() {
    DefaultWebSecurityManager manager = new DefaultWebSecurityManager();
    manager.setRealm(userRealm());
    manager.setSessionManager(defaultWebSessionManager());
    return manager;
}

@Bean     @DependsOn(值= “lifecycleBeanPostProcessor”)

public Realm_1 userRealm() {
    Realm_1 userRealm = new Realm_1();
    return userRealm;
}

1 个答案:

答案 0 :(得分:0)