• Apache Shiro 标签方式授权


    Shiro提供了一套JSP标签库来实现页面级的授权控制。 

    在使用Shiro标签库前,首先需要在JSP引入shiro标签: 

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

    下面一一介绍Shiro的标签: 

    guest标签 

    验证当前用户是否为“访客”,即未认证(包含未记住)的用户。

    <shiro:guest>  

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

    </shiro:guest>

    user标签 

    认证通过或已记住的用户。

    <shiro:user>  

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

    </shiro:user>

    authenticated标签 

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

    <shiro:authenticated>  

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

    </shiro:authenticated>

    notAuthenticated标签 

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

    <shiro:notAuthenticated>  

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

    </shiro:notAuthenticated>

    principal 标签 

    输出当前用户信息,通常为登录帐号信息。

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

    hasRole标签 

    验证当前用户是否属于该角色。

    <shiro:hasRole name="administrator">  

        <a href="admin.jsp">Administer the system</a>  

    </shiro:hasRole>

    lacksRole标签 

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

    <shiro:lacksRole name="administrator">  

        Sorry, you are not allowed to administer the system.  

    </shiro:lacksRole>

    hasAnyRole标签 

    验证当前用户是否属于以下任意一个角色。 

    <shiro:hasAnyRoles name="developer, project manager, administrator">  

        You are either a developer, project manager, or administrator.  

    </shiro:lacksRole>

    hasPermission标签 

    验证当前用户是否拥有指定权限。

    <shiro:hasPermission name="user:create">  

        <a href="createUser.jsp">Create a new User</a>  

    </shiro:hasPermission>

    lacksPermission标签 

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

    <shiro:hasPermission name="user:create">  

        <a href="createUser.jsp">Create a new User</a>  

    </shiro:hasPermission>

  • 相关阅读:
    《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
    HDU 4836 The Query on the Tree lca || 欧拉序列 || 动态树
    Android网络框架-Volley实践 使用Volley打造自己定义ListView
    Unity3D的ugui之按钮事件
    【Stage3D学习笔记续】真正的3D世界(六):空间大战
    【AwayPhysics学习笔记】:Away3D物理引擎的简介与使用
    【Away3D代码解读】(五):动画模块及骨骼动画
    【Away3D代码解读】(四):主要模块简介
    【Stage3D学习笔记续】真正的3D世界(五):粒子特效
    【Stage3D学习笔记续】真正的3D世界(四):空间大战雏形
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318029.html
Copyright © 2020-2023  润新知