Apache shiro 笔记整理之web整合二

以下内容是在看了涛哥的《跟我一起学shiro》 和 视频《一头扎入进shiro》 后整理出来备忘和方便自己和其他人学习。

个人主页:http://www.itit123.cn/ 更多干货等你来拿

接上一章内容:http://blog.csdn.net/qq_19558705/article/details/50725689

第一点:Url通配符

?:指代单个字符,/admin? 可以指 :/admin + 任意一个字母 。但是不能是admin。

*:指代单个或零个字符,/admin* 可以指: /admin + 任意一个字母或不带字母。但是不能接两层路径

**:指代多层或零层路径,/admin** 可以指:/admin/任意多个内容。但是不能是admin*/多个内容(用的比较多)

/admin?=authc
/admin*=authc
/admin/**=authc

第二点:jsp授权标签

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页面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8"%>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<shiro:hasRole name="admin">
		欢迎admin用户 -- <shiro:principal /> 登录!
	</shiro:hasRole>
	
	<shiro:lacksRole name="admin">
		欢迎<shiro:principal /> 登录!
	</shiro:lacksRole>
	
	<shiro:hasPermission name="student:delete">
		您拥有:delete 权限
	</shiro:hasPermission>
</body>
</html>

通过不同用户登入,显示对应内容。因为笔者的疏忽,需要将shiro.ini中的

/teacher=perms["admin:delete"]

修改为:

/teacher=perms["student:delete"]


第三点:会话机制

和servlet用法相似

修改LoginServlet:

try {
			subject.login(token);
			Session session = subject.getSession();
			System.out.println("sessionId : " + session.getId());
			System.out.println("sessionHost : " + session.getHost());
			session.setAttribute("sessionKey","sessionValue");
			response.sendRedirect("success.jsp");
		}

在success.jsp页面添加:

<span style="white-space:pre">	</span><p>
		获取session 的值 : ${sessionKey}
	</p>

源码下载链接:http://download.csdn.net/detail/qq_19558705/9449956



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值