2017-05-26 38 views
1

我有一個基於xml的Apache Shiro SecurityManager和幾個自定義領域(它們擴展構建領域)。我正在嘗試遷移到Spring Boot,它基本上是基於註釋的。將多個Shiro領域集成到Spring引導環境中Java

我想很容易地將所有域配置到安全管理器中。目前,我可以通過創建ShiroConfig.java(由@Configuration註釋)手動創建ShiroConfig中每個域的對象並添加它在DefaultWebSecurityManager.setRealms(集合)下。

有什麼其他的方式,通過註釋可以實現同樣的事情嗎?我在哪裏註釋每個領域,說它是一個領域,並且所有領域都將在運行時被添加到安全管理器中?

  • 當前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>

    • 當前彈簧引導代碼[我不想重複每個境界]

@Bean (name =「securityManager」)

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; 
} 

回答

0
+0

感謝您的答覆,但我的問題更多的是對的,如果我有4個領域,可以通過一些註釋可以將它們注入到安全管理器,而不是我手動創建和領域的列表傳遞給安全管理爲下面的代碼片段在第一ShiroConfiguratin.java文件 '@豆 \t @覆蓋 \t保護SessionsSecurityManager安全管理器(名單領域){ \t return super.securityManager(realms); \t}' – JforJava

+0

您應該能夠像對待其他任何Spring bean一樣暴露您的bean。 –