2012-06-08 54 views
7

如果用戶沒有特定角色,我想阻止具有鏈接的圖像。例如等同於不推薦使用的<sec:authorize> ifNotGranted屬性

<sec:authorize ifNotGranted="ROLE_ACCOUNTS" ><img src="someimage.jpg"/></sec:authorize> 
<sec:authorize ifAllGranted="ROLE_ACCOUNTS" ><a href="somelink.htm"><img src="someimage.jpg"/></a></sec:authorize> 

但是,ifNotGranted和ifAllGranted現在不贊成使用訪問表達式。我可以看到,是ifAllGranted可以被複制:

<sec:authorize access="hasRole('ROLE_ACCOUNTS')"><a href="somelink.htm"><img src="someimage.jpg"/></a></sec:authorize> 

但如何才能是ifNotGranted被複制使用的訪問方法?任何幫助將非常感激。

+0

訪問=「isFullyAuthenticated()而不是hasRole('ROLE_ACCOUNTS')」 – Ritesh

+0

@Ritesh感謝'isFullyAuthenticated()'可能是非常有用的另一個頁面。但是,在此頁面訪問僅適用於登錄用戶。 '沒有角色('ROLE_ACCOUNTS')'做了竅門。 – arontoms

回答

24

規劃環境地政司表達可以用!運營商被否定:

<sec:authorize access="!hasRole('ROLE_ACCOUNTS')">...</sec:authorize> 

參見:

2

在,如果你有很多文件要更新,我建議情況使用正規快遞查詢並更換

找到

<sec:authorize\s+ifAnyGranted="([^"]+)" 

更換

<sec:authorize access="hasAnyRole('$1')" 

和搜索

<sec:authorize\s+ifNotGranted="([^"]+)" 

<sec:authorize access="!hasAnyRole('$1')" 

希望這可以代替小號你的時間