2015-11-10 19 views
0

下面是我的一塊當前春季安全配置:如何manange Spring Security的多重角色和子路徑

... 
<intercept-url pattern="/foo/bar/**" access="hasRole('adminViewer')" /> 
<intercept-url pattern="/foo/**" access="hasRole('admin')" /> 
.... 

這基本上讓管理員foo/下訪問該網站的任何部分,並一個adminViewer訪問只有下面的區域foo/bar/

到目前爲止,它的工作正常,除了角色爲adminadminViewer的用戶。在這種情況下,adminViewer也被允許訪問管理專區,因爲它也是admin

是否可以通過禁止訪問/foo/來明確縮小adminViewer權限,如forbid-access或類似的東西?或者我有什麼缺點?

+1

如果用戶有兩個角色你爲什麼要限制他? –

回答

1

正如Pavel Horal指出的那樣,你的問題似乎並沒有多大意義。您應該專注於在權限和限制不重疊的情況下創建明確的角色。

話雖這麼說,你可以改變你的表情像這樣讓你期望的結果:

<intercept-url pattern="/foo/**" access="hasRole('admin') and (!hasRole('adminViewer'))" /> 
+0

Lukehey和@PavelHoral:你們都是對的,我只是在處理一個混亂的(而且現在不可觸摸的)角色管理:)。這個解決方案就像一個魅力順便說一句。 – Ignorant

+1

很高興聽到這個消息。好看清理它:) – Lukehey

相關問題