有沒有一種方法可以用Spring Security taglibs實現控制語句?Spring Security Taglibs控制語句
目前,如果用戶有一定的作用,我們只能檢查...
<security:authorize access="hasRole('ROLE_ADMIN')">
// display something
</security:authorize>
怎麼回事?
有沒有一種方法可以用Spring Security taglibs實現控制語句?Spring Security Taglibs控制語句
目前,如果用戶有一定的作用,我們只能檢查...
<security:authorize access="hasRole('ROLE_ADMIN')">
// display something
</security:authorize>
怎麼回事?
access
屬性的值是SpEL表達式,根據WebSecurityExpressionRoot
進行評估,因此您可以使用其所有方法和所有SpEL語法。
您還可以通過將自定義WebSecurityExpressionHandler
聲明爲bean(然後您可以添加自己的方法和變量)來自定義評估上下文的創建。
如果您錯過了接受答案的評論。下面是如何使一個控制語句進行<security:authorize>
<security:authorize access="hasRole('ROLE_ADMIN')">
// IF -- display something
</security:authorize>
<security:authorize access="!hasRole('ROLE_ADMIN')">
// ELSE -- display something
</security:authorize>
注意的!
不聲明中的其他條件
學分@Blake
的問題是舊的,但不管怎麼說..
您可以將變量評估結果存儲到變量中(至少在版本3.1中),然後在標準if/else
構造中使用它。我認爲這是比以前更有用的解決方案。
<security:authorize access="hasRole('ROLE_ADMIN')" var="isAdmin" />
<c:choose>
<c:when test="${isAdmin}">superuser</c:when>
<c:otherwise>ordinary user</c:otherwise>
</c:choose>
我使用以下方法來模擬控制語句 <安全:授權訪問= 「hasRole( 'ROLE_ADMIN')」> 得到COM管理員 安全:授權> <安全:授權訪問= 「!hasRole('ROLE_ADMIN')」>> 沒有管理員 安全:授權> – Blake 2010-05-18 04:19:04
只是我還是這樣回答問題?我想寫'超級用戶普通用戶 c:否則> '。它不起作用。爲什麼它不起作用,我如何使它工作? –
jameshfisher
2013-05-23 10:03:38