shiro缓存后更新用户权限实现刷新缓存

本文介绍了一种使用Shiro-Redis整合包实现权限信息缓存的方法,并解决了管理员更新权限后缓存未同步的问题。作者通过手动删除相关缓存Key来确保最新的权限设置能够生效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景

首先我通过shiro-redis整合包实现了shiro的缓存,但是我突然想到了一个问题,如果缓存了AuthorizationInfo(权限信息)的话,如果管理员修改了他的权限,那样在缓存里并不会变,这是一个问题

解决思路

百度了许久我发现大多数用的都是realm中的clearCachedAuthorizationInfo方法,但是这个好像只能刷新操作用户自身的权限,再左思右想之下,决定采用最笨的办法,手写一个刷新缓存的方法

首先我的权限信息是用户 对应多个角色,角色对应多个权限,但是我并没有想着刷新权限,只想着删除权限,反正下次请求时会自动缓存。

这是redis中key的结构
在这里插入图片描述
当管理员给用户分配角色的时候

我先去获得被分配用户的id
然后把这个id的授权信息key给删了就好了
在这里插入图片描述
在这里插入图片描述

当管理员给角色分配权限时

在这里插入图片描述
在这里插入图片描述

测试成功

结果图太多了,就不放上来了,反正就是提供一种思路,如果有更好的实现方式也可以告诉我,谢谢浏览

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

理智点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值