Permissions Shiro页面级访问
我对ApacheShiro相当陌生,但希望这是一个简单的问题。我花了相当多的时间寻找答案,但找不到答案 我有一个作为JSP的管理页面,我想根据用户权限显示各种链接。例如:Permissions Shiro页面级访问,permissions,shiro,Permissions,Shiro,我对ApacheShiro相当陌生,但希望这是一个简单的问题。我花了相当多的时间寻找答案,但找不到答案 我有一个作为JSP的管理页面,我想根据用户权限显示各种链接。例如: <%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %> <shiro:hasPermission name="admin:user:update"> <li class="admin-link update-user"
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<shiro:hasPermission name="admin:user:update">
<li class="admin-link update-user">Update Users</li>
</shiro:hasPermission>
<shiro:hasPermission name="admin:role:update">
<li class="admin-link update-role">Update Roles</li>
</shiro:hasPermission>
更新用户
更新角色
这很有效。但是,如果用户对该页面上的链接没有权限,我希望显示一条消息。我不在乎他们有权访问哪个链接,任何链接都会阻止消息显示
我想做:
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<shiro:hasPermission name="admin">
<shiro:hasPermission name="admin:user:update">
<li class="admin-link update-user">Update Users</li>
</shiro:hasPermission>
<shiro:hasPermission name="admin:role:update">
<li class="admin-link update-role">Update Roles</li>
</shiro:hasPermission>
</shiro:hasPermission>
<shiro:lacksPermission name="admin">
Sorry, you do not have admin rights
</shiro:lacksPermission>
更新用户
更新角色
对不起,您没有管理员权限
但是,我使用的是通配符权限,因此拥有“admin:role:update”这样的特定权限并不意味着拥有“admin”这样的通用权限,因此“you not have admin rights”消息始终显示
(即:
new wildcardpowmission(“admin”)。暗示(new wildcardpowmission(“admin:user:update”)
为true,但new wildcardpowmission(“admin:user:update”)。暗示(new wildcardpowmission(“admin”)
为false)
有没有一个简单的方法可以做到这一点,或者我需要用“管理页面权限”定义一个新的权限,并确保任何获得使用任何链接权限的角色也需要这个新权限?(这听起来像是一个维护问题)。在shiro标签中使用核心标签库,如
<c:set var="allowed" value="false"/>
<shiro:hasPermission name="admin">
<shiro:hasPermission name="admin:user:update">
<c:set var="allowed" value="true"/>
<li class="admin-link update-user">Update Users</li>
</shiro:hasPermission>
<shiro:hasPermission name="admin:role:update">
<c:set var="allowed" value="true"/>
<li class="admin-link update-role">Update Roles</li>
</shiro:hasPermission>
</shiro:hasPermission>
<c:if test="${not allowed}" >
Sorry, you do not have admin rights
</c:if>
更新用户
更新角色
对不起,您没有管理员权限