权限认证配置
shiro.ini
角色检测
[main] # 如果现在认证失败,则跳转到loginUrl配置路径 authc.loginUrl=/login.jsp # 需要配上当角色认证失败之后的跳转页面 roles.unauthorizedUrl=/role.jsp jdbcRealm=cn.mldn.realm.MyRealm securityManager.realms=$jdbcRealm [urls] # 登陆页面不需要进行检测处理的 /shiroLogin=anon # 指定的页面需要进行登录检测 , 此时表示需要先进行身份认证,然后在进行角色认证 /pages/welcome.jsp=authc,roles[member]
权限检测
[main] # 如果现在认证失败,则跳转到loginUrl配置路径 authc.loginUrl=/login.jsp # 需要配上当角色认证失败之后的跳转页面 roles.unauthorizedUrl=/role.jsp # 配置权限认证失败的跳转权限 perms.unauthorizedUrl=/role.jsp jdbcRealm=cn.mldn.realm.MyRealm securityManager.realms=$jdbcRealm [urls] # 登陆页面不需要进行检测处理的 /shiroLogin=anon # 指定的页面需要进行登录检测 , 此时表示需要先进行身份认证,然后在进行角色认证 /pages/welcome.jsp=authc,roles[member] # 对指定页面登录之后进行权限的检测处理 /pages/welcome.jsp=authc,perms[member:add]
shiro标签
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<h1>Welcome !</h1>
<shiro:principal />
<shiro:user>
结合cookie使用remember me 这样的一种技术
</shiro:user>
<shiro:guest>
<p>当前是否为游客</p>
</shiro:guest>
<shiro:authenticated>
<p>判断是否认证过</p>
</shiro:authenticated>
<shiro:hasRole name="member">
<p> 具有Member角色! </p>
</shiro:hasRole>
<shiro:lacksRole name="emp">
<p> 不具备有emp角色 </p>
</shiro:lacksRole>
<shiro:hasPermission name="member:add">
<p>具备有Member:add的权限</p>
</shiro:hasPermission>
<shiro:lacksPermission name="member:edit">
<p> 不具备有Member:edit的权限</p>
</shiro:lacksPermission>
</body>
</html>
设置路径通配符
“?” 匹配任意一个通配符 例如 “/admin?” 可以匹配 “admin1”
“*” 匹配一个或多个任意字符,例如“/admin*”可以匹配 “admin123”
“**” 匹配0个或多个目录,例如“/admin/**” ,可以匹配 “/admin/1/3/qwe”
[main] # 如果现在认证失败,则跳转到loginUrl配置路径 authc.loginUrl=/login.jsp # 需要配上当角色认证失败之后的跳转页面 roles.unauthorizedUrl=/role.jsp # 配置权限认证失败的跳转权限 perms.unauthorizedUrl=/role.jsp jdbcRealm=cn.mldn.realm.MyRealm securityManager.realms=$jdbcRealm [urls] #表示messages下的所有路劲都需要进行认证检测 /messages/**=authc # 登陆页面不需要进行检测处理的 /shiroLogin=anon # 指定的页面需要进行登录检测 , 此时表示需要先进行身份认证,然后在进行角色认证 /pages/welcome.jsp=authc,roles[member] # 对指定页面登录之后进行权限的检测处理 # /pages/welcome.jsp=authc,perms[member:add]