自学-Shiro 标签-15

这节呢我们来学习Shiro标签,在学习之前我们必须知道授权的方式有几种:

Shiro 支持三种方式的授权:

– 编程式:通过写if/else 授权代码块完成;

– 注解式:通过在执行的Java方法上放置相应的注解完成,没有权限将抛出相应的异常;

– JSP/GSP 标签:在JSP/GSP 页面通过相应的标签完成。

之前我们在项目中已经用过编程式的授权,那么现在我们就来学习下标签吧!

首先我们得在页面导入使用shiro标签的标签库:(这个是必须要加的)

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

那么接下来我们就可以在页面中正常的使用了:

shiro的全部标签:


那么这些标签该怎么使用呢?那我们就一一讲解吧!

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

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

user 标签:用户已经经过认证/记住我登录后显示相应的信息。

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

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

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

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

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

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

代码如下:

index.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="http://shiro.apache.org/tags"  prefix="shiro"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'index.jsp' starting page</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
  </head>
  
  <body>
  
  <shiro:user>
  	1.用户《<shiro:principal></shiro:principal>》已登录
  </shiro:user>
    <br/><br/>
    
     2.以游客的身份登录
    <shiro:guest></shiro:guest>
    <br/><br/>
    3.
   <shiro:hasAnyRoles name="admin,user">
         <a href="admin.jsp">admin</a>
         <a href="user.jsp">user</a>
   </shiro:hasAnyRoles>
     <br/><br/>
    
    4.
    <shiro:hasRole name="admin">
      <a href="admin.jsp">admin</a>
    </shiro:hasRole>
     <br/><br/>
     
    <a href="admin.jsp">admin</a>
    <br/><br/>
    <a href="user.jsp">user</a>
    <br/><br/>
    <a href="shiro/logout">登出</a>
  </body>
</html>
对应的页面:

都以admin登录:


其余的标签就不一一测试,有兴趣的话自己测试下哈!









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值