• 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>

  • 相关阅读:
    爸爸妈妈儿子女儿吃水果问题以及五个哲学家吃饭问题
    同步与互斥中的购票和退票问题的PV操作与实现
    创建react&ts&antd项目
    在POM配置Maven plugin提示错误“Plugin execution not covered by lifecycle configuration”的解决方案
    aws rds 储存空间占用 异常排查 存储空间占满
    Linux下clang、gcc、intel编译器最新版本安装笔记
    extern "C"与extern "C" { … }的差别
    gcc预处理指令之#pragma once
    指向类的成员变量的指针
    Java程序中使用SQLite总结
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318029.html
Copyright © 2020-2023  润新知