shiro_06_shiro标签使用以及shiro会话机制

shiro标签使用

前面介绍权限认证时,说了有3种方式:编程式授权,jsp标签,注解式授权,没测试一下,这一篇来测试一下shiro的标签的使用:

也可以参考官方文档:jsp标签

首先要引入标签:在jsp页面加

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

Guest 标签:用户没有身份验证时显示相应信息,即游客访问信息;

User 标签:用户已经身份验证/记住我登录后显示相应的信息;

Authenticated 标签:用户已经身份验证通过,即 Subject.login 登录成功,不是记住我登录的。

notAuthenticated 标签:用户没有身份验证通过,即没有调用 Subject.login 进行登录,包括记住我自动登录 的也属于未进行身份验证。

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

hasRole 标签 如果当前 Subject 有角色将显示 body 体内容。

lacksRole 标签 如果当前 Subject 没有角色将显示 body 体内容。

hasAnyRoles 标签 如果当前 Subject 有任意一个角色(或的关系)将显示 body 体内容。

hasPermission 标签 如果当前 Subject 有权限将显示 body 体内容。

lacksPermission 标签 如果当前 Subject 没有权限将显示 body 体内容。 

统一在success.jsp页面测试,用不同用户登录后测试 

用户角色及权限配置:

测试hasRole标签:

用java用户测试hasRole(admin):

<shiro:hasRole name="admin">
	该用户有admin角色
</shiro:hasRole>

 


测试lacksRole(admin);
用jack用户登录:

<shiro:lacksRole name="admin">
	没有admin角色
</shiro:lacksRole>


测试hasAnyRoles:

<shiro:hasAnyRoles name="admin,teacher">
	您有admin,teacher角色其中一个或者都有
</shiro:hasAnyRoles>


测试hasPermission:

<shiro:hasPermission name="user:add,user:delete">
	您有用户添加,删除功能的权限
</shiro:hasPermission>

name里面可以写一个或多个权限的名字


测试lacksPermission:

<shiro:lacksPermission name="student:add,user:add">
	您没有同时添加学生和添加用户的权限
</shiro:lacksPermission>


测试principal标签:

hello,<shiro:principal/><br/>

相当于:hello,<%= SecurityUtils.getSubject().getPrincipal().toString() %>


测试Authenticated

<shiro:authenticated>
	您已经登录
</shiro:authenticated>

user,guest标签就不一一测试了,知道怎么使用就可以。


shiro会话机制

shiro自身提供了一种会话机制,有自己封装的session,和servlet提供的session一样的作用,当然如果不想用shiro的会话机制,也可以使用servlet的会话机制:

举个例子:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值