shiro 动态修改资源权限不需要重启项目或者重新登录用户

2023-11-01

用shiro做权限控制的时候,变更用户或者角色的权限后刷新界面不会重新加载权限,需要重启tomcat或者用户重新登录,特别的不人性化,通过下面的方式可以解决这个问题,但仅仅针对于单机,对集群来说就不太清楚,以后有了更好的方法再去使用(菜鸟级别,还需要学习很多):

代码使用:

工具类中:

	/**
	 * 
	* @Title: clearAuth 
	* @Description: TODO 清空所有资源权限  
	* @return void    返回类型
	 */
	public static void clearAuth(){
		RealmSecurityManager rsm = (RealmSecurityManager)SecurityUtils.getSecurityManager();
		ShiroDbRealm realm = (ShiroDbRealm)rsm.getRealms().iterator().next();
		realm.clearAuthz();
	}


自定义AuthorizingRealm中:

public void clearAuthz(){
		this.clearCachedAuthorizationInfo(SecurityUtils.getSubject().getPrincipals());
	}

在进行权限修改完成之后,进行去权限的清空

效果:

授权改变前



授权改变刷新后:


当你把权限清空之后,刷新界面,shiro会自动重新加载自定义realm中的doGetAuthorizationInfo()方法进行角色和权限的验证,这样可以达到预期的结果了

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shiro 动态修改资源权限不需要重启项目或者重新登录用户 的相关文章

  • Shiro采用shiro实现登录认证与权限授权管理

    Shiro 是一个 Apache 下的一开源项目项目 旨在简化身份验证和授权 spring springMVC maven shiro shiro的配置 通过maven加入shiro相关jar包 1 shiro的配置 通过maven加入sh
  • SpringBoot 整合shiro框架

    网上有很多整合shiro的博客分享 但是貌似没找到一个完整 并且能够实现的 不是包的问题 就是代码的问题 也可能是自己的问题 或者版本的问题 所以 整理了一版自己已应用的 maven依赖
  • springboot2+shiro+redis限制同一账号同时在线人数

    springboot2 shiro redis限制同一账号同时在线人数 我们在写系统的时候 需要注意账号安全问题 最好的处理方法就是同一个账号只能在一个地方登录 原理 大概的原理就是每次登录的时候将登录的sessionId存入缓存 然后登录
  • springboot整合shiro(新手教程)

    咱们也就不多哔哔 直接开始 我先放我自己写的项目结构 第一步 想啥了 肯定是先创建一个springboot的项目 第二步 配置pom文件
  • Shiro学习笔记。

    授权需要继承 AuthorizingRealm 类 并实现其 doGetAuthorizationInfo 方法 AuthorizingRealm 类继承自 AuthenticatingRealm 但没有实现 AuthenticatingR
  • 自定义实现OAuth2.0 授权码模式

    文章目录 OAuth2 0 授权码模式 实践 依赖知识 术语 授权码流程 认证服务器 拉起请求用户授权页面 用户手动授权 提交授权 生成code 下发Token 第三方应用 收到code并请求Token 访问受保护的资源 项目结构 Tomc
  • Shiro中Session和Cache

    Session是一种状态保持机制 参考文章Session是什么可知Session和Web服务也没有必然关系 Shiro本身的Security Manager也可以脱离Servlet自己管理Session 根据Security Manager
  • shiro使用自定义realm实现数据认证

    自定义realm实现数据认证 在开发中 有时会与一些nosql或者其他地方保存的数据进行认证 这时候 shiro定义的那些realm类可能不能满足实际的功能需求 这时候我们可以通过自定义一个realm来沟通这些数据 实现认证和权限控制 首先
  • Shiro错误之No SecurityManager accessible to the calling code, either bound to the org.apache.shiro.util

    提示 No SecurityManager accessible to the calling code either bound to the org apache shiro util ThreadContext or as a vm
  • shiro框架---关于用户登录退出接口的介绍

    接上一篇文章shiro框架 shiro配置用户名和密码的注意 项目已分享到GitHub上 如果需要的可以看下 springboot shiro项目Git下载地址 在我前几篇文章里有shiro配置的文件下载包 下载后里边有四个配置文件Shir
  • Shiro权限管理框架

    Shiro 一 Shiro权限 什么是权限控制 忽略特别细的概念 比如权限能细分很多种 功能权限 数据权限 管理权限等 理解两个概念 用户和资源 让指定的用户 只能操作指定的资源 CRUD 初学javaweb时怎么做 Filter接口中有一
  • Shiro JndiLdapRealm 针对 LDAP 的授权

    The Shiro 类 JndiLdapRealm 的 JavaDoc明确表示默认情况下禁用授权 并且用户应通过子类化和覆盖 LDAP 服务器来实现授权JndiLdapRealm doGetAuthorizationInfo方法 是否有示例
  • 将 Shiro 的 PasswordMatcher 与自定义领域结合使用

    我使用 Apache Shiro 和自定义 JDBC 领域来从数据库中检索用户的盐 密码 哈希算法名称和哈希迭代次数 这些数据都存储为单独的列 问题是我不确定在使用 PasswordMatcher 验证用户密码与数据库中存储的密码是否匹配时
  • 带有 jdbc 和哈希密码的 shiro

    这是我的 shiro 配置 main authc loginUrl site index jsp authc usernameParam user authc passwordParam pass authc rememberMeParam
  • 使用 Shiro 登录后重定向到最后访问的页面

    使用 apache shiro 登录并重定向到最后访问的页面的更好方法是什么 我只有这个 SecurityUtils getSubject login new UsernamePasswordToken username password
  • 使用 ini 文件进行 Spring MVC 和 Shiro 配置

    我正在尝试使用 Spring MVC 和 Apache Shiro 建立一个环境 我正在关注 shiro apache org 中提到的文章 我在 web xml 中使用 Spring 的 DelegatingFilterProxy 作为
  • Shiro/Stormpath 通过 REST

    我是新来的士郎 我们正在尝试将 Shiro 与 Stormpath 一起使用 我一直在尝试剖析这些例子 以找出我想做的解决方案 但到目前为止我还没有成功 目前 我只是尝试创建 REST 服务来执行我想要的操作 稍后我将绑定一个真正的客户端
  • Shiro 向 DefaultSecurityManager 抱怨“没有 id xxx 的会话”

    我在一个长期运行的应用程序中使用 Apache Shiro 1 2 0 该应用程序从队列中读取消息并采取操作 所采取的操作需要 Shiro 进行身份验证的会话 因此我实现了一个 ActAsAuthenticationToken 和自定义凭据
  • 如何在grails shiro中使用缓存权限

    每次我打电话subject isPermitted 它向数据库发送一条sql 我怎样才能缓存它 有什么例子吗 谢谢 我阅读了 shiro grails 插件的文档 但无法解决它 数据源 hibernate cache use second
  • 定制/扩展Spring对shiro的@Async支持

    我正在使用Spring的 EnableAsync异步执行方法的功能 为了安全起见 我使用 Apache Shiro 在异步执行的代码中 我需要访问附加到触发异步调用的线程的 Shiro 主题 Shiro 支持通过将主题与主题相关联来在不同线

随机推荐

  • 一百零八、Kettle采集Kafka数据到HDFS(踩坑,亲测有效)

    Kafka到HDFS 除了用Kafka API和flume之外 还可以用kettle 最大优点是不用写代码 版本 Kettle版本 8 2 Hadoop版本 3 1 3 前提 详情请看鄙人的一百零一 Kettle8 2 0连接Hive3 1
  • Python实现支持人机对战的五子棋软件(超详细)

    完整工程下载链接 文章目录 利用pygame实现一个支持双人对战以及人机对战的小游戏 最终效果展示 总体框架介绍 具体功能以及算法思想 一 主界面与棋盘设计 二 移位与胜负判定 三 棋型价值设计 四 人机模式和双人模式的设计 五 游戏状态
  • 使用PHPExcel实现Excel文件的导入和导出

    在之前有写过一篇文章讲述了使用 PHP快速生成excel表格文件并下载 这种方式生成Excel文件 生成速度很快 但是有缺点是 1 单纯的生成Excel文件 生成的文件没有样式 单元格属性 填充色 宽度 高度 边框颜色 不能自定义 2 生成
  • java.lang.unsatisfiedlinkerror解决方法

    有时候我们接入第三方sdk的时候 同时导入了一些so库 编译运行后发生会报以下异常 java lang unsatisfiedlinkerror 解决方法 在主工程app的build gradle中加入以下代码 作用是指定so库的位置 an
  • python自动拷贝日志

    usr bin env python import os import time import re import os from time import sleep cmd3 adb pull resources map BaiduMap
  • MacBook配置Chromedriver

    最近换了mbp 之前的项目中包含了Chromedriver 但是我不想设置path了 所以重新配置了下Chromedriver 先看自己浏览器版本 去下载对应版本的Chromedriver ChromeDriver WebDriver fo
  • php怎么接收用户字符,PHP把用户的提交cookie转成字符串

    小编这次带来的是这种cookie类型的获取方式哦 当你想获取cookie字符串时 gt 偷懒 gt 搜索引擎查询好久 gt 没找到 gt 哎 gt 无奈只能自己写啦 gt 原理 用户访问 带cookie gt 获取cookie数组 gt 获
  • 解决flink消费kafka过期数据和目前存量数据的计算(未来的方向)

    背景 目前公司业务需要统计超过7天以上的特征统计 但是kafka只存7天的数据 如果只想通过flink sql去计算30天的用户特征要求当天生效 这是完不成的 但是看到下面的分享 感觉未来的方向有了 一 2021 Apache Flink
  • mysql同时执行多条语句_让MySQL同时执行多条SQL语句的解决办法

    版权声明 本文为博主原创文章 未经博主允许不得转载 最近做一个MySQL方面的东西发现了这个问题 就是在一个Statement中执行一条SQL语句的时候可以正确执行 如果同时执行多条 就会报SQL语法错误 伤透了脑筋 经过网上查找 发现有两
  • 纯电阻电路中的等效变换

    目录 1 电阻的串并联等效 1 串联 2 并联 2 Y形联结和 形联结的等效变换 1 Y gt 2 gt Y 3 实际电源的两种模型及其等效变换 1 实际电压源模型 2 实际电流源模型 3 两种模型间的等效变换 4 受控源的等效 等效的核心
  • 虚拟机安装服务器2008,VMware Workstation 虚拟机安装64位windows 2008 R2 系统

    偶看现在使用的电脑是 惠普 康柏 Elite 8300 MT Mini Tower 操作系统 Windows 7 旗舰版 64位 基本硬件展示 处理器 英特尔 第三代酷睿 i5 3470 3 20GHz 四核 主板 惠普 3397 内存 8
  • Java基础(03)——Java语法结构(顺序与选择结构)

    Java中的语法结构 版权声明 Java中的语法结构 1 顺序结构 2 选择结构 1 简单的if语句 2 if else 语句 3 多分支if语句 4 switch case语句 版权声明 本文原创作者 清风不渡 博客地址 https bl
  • 免费好用的虚拟服务器,六大免费好用的虚拟主机管理系统

    虚拟主机的出现 是适应了现在互联网发展的需要才出现的 现在的市场中 中小型企业占据多数 而中小型企业又不能花费大量资金用来租用服务器建设网站 所以出现了功能完整价格低廉的虚拟主机 虚拟主机是通过专用的软件程序把一台服务器分割成为多个不同的虚
  • nginx文件服务器文件日期,nginx文件目录服务器

    用nginx配置一个文件服务器 并解决中文乱码问题 配置文件 server listen 80 server name downloadapp 3vyd com location add header Access Control Allo
  • 查看Python安装路径几种方法

    查看Python安装路径方法 在使用python的时候 有时候会需要找到python包的安装位置 怎么办 对于Windows平台 打开cmd 使用命令py 0p 其中0是零 显示已安装的 python 版本且带路径的列表 参见下图 其中带星
  • 记录一下项目中遇到的有关websocket延迟的问题

    想想就觉得好笑 事情呢是这个样子的 我们项目采用的事Spring websocket stomp 实现的导检功能的项目 需要很多设备和服务器进行交互 项目在公司和其他环境部署运行都没有任何问题 也就是说从来没遇到过websocket延迟的问
  • Laravel5 (cli)命令行执行脚本及定时任务

    本文转自 http www cnblogs com chunguang p 5660074 html Artisan是Laravel自带的命令行接口名称 它提供了很多有用的命令想要查看所有可用的Artisan命令 可使用list命令查看 1
  • Vi介绍及常用命令

    简要介绍 由加州大学伯克利分校 Bill Joy 研究开发 文本 编辑器有很多 比如图形模式的gedit kwrite OpenOffice 文本模式下的 编辑器有vi vim vi的增强版本 vi和vim是我们在Linux中最常用的 编辑
  • 【C++】queue,stack和priority_queue 三种容器适配器

    什么是适配器 适配器是一种设计模式 设计模式是一套被反复使用的 多数人知晓的 经过分类编目的 代码设计经验的总结 该中模式是将一个类的接口转换成客户希望的另外一个接口 故适配器就是接口转换装置 让我们能通过特定的方法去操作原本自己不能直接操
  • shiro 动态修改资源权限不需要重启项目或者重新登录用户

    用shiro做权限控制的时候 变更用户或者角色的权限后刷新界面不会重新加载权限 需要重启tomcat或者用户重新登录 特别的不人性化 通过下面的方式可以解决这个问题 但仅仅针对于单机 对集群来说就不太清楚 以后有了更好的方法再去使用 菜鸟级