2014-12-08 39 views
1

我正在使用LDAP插件以及Spring Security插件。 LDAP插件提取登錄用戶所屬的組。我的應用程序有兩個角色adminnormal。而不是硬編碼角色,我想讓它們通過屬性文件進行配置。這樣,而不是寫有沒有辦法在Spring Security插件的屬性文件中定義角色,而不是硬編碼它們?

@Secured(["ROLE_ADMINS"]) 

我可以寫在配置文件中像

@Secured(["role.admins"]) 

其中role.admins=ROLE_ADMINS

這樣我可以採用相同的WAR文件並將其部署到多個客戶端,其中每個客戶端都具有自己的標準化方法,用於在ActiveDirectory中配置組名。

回答

1

你可以得到那個工作,但我認爲有更好的選擇。目前該註釋有點僵化,並且僅支持以ROLE_,3個特殊令牌IS_AUTHENTICATED_FULLY,IS_AUTHENTICATED_REMEMBEREDIS_AUTHENTICATED_ANONYMOUSLY和SpEL表達式開始的角色。但是你可以從SpEL表達式中調用Spring bean,所以你應該考慮在服務中調用一個方法並在那裏完成工作;語法將使用@符號:

@Secured('@myService.doTheAdminChecks()') 

和它需要,可以從Config.groovy和/或屬性文件中讀取信息實現可以作爲複雜,但註釋的代碼不會得到凌亂與安全關注。

另一種選擇是在註釋中使用閉包;這是一項新功能,並在@Secured part of the What's New section中進行了描述。

+0

我喜歡能夠讓管理員在服務中檢查自己的選項。這也會在'sec'標籤中起作用嗎?即'' – Anthony 2014-12-08 17:52:50

相關問題