代码改变世界

shiro-web-02

2018-11-03 22:12  crow!  阅读(126)  评论(0编辑  收藏  举报

权限认证配置

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]