shiro学习笔记十一:shiro中的jsp标签

一、项目说明

项目环境:jdk1.7+tomcat7+idea2018+maven+shiro1.3.2

源代码github地址:https://github.com/tmAlj/shiro/tree/master/ssms

实现目标:通过在页面使用部分shiro中jsp标签,实现相应的效果,达到对shiro的jsp标签的使用与理解

综合实例:基于shiro的按钮级别的权限管理系统

二、Shiro标签说明

        注:需要使用shiro中的标签时先要通过<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>导入,实际中一般只会使用部分简单的标签,如果在页面通过标签实现权限控制等,将会导致页面冗余等

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

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

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

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

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

(6)lacksPermission标签 :如果当前Subject没有权限将显示body体内容

(7)hasRole标签 :如果当前Subject有角色将显示body体内容

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

(9)lacksRole标签 :如果当前Subject没有角色将显示body体内容

(10)hasPermission标签 :如果当前Subject有权限将显示body体内容

三、标签使用示例

        注:本节所有实例基于shiro学习笔记十:shiro授权流程

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%--导入shiro标签库--%>
<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<html>
<head>
    <title>欢迎</title>
</head>
    <%--shiro标签principal的使用--%>
    <h1>恭喜您:<shiro:principal/>,您登录成功啦!</h1>
    <%--shiro标签hasRole的使用--%>
    <shiro:hasRole name="admin">
    <a href="admin.jsp">进入admin</a>
    </shiro:hasRole>
    <shiro:hasRole name="user">
    <a href="user.jsp">进入user</a>
    </shiro:hasRole>
    <a href="logout">退出登录</a>
<body>
</body>
</html>

四、测试示例

        注:因为在welcom.jsp页面使用了principal和hasRole标签,使用user/123456(user角色)和admin/123456(admin角色)登录成功后会看到用户名和不同的操作选项

(1)登录/login.jsp

adfd1ae7cddd31175e59fd6284f4937d98e.jpg

(2)admin用户登录成功

e545a706f71adbeb4711972efdd705129fe.jpg

(3)user用户登录成功

7166468a316afcfe8f46c49b3cee8daab3b.jpg

转载于:https://my.oschina.net/tij/blog/1930048

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值