shiro在页面中使用权限

来源:4-2 我们要开发一套怎样的权限管理系统?

huangaiguo

2018-11-12

shiro在页面中使用权限 没有怎么讲。 希望老师指导下原理

写回答

1回答

Jimin

2018-11-12

你好,shiro倒是有自己的jsp页面标签控制,如果非jsp页面,那么只能自己设计实现了,比如进入页面前将需要判断权限的列表请求后端,后端分别给出是否有权限,前端根据结果渲染结果。因为这一层不同的页面有差别,实际中使用差别很大,因此并没有很细的去讲。

接下来细说一下shiro在jsp页面的标签控制。

首先引入shiro标签:

<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

【1】<shiro:hasRole/>

如果有该角色,则校验通过。name属性值只能为单个。

示例如下:

 <shiro:hasRole name ="admin">

 ...

 <shiro:hasRole/>


【2】<shiro:hasAnyRoles/>

如果是角色中的一个,则校验即可通过。name值可为多个。

示例如下:

<shiro:hasAnyRoles name ="admin,normal">

...

</shiro:hasAnyRoles>


【3】<shiro:lacksRole/>

如果用户没有该角色,则校验通过。name属性值只能有一个。

示例如下:

<shiro:lacksRole name ="admin">

...

</shiro:lacksRole >


【4】<shiro:hasPermission/>

如果用户有某个权限,则校验通过。name属性值只能有一个。

示例如下:

<shiro:hasPermission name = "user:area">

....

</shiro:hasPermission>


【5】<shiro:lacksPermission/>

如果用户没有该权限,则校验通过。name属性值只能有一个。

示例如下:

<shiro:lacksPermissionname ="admin">

...

</shiro:lacksPermission>


【6】<shiro:guest/>

来宾标签,如果未认证(登录) 或者 系统未记住,则通过校验。

In other words : 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。

范围:未认证已记住+未记住已认证+未认证且未记住。

示例如下:

<shiro:guest>

Hello,Please login..

</<shiro:guest>


【7】<shiro:user/>

用户标签,与来宾标签对应,如果已经认证(登录) 或 记住我,则通过校验。

In other words : 认证通过或已记住的用户 。

范围:认证未记住+记住未认证+认证且记住。

<shiro:user>  

    Welcome back John! 

</shiro:user>  


【8】<shiro:authenticated/>

认证标签比user标签更严格,只有**通过认证(登录)**才可通过校验。

In other words : 只有已认证通过的用户,不包含只有已记住(记住我)的用户,这是与user标签的区别所在

范围:认证且未记住+认证且已记住。

<shiro:authenticated>  

    ....

</shiro:authenticated> 


【9】<shiro:notAuthenticated/>

未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。 即,“记住我”进行登录的yeshuyu未进行身份认证。

范围:未认证且未记住+未认证且已记住。

示例如下:

<shiro:notAuthenticated>  

    Please <a href="login.jsp">login</a> 

</shiro:notAuthenticated>  


【10】<shiro:principal/>

显示用户身份信息,默认调用Subject.getPrincipal() 获取,即Primary Principal。

示例如下:

Hello, <shiro:principal/>, how are you today?  

1
1
huangaiguo
非常感谢!
2018-11-14
共1条回复

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2264 学习 · 1347 问题

查看课程