HTML和Jsp 页面使用 shiro标签备忘录

好久没用shiro了,以前学习时用了一下,过久了不用shiro的标签都不会用了,今天写一下来记录一下免得又得找半天

先把这用到shiro的html页面先写出来先

shiro 首先导入头部

<html xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">

再来标签是权限判断是否拥有该权限

<div shiro:hasAnyRoles="7,1,9"><li><a href="javascript:;" id="shouhuo">售货单管理</a></div>

重点啊!!!!!!!

pom.xml必须得添加的jar包

  <dependency>
		 <groupId>com.github.theborakompanioni</groupId>
		 <artifactId>thymeleaf-extras-shiro</artifactId>
		 <version>2.0.0</version>
	</dependency>
	<dependency>
		 <groupId>org.springframework.boot</groupId>
		 <artifactId>spring-boot-starter-thymeleaf</artifactId>
	</dependency>

页面使用标签也必须在ShiroConfig里面注入这个bean

@Bean
public ShiroDialect shiroDialect() {
    return new ShiroDialect();
} 

这样的话,HTMl页面才能通过标签跳转到授权逻辑

有个坑排一下,如果上面jar包版本号不为<version>2.0.0</version>会报shiroDialect找不到AbstractProcessorDialect(注意

js页面也写一下,貌似相差不多

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

1、介绍Shiro的标签guest标签 :验证当前用户是否为“访客”,即未认证(包含未记住)的用户。

<shiro:guest> 
Hi there!  Please <a href="login.jsp">Login</a> or <a href="signup.jsp">Signup</a> today! 
</shiro:guest>

2、user标签 :认证通过或已记住的用户。

<shiro:user> 
 
    Welcome back John!  Not John? Click <a href="login.jsp">here<a> to login. 
 
</shiro:user>

3、authenticated标签 :已认证通过的用户。不包含已记住的用户,这是与user标签的区别所在。

<shiro:authenticated> 
 
    <a href="updateAccount.jsp">Update your contact information</a>. 
 
</shiro:authenticated>

4、notAuthenticated标签 :未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。

<shiro:notAuthenticated> 
 
    Please <a href="login.jsp">login</a> in order to update your credit card information. 
 
</shiro:notAuthenticated>

5、principal 标签 :输出当前用户信息,通常为登录帐号信息。

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

6、hasRole标签 :验证当前用户是否属于该角色。

<shiro:hasRole name="administrator"> 
 
    <a href="admin.jsp">Administer the system</a> 
 
</shiro:hasRole>

7、lacksRole标签 :与hasRole标签逻辑相反,当用户不属于该角色时验证通过。

<shiro:lacksRole name="administrator"> 
 
    Sorry, you are not allowed to administer the system. 
 
</shiro:lacksRole>
  

8、hasAnyRole标签 :验证当前用户是否属于以下任意一个角色。

<shiro:hasAnyRoles name="developer, project manager, administrator"> 
 
    You are either a developer, project manager, or administrator. 
 
</shiro:lacksRole>

9、hasPermission标签 :验证当前用户是否拥有指定权限。

<shiro:hasPermission name="user:create"> 
 
    <a href="createUser.jsp">Create a new User</a> 
 
</shiro:hasPermission>

10、lacksPermission标签 :与hasPermission标签逻辑相反,当前用户没有制定权限时,验证通过。

<shiro:hasPermission name="user:create"> 
    <a href="createUser.jsp">Create a new User</a> 
</shiro:hasPermission>

差不多得了,可以去瞧瞧大佬写的

https://www.cnblogs.com/jifeng/p/4500410.html

附上以前写的小项目测试代码

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<title>ERP进销存</title>
<meta name="description" content="这是一个 index 页面" />
<meta name="keywords" content="index" />
<meta name="viewport"
	content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
<meta name="renderer" content="webkit" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<link rel="icon" type="image/png" th:href="@{/i/favicon.png}" />
<link rel="apple-touch-icon-precomposed"
	th:href="@{/i/app-icon72x72@2x.png}" />
<meta name="apple-mobile-web-app-title" content="Amaze UI" />
<link rel="stylesheet" th:href="@{/css/amazeui.min.css}" />
<link rel="stylesheet" th:href="@{/css/admin.css}" />
<script th:src="@{/js/jquery.min.js}"></script>
<script th:src="@{/js/app.js}"></script>
<link th:href="@{/css/bootstrap.css}" rel="stylesheet" />


</head>
<style>
h3 {
	font-size: 20px;
}
ul li{
font-size: 15px;
}
</style>

<body>
	<header class="am-topbar admin-header">
		<div class="am-topbar-brand">
			<img th:src="@{/i/logo.jpg}" />
		</div>
		<div class="am-collapse am-topbar-collapse" id="topbar-collapse">
			<ul class="am-nav am-nav-pills am-topbar-nav admin-header-list">
				<li class="am-dropdown tognzhi" data-am-dropdown="">
					
				</li>
				<li class="kuanjie" style="font-size: 20px;margin-right: 15px;"><a id="geren"  th:onclick ="'javascript:gerens('+${peopleM.peopleid}+',\''+${peopleM.peoplename}+'\')'" th:text="个人中心"></a> <a href="javascript:;" id="tui">退&nbsp;&nbsp;出</a> </li>
			</ul>
		</div>
	</header>
	<div class="am-cf admin-main">
		<div class="nav-navicon admin-main admin-sidebar">
			<div class="sideMenu"
				style="color: #aeb2b7; margin: 10px 0 0 0;">
				<span style="font-size: 20px;">欢迎<span th:text="${peopleM.roleP.rolename}"></span>:<span th:text="${peopleM.peoplename}"></span></span>
			</div>
			<div class="sideMenu">
			
			<div shiro:hasAnyRoles="7,5,1,2,8,6">
				<h3 class="">
					<em></em> <a href="#">采购管理</a>
				</h3>
				<ul id="pp">
					<div shiro:hasAnyRoles="7,1,8"><li><a href="javascript:;" id="xuqiu">需求单处理</a></li></div>
					<div shiro:hasAnyRoles="7,1,8"><li><a href="javascript:;" id="baojia">报价单管理</a></li></div>
					<div shiro:hasAnyRoles="7,8"><li><a href="javascript:;" id="caishen">审核欲采购单</a></li></div>
					<div shiro:hasAnyRoles="7,5,8"><li><a href="javascript:;" id="caigou">采购单管理</a></li></div>
					<div shiro:hasAnyRoles="7,2,8"><li><a href="javascript:;" id="caiorder">查看采购交易订单记录</a></li></div>
					<div shiro:hasAnyRoles="7,6,8"><li><a href="javascript:;" id="quhuo">取货管理</a></li></div>
				</ul>
				
				
				
				
			</div>
			<div shiro:hasAnyRoles="7,1,9,2">
				<h3 class="">
					<em></em> <a href="#"> 销售管理</a>
				</h3>
				<ul id="pp">
					<div shiro:hasAnyRoles="7,1,9"><li><a href="javascript:;" id="shouhuo">售货单管理</a></li>        </div>
					<div shiro:hasAnyRoles="7,9"><li><a href="javascript:;" id="shoushen">审核欲售货单</a></li>       </div>
					<div shiro:hasAnyRoles="7,6,9"><li><a href="javascript:;" id="tihuo">提货管理</a></li>            </div>
					<div shiro:hasAnyRoles="7,2,9"><li><a href="javascript:;" id="shoujiao">查看售货交易订单记录</a></li> </div>
				</ul>		
				
				
				</div>
			<div shiro:hasAnyRoles="7,4,6">
				<h3 class="">
					<em></em> <a href="#">仓库管理</a>
				</h3>
				<ul id="pp">
					<div shiro:hasAnyRoles="7,4"><li><a href="javascript:;" id="kucun">库存管理</a></li>       </div>
					<div shiro:hasAnyRoles="7,4"><li><a href="javascript:;" id="wuzhi">物质明细管理</a></li>   </div>
					<div shiro:hasAnyRoles="7,4"><li><a href="javascript:;" id="chuku">出库管理</a></li>       </div>
					<div shiro:hasAnyRoles="7,4"><li><a href="javascript:;" id="jiagong">加工管理</a></li>       </div>
					<div shiro:hasAnyRoles="7,4,6"><li><a href="javascript:;" id="yushu">运输管理</a></li>       </div>
					<div shiro:hasAnyRoles="7,4"><li><a href="javascript:;" id="ruku">入库单管理</a></li>     </div>
				</ul>
				
				
				</div>
			<div shiro:hasAnyRoles="7,1,10">
				<h3 class="">
					<em></em> <a href="#">客户管理</a>
				</h3>
				<ul id="pp">
					<li><a href="javascript:;"  class="ids" id="ids">客户信息管理</a></li>
				</ul>
				</div>
			<div shiro:hasAnyRoles="7,2">
				<h3 class="">
					<em></em> <a href="#">财务管理</a>
				</h3>
				<ul id="pp">
					<li><a href="javascript:;" id="fukuan">付款收据管理</a></li>
					<li><a href="javascript:;" id="shoukuan">收款收据管理</a></li>
				<!-- 	<li>近期金额统计</li>
					<li>出入账汇率</li> -->
				</ul>
				</div>
				
			<div shiro:hasAnyRoles="7,1,10">
				<h3 class="">
					<em></em> <a href="#" >供应商管理</a>
				</h3>
				<ul id="pp">
					<li><a href="javascript:;" id="gong">供应商信息管理</a></li>
				</ul>
				</div>
				
			<div shiro:hasAnyRoles="7,10">
				<h3 class="">
					<em></em> <a href="#">员工管理</a>
				</h3>
				<ul id="pp">
					<li><a  id="juese" href="javascript:;">角色管理</a></li>
					<li><a id="jue" href="javascript:;">员工信息管理</a></li>
				</ul>
				</div>
			</div>
			
			<!-- sideMenu End -->
			<script type="text/javascript">
				jQuery(".sideMenu").slide({
					titCell : "h3", //鼠标触发对象
					targetCell : "ul", //与titCell一一对应,第n个titCell控制第n个targetCell的显示隐藏
					effect : "slideDown", //targetCell下拉效果
					delayTime : 300, //效果时间
					triggerTime : 150, //鼠标延迟触发时间(默认150)
					defaultPlay : false,//默认是否执行效果(默认true)
					returnDefault : true
				//鼠标从.sideMen移走后返回默认状态(默认false)
				});
			</script>
		</div>
		<div class=" admin-content">
		 
			<div class="daohang" ></div>
			<div class="daohang">
            <ul>
                <li > <button type="button" id="niu" style="font-size: 18px;color:white" class="am-btn am-btn-default am-radius am-btn-xs">  </button></li>
                <li > <button type="button" id="xie" style="font-size: 18px;color:white" class="am-btn am-btn-default am-radius am-btn-xs"></button></li>
                <li ><button type="button" id="bi"  style="font-size: 18px;color:white" class="am-btn am-btn-default am-radius am-btn-xs"></button></li>
            </ul>
        </div>
			<div class="admin" >
				<iframe id="ifrm" src="/peo/fengge" width="100%" height="1200px"  scrolling="no" ></iframe>
			</div>
		</div>
	</div>
	
</body>
<script th:src="@{/js/time2.js}"></script>

<script>

var niu=$("#niu");
var bi=$("#bi");
var xie=$("#xie");
var xuqiu=$("#xuqiu");//需求
var baojia=$("#baojia");//报价
var caishen=$("#caishen");//采购审核
var caigou=$("#caigou");//采购单
var caiorder=$("#caiorder");//采购记录
var quhuo=$("#quhuo");//取货
var i=$("#jue");//员工
var jue=$("#juese");//角色
var ifrm=$("#ifrm");//框架
var tui=$("#tui");//退出
var ids=$("#ids");//客户
var gong=$("#gong");//供应商
var fukuan=$("#fukuan");//付款
var shoukuan=$("#shoukuan");//收款
var shouhuo=$("#shouhuo");//售货
var shoushen=$("#shoushen");//审核
var tihuo=$("#tihuo");//提货
var shoujiao=$("#shoujiao");//售货交易
var kucun=$("#kucun");//库存
var wuzhi=$("#wuzhi");//物质
var chuku=$("#chuku");//出库
var jiagong=$("#jiagong");//加工
var yushu=$("#yushu");//运输
var ruku=$("#ruku");//入库


xuqiu.click(function(){
	niu.text("采购管理");
	bi.text("需求单管理");
	xie.text("/");
	ifrm.attr("src","/xq/list");	
	
	});
	baojia.click(function(){
		niu.text("采购管理");
		bi.text("报价单管理");
		xie.text("/");
		ifrm.attr("src","/bao/list");	
	});
	caishen.click(function(){
		niu.text("采购管理");
		bi.text("审核采购单");
		xie.text("/");
		ifrm.attr("src","/cg/Jlist");	
	});
	caigou.click(function(){
		niu.text("采购管理");
		bi.text("采购单单管理");
		xie.text("/");
		ifrm.attr("src","/cg/list");	
	});
	caiorder.click(function(){
		niu.text("采购管理");
		bi.text("采购交易记录管理");xie.text("/");
		ifrm.attr("src","/or/list");	
	});
	quhuo.click(function(){
		niu.text("采购管理");
		bi.text("取货单管理");xie.text("/");
		ifrm.attr("src","/qh/list");	
	});
/* 仓库模块 */
kucun.click(function(){
	niu.text("仓库管理");
	bi.text("库存管理");xie.text("/");
	ifrm.attr("src","/items/lists");	
});
wuzhi.click(function(){
	niu.text("仓库管理");
	bi.text("物质详情管理");xie.text("/");
	ifrm.attr("src","/wu/lists");	
});
chuku.click(function(){
	niu.text("仓库管理");
	bi.text("出库管理");xie.text("/");
	ifrm.attr("src","/os/list");	
});
jiagong.click(function(){
	niu.text("仓库管理");
	bi.text("加工单管理");xie.text("/");
	ifrm.attr("src","/jg/list");	
});
yushu.click(function(){
	niu.text("仓库管理");
	bi.text("运输管理");xie.text("/");
	ifrm.attr("src","/ys/list");	
});
ruku.click(function(){
	niu.text("仓库管理");
	bi.text("入库管理");xie.text("/");
	ifrm.attr("src","/rk/list");	
});






/*  员工管理*/
i.click(function(){
	niu.text("员工管理");
	bi.text("员工信息管理");xie.text("/");
	ifrm.attr("src","/peo/list");	
});
jue.click(function(){
	
	niu.text("员工管理");
	bi.text("角色管理");xie.text("/");
	ifrm.attr("src","/role/list");	
}); 
/*  供应商管理*/
gong.click(function(){
	niu.text("供应商管理");
	bi.text("供应商信息管理");xie.text("/");
	ifrm.attr("src","/provider/list");	
});
/* 客户模块 */
ids.click(function(){
	niu.text("客户管理");
	bi.text("客户信息管理");xie.text("/");
	ifrm.attr("src","/customer/list");	
});
/* 财务模块 */
fukuan.click(function(){
	niu.text("财务管理");
	bi.text("付款收据管理");xie.text("/");
	ifrm.attr("src","/scoder/list");	
});
shoukuan.click(function(){
	niu.text("财务管理");
	bi.text("收款收据管理");xie.text("/");
	ifrm.attr("src","/rcoder/list");	
});
/* 售货模块 */
shouhuo.click(function(){
	niu.text("售货管理");
	bi.text("售货订单管理");xie.text("/");
	ifrm.attr("src","/xs/list");	
});
shoushen.click(function(){
	niu.text("售货管理");
	bi.text("审核售货订单");xie.text("/");
	ifrm.attr("src","/xs/lists");	
});
tihuo.click(function(){
	niu.text("售货管理");
	bi.text("提货管理");xie.text("/");
	ifrm.attr("src","/th/list");	
});
shoujiao.click(function(){
	niu.text("售货管理");
	bi.text("售货交易订单管理");xie.text("/");
	ifrm.attr("src","/xsor/list");	
});



/* 个人主页跳转 */
function gerens(pojo,names){
	niu.text("个人主页");xie.text("/");
	
	bi.text(names+"个人主页");
	ifrm.attr("src","/test/geren?pojo="+pojo);	
}
/*退出传值  */
tui.click(function(){	
	location.href="/login";
})
</script>
</html>
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值