Shiro 如何对Jsp页面标签授权呢?

2023-11-16

转自:

Shiro 如何对Jsp页面标签授权呢?

下文笔者讲述jsp页面标签授权的方法分享,如下所示:

shiro中使用Jsp页面标签授权首先需要导入标签库<%@taglib prefix="shiro" uri="http://shiro.apache.org/tags" %>

常见的Shiro标签

<shiro:authenticated>        登录之后
<shiro:notAuthenticated>        不在登录状态时
<shiro:guest>            用户在没有RememberMe时
<shiro:user>            用户在RememberMe时
<shiro:hasAnyRoles name="abc,123" >    在有abc或者123角色时
<shiro:hasRole name="abc">        拥有角色abc
<shiro:lacksRole name="abc">        没有角色abc
<shiro:hasPermission name="abc">    拥有权限资源abc
<shiro:lacksPermission name="abc">    没有abc权限资源
<shiro:principal>        显示用户身份名称
<shiro:principal property="username"/>         显示用户身份中的属性值

guest

guest标签(与@RequiresGuest对应),验证用户没有登录认证或被记住过,验证是否是一个guest的请求

<shiro:guest>  
    欢迎游客访问,<a href="${pageContext.request.contextPath}/login.jsp">登录</a>  
</shiro:guest>

user

user标签(与@RequiresUser对应),登录后(记住我)看到的内容

<shiro:user>  
    欢迎您:<shiro:principal/>
</shiro:user>

authenticated

authenticated标签,用户登录(不包括记住我功能登录)

<shiro:authenticated>
    你已经认证通过啦,欢迎您:<shiro:principal/>
</shiro:authenticated>

notAuthenticated

用户未登录(记住我功能也算未登录)

principal

显示用户身份信息,默认调用Subject.getPrincipal()获取,即Primary Principal

<shiro:principal type="java.lang.String"/>	相当于Subject.getPrincipals().oneByType(String.class)
<shiro:principal property="username"/>          相当于((User)Subject.getPrincipals()).getUsername()

hasRole

与@RequiresRoles对应,校验是否有权限

<shiro:hasRole name="update">  
    <a href="/modify.jsp">修改</a>
</shiro:hasRole> 

lacksRole

当前用户没有任何角色则显示标签体中的内容

hasAnyRoles

当前用户拥有任何一个角色则显示标签体中的内容

hasAllRoles

当前用户拥有指定的所有角色则显示标签体中的内容

hasPermission

与@RequiresPermissions对应

lacksPermission

当前用户拥有任何一个权限则显示标签体中的内容

hasAnyPermissions

当前用户拥有任何一个权限则显示标签体中的内容

hasAllPermissions

当前用户拥有指定的所有权限则显示标签体中的内容,一个或多个角色和权限的在项目中会经常使用

<shiro:hasAllPermissions name="user:create,user:update">  
    用户[<shiro:principal/>]拥有权限user:create和user:update<br/>  
</shiro:hasAllPermissions>  

<shiro:authenticated>
    你已经认证通过啦
 
    欢迎您:<shiro:principal/>
    <hr>
 
    <shiro:hasRole name="admin">
    所拥有的角色:admin
    </shiro:hasRole>
    <br>
    <shiro:hasAnyRoles name="admin,abc">
        拥有其中一个角色:admin or abc
    </shiro:hasAnyRoles>
    <br>
    <shiro:lacksRole name="admin2">
        未拥有的角色:admin2
    </shiro:lacksRole>
    <hr>
    <shiro:hasPermission name="role:create">
        拥有的权限:role:create
    </shiro:hasPermission>
    <br>
    <shiro:lacksPermission name="menu:create">
        未拥有的权限:menu:create
    </shiro:lacksPermission>
</shiro:authenticated>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Shiro 如何对Jsp页面标签授权呢? 的相关文章

  • 如何在日期选择器中设置不在当前月份的单元格的样式

    我目前正在为我的 JavaFX 应用程序制作注册表 问题是 当日期选择器中的单元格不在页面的月份上时 我想让该单元格变灰 让我们看看我当前的日期选择器 我的日期选择器 正如您所看到的 我希望下个月的日期 27 日 28 日 30 日以及 1
  • 如何使用 FileChannel 将一个文件的内容附加到另一个文件的末尾?

    File a txt好像 ABC File d txt好像 DEF 我正在尝试将 DEF 附加到 ABC 所以a txt好像 ABC DEF 我尝试过的方法总是完全覆盖第一个条目 所以我总是最终得到 DEF 这是我尝试过的两种方法 File
  • ElasticBeanstalk Java,Spring 活动配置文件

    我正在尝试通过 AWS ElasticBeanstalk 启动 spring boot jar 一切正常 配置文件为 默认 有谁知道如何为 java ElasticBeanstalk 应用程序 不是 tomcat 设置活动配置文件 spri
  • 在Windows上安装Java 11 OpenJDK(系统路径问题)

    Java 11 最近发布了 众所周知 这个版本没有安装文件 当然 要在没有安装程序的情况下安装 Java 我将系统设置 PATH 和 JAVA HOME 设置为解压缩 Java 11 的文件夹的地址 根据对类似问题的已接受回复建议 唯一的事
  • 如何测试 JUnit 测试的 Comparator?

    我需要测试 Compare 方法 但我对如何测试感到困惑 我可以看看该怎么做吗 public class MemberComparator implements Comparator
  • JNI 不满意链接错误

    我想创建一个简单的 JNI 层 我使用Visual studio 2008创建了一个dll Win 32控制台应用程序项目类型 带有DLL作为选项 当我调用本机方法时 出现此异常 Exception occurred during even
  • IntelliJ IDEA 创建的 JAR 文件无法运行

    我在 IntelliJ 中编写了一个跨越几个类的程序 当我在 IDE 中测试它时它运行良好 但是 每当我按照教程将项目制作成 jar 可执行文件时 它就不会运行 双击 out 文件夹中的文件时 该文件不会运行 并显示 无法启动 Java J
  • java中删除字符串中的特殊字符?

    如何删除字符串中除 之外的特殊字符 现在我用 replaceAll w s 它删除了所有特殊字符 但我想保留 谁能告诉我我该怎么办 Use replaceAll w s 我所做的是将下划线和连字符添加到正则表达式中 我添加了一个 连字符之前
  • HDFS:使用 Java / Scala API 移动多个文件

    我需要使用 Java Scala 程序移动 HDFS 中对应于给定正则表达式的多个文件 例如 我必须移动所有名称为 xml从文件夹a到文件夹b 使用 shell 命令我可以使用以下命令 bin hdfs dfs mv a xml b 我可以
  • 如何在jsp代码中导入java库?

    我有以下jsp代码 我想添加 java io 等库 我怎样才能做到这一点
  • 制作java包

    我的 Java 类组织变得有点混乱 所以我要回顾一下我在 Java 学习中跳过的东西 类路径 我无法安静地将心爱的类编译到我为它们创建的包中 这是我的文件夹层次结构 com david Greet java greeter SayHello
  • 应用程序关闭时的倒计时问题

    我制作了一个 CountDownTimer 代码 我希望 CountDownTimer 在完成时重新启动 即使应用程序已关闭 但它仅在应用程序正在运行或重新启动应用程序时重新启动 因此 如果我在倒计时为 00 10 分钟 秒 时关闭应用程序
  • 将 JSON 参数从 java 发布到 sinatra 服务

    我有一个 Android 应用程序发布到我的 sinatra 服务 早些时候 我无法读取 sinatra 服务上的参数 但是 在我将内容类型设置为 x www form urlencoded 之后 我能够看到参数 但不完全是我想要的 我在
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • 如何配置eclipse以保持这种代码格式?

    以下代码来自 playframework 2 0 的示例 Display the dashboard public static Result index return ok dashboard render Project findInv
  • Springs 元素“beans”不能具有字符 [children],因为该类型的内容类型是仅元素

    我在 stackoverflow 中搜索了一些页面来解决这个问题 确实遵循了一些正确的答案 但不起作用 我是春天的新人 对不起 这是我的调度程序 servlet
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • 如何修复“sessionFactory”或“hibernateTemplate”是必需的问题

    我正在使用 Spring Boot JPA WEB 和 MYSQL 创建我的 Web 应用程序 它总是说 sessionFactory or hibernateTemplate是必需的 我该如何修复它 我已经尝试过的东西 删除了本地 Mav
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe
  • JAVA - 如何从扫描仪读取文件中检测到“\n”字符

    第一次海报 我在读取文本文件的扫描仪中读取返回字符时遇到问题 正在读取的文本文件如下所示 test txt start 2 0 30 30 1 1 90 30 0 test txt end 第一行 2 表示两个点 第二行 位置索引 0 xp

随机推荐

  • 超神战记不显示服务器,超神战记进不去 闪退及登陆不上解决方法

    超神战记手游进不去 超神战记无法连接服务器 超神战记手游登陆失败 超神战记手游进去就死机 更新失败 或更新之后进不去了 超神战记手游闪退是怎么回事 黑屏怎么回事 闪退怎么办 连接不上 超神战记手游与服务器连接失败 服务器连接异常 登陆不上
  • Machine Learning Yearning(开篇、1、2)

    Machine Learning Yearning 开篇 1 2 Machine Learning Yearning开篇12 开篇 目的 下载 章节名称 Chapter 1Why Machine Learning Strategy Chap
  • CV牛人牛事简介

    CV人物1 Jianbo Shi史建波毕业于UC Berkeley 导师是Jitendra Malik 其最有影响力的研究成果 图像分割 其于2000年在PAMI上多人合作发表 Noramlized cuts and image segme
  • C++学习博客

    网页 https blog csdn net kuweicai article details 82779648 https www cnblogs com inception6 lxc p 8686156 html https www c
  • 浮点数

    为什么要有浮点数 从十进制科学计数法理解浮点数 计算机中二进制的浮点数 二进制中阶码的底也可以不为2 例如 二进制中阶码的底可以为4 为8等等 当阶码的底为2 假设阶码为 1 则小数点需要后移一位 即算数左移一位 当阶码的底为4时 假设阶码
  • CentOS7 上配置Openstack[单机配置]

    本文目录 写在前面 配置前须知 step1 主机设置 step2 配置网口和DHCP确定IP step3 配置网络访问Internet step4 停止网络管理器关闭防火墙 step5 关闭SELinux step6 更新yum step7
  • 深度学习基础知识(发展历史)

    1 深度学习的历史及发展趋势 1 1 深度学习的历史 一般来说 目前为止已经有三次深度学习的发展浪潮 在20 世纪 40 年代到 60 年代深度学习被称为控制论 cybernetics 20 世纪 80 年代到 90 年代深度学习被誉为连接
  • mysql between and 和 大于小于的区别

    1 表达式 between 下界值 and 上界值 限定 表达式 的值介于 下界值 到 上界值 之间的所有值 并且包含 下界值 和 上界值 2 表达式 gt 下界值 and 表达式 lt 上界值 限定 表达式 的值介于 下界值 到 上界值
  • Linux内核调试技术——进程D状态死锁检测

    Linux的进程存在多种状态 如TASK RUNNING的运行态 EXIT DEAD的停止态和TASK INTERRUPTIBLE的接收信号的等待状态等等 可在include linux sched h中查看 其中有一种状态等待为TASK
  • element-ui el-dialog如何设置响应式宽高且永远水平垂直居中

    写在前面 el dialog是使平常使用element ui比较常用的一个组件 想要灵活控制它达到想要的开发效果 就必须要熟悉它默认一些属性 默认width 50 高度为标题和el dialog body el dialog footer内
  • 区块链-一些基本概念

    Hash collision resistance collision free 是说在密码学中 对于一个hash函数 很难找到两个不同的输入使得其hash之后的输出是一样的 Collision resistance is a proper
  • 两性养生网站源码 生活类减肥网站源码 健康网模板源码 支持QQ登录和百度主动推送

    本套模板非常适合生活类 两性类 减肥类等等类型的网站 这类型网站比较好做流量 因为客户群体众多 可以自行改内容为其他类型网站模板总体非常简洁漂亮 配色合理 视觉舒服 并且配合强大的帝国cms7 5核心 未来做大站真心很适合 也可以用来做站群
  • Redis Day02 - springBoot更改Redis默认序列化方式

    默认jdkSerializeable序列化后cli显示 xac xed x00 x05t x00 bcustomer 此刻在cli中get customer 为nil 为避免这种情况的出现 可自行修改序列化方式 只需在启动类自定义序列化类r
  • .yml文件_【玩转SpringBoot】配置文件yml的正确打开姿势

    作者 编程新说李新杰 出自 微信公众号 编程新说 原文 玩转SpringBoot 配置文件yml的正确打开姿势 序言 在很久以前 Spring的配置文件是基于XML的 它的名字就是applicationContext xml 没错 就只有这
  • 渗透测试常用浏览器插件汇总

    1 shodan 这个插件可以自动探测当前网站所属的国家 城市 解析IP地址以及开放的服务和端口 包括但不限于FTP DNS SSH或者其他服务等 属被动信息搜集中的一种 2 hackbar 收费之后用Max Hackerbar代替 这个插
  • 从零开始探索C语言(八)----指针

    文章目录 1 什么是指针 2 如何使用指针 3 NULL 指针 4 指针的算术运算 5 指针数组 6 指向指针的指针 7 传递指针给函数 8 从函数返回指针 有人说 指针是C语言的灵魂 所以学习C语言 学习指针是很有必要的 通过指针 可以简
  • Servlet执行原理和API详解---【创建Servlet项目】

    目录 一 Servlet 是什么 主要工作 第一个Servlet项目 编写代码 打包程序 一 Servlet 是什么 Servlet 是一款基于HTTP协议 用来开发Java Web 运行在Tomcat里面的里的框架技术 一种实现动态页面的
  • 微信抖音的服务器,抖音微信登陆未获得权限怎么办

    摘要 腾兴网为您分享 钉钉 苹果手机 ios系统 闲聊app 唱吧app等知识经验教程 欢迎大家关注腾兴网 抖音微信登陆未获得权限是很多小伙伴们遇到的 因此想要知道这个该怎么解决 不知道解决办法的小伙伴们 就让小编给大家详细的讲讲 一起来看
  • 【MySQL小白之路】数据的更新与删除

    MySQL小白之路 数据的更新与删除 数据更新 关键字 UPDATE 所需信息 1 需更新的表名 2 需更新的列名与更新值 3 锁定更新行的过滤条件 样例 以下为表的定义 student表 stu id int NOT NULL PRIMA
  • Shiro 如何对Jsp页面标签授权呢?

    转自 Shiro 如何对Jsp页面标签授权呢 下文笔者讲述jsp页面标签授权的方法分享 如下所示 shiro中使用Jsp页面标签授权首先需要导入标签库 常见的Shiro标签