有没有办法用Spring Security taglib实现控制语句?
目前我们只能检查用户是否有角色...
<security:authorize access="hasRole('ROLE_ADMIN')">
// display something
</security:authorize>
Run Code Online (Sandbox Code Playgroud)
别的怎么样?
nKo*_*ito 17
问题很古老,但无论如何......
你可以存储标签评价为变量(至少在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>
Run Code Online (Sandbox Code Playgroud)
如果您错过了已接受答案的评论.以下是如何制作控制语句<security:authorize>
<security:authorize access="hasRole('ROLE_ADMIN')">
// IF -- display something
</security:authorize>
<security:authorize access="!hasRole('ROLE_ADMIN')">
// ELSE -- display something
</security:authorize>
Run Code Online (Sandbox Code Playgroud)
注意!else条件中的not语句
学分 @Blake
该属性的值access是一个SpEL表达式,根据 进行计算WebSecurityExpressionRoot,因此您可以使用它的所有方法和所有 SpEL 语法。
您还可以通过将自定义声明WebSecurityExpressionHandler为 bean 来自定义评估上下文的创建(然后您可以添加自己的方法和变量)。
| 归档时间: |
|
| 查看次数: |
4386 次 |
| 最近记录: |