java shiro实现退出登陆清空缓存
发布时间 - 2026-01-10 23:10:27 点击率:次上一篇介绍了使用springmvc集成shiro登陆过程,通过FormAuthenticationFilter过滤器获取到用户输入的账号密码。

shiro是一个被广泛使用的安全层框架,通过xml配置方式与spring无缝对接,用户的登陆/退出/权限控制/Cookie等管理系统基础功能交给shiro来管理。
一般,在JavaWEB管理平台系统时,用户退出系统之前没需要清除用户数据和关闭连接,防止垃圾数据堆积,shiro提供了LogoutFilter过滤器,我们可以继承LogoutFilter,重写preHandle方法,实现清除缓存功能。
spring-shiro.xml:
<!-- 安全认证过滤器 -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl" value="/b/login" />
<property name="successUrl" value="/b" />
<property name="filters">
<map>
<!--退出过滤器-->
<entry key="logout" value-ref="systemLogoutFilter" />
</map>
</property>
<property name="filterChainDefinitions">
<value>
/b/login = authc
/b/logout = logout
/b/** = user
</value>
</property>
</bean>
当调用的路径匹配到/b/logout,会进入到SystemLogoutFilter过滤器,SystemLogoutFilter继承了LogoutFilter,并重写了preHandle方法,在preHandle方法执行需要清空的数据。
@Service
public class SystemLogoutFilter extends LogoutFilter {
@Override
protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
//在这里执行退出系统前需要清空的数据
Subject subject = getSubject(request, response);
String redirectUrl = getRedirectUrl(request, response, subject);
try {
subject.logout();
} catch (SessionException ise) {
ise.printStackTrace();
}
issueRedirect(request, response, redirectUrl);
//返回false表示不执行后续的过滤器,直接返回跳转到登录页面
return false;
}
}
注意,需要通过@Service注解,使用spring容器来管理,在spring-shiro.xml中配置shiro过滤器直接使用
<entry key="logout" value-ref="systemLogoutFilter" />
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# shiro
# 清空缓存
# 退出
# 清除缓存
# shiro清除权限缓存
# 如何基于LoadingCache实现Java本地缓存
# Java缓存Map设置过期时间实现解析
# 如何在 Java 中实现一个 redis 缓存服务
# Java中LocalCache本地缓存实现代码
# Java LocalCache 本地缓存的实现实例
# Java本地缓存的实现代码
# Java自定义注解实现Redis自动缓存的方法
# Java实现一个简单的缓存方法
# Java 实现缓存的三种方式及问题汇总
# 清空
# 是一个
# 在这里
# 管理系统
# 我们可以
# 写了
# 重写
# 上一篇
# 管理平台
# 大家多多
# 跳转到
# 安全认证
# 继承了
# 被广泛
# gt
# bean
# id
# lt
# brush
# class
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Win11怎么关闭资讯和兴趣_Windows11任务栏设置隐藏小组件
Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程
Laravel如何处理和验证JSON类型的数据库字段
高防服务器租用指南:配置选择与快速部署攻略
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
PHP 500报错的快速解决方法
最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?
如何快速搭建安全的FTP站点?
java获取注册ip实例
微信小程序 scroll-view组件实现列表页实例代码
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
nodejs redis 发布订阅机制封装实现方法及实例代码
Laravel storage目录权限问题_Laravel文件写入权限设置
html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】
Laravel如何实现数据导出到PDF_Laravel使用snappy生成网页快照PDF【方案】
javascript如何操作浏览器历史记录_怎样实现无刷新导航
如何在宝塔面板中创建新站点?
装修招标网站设计制作流程,装修招标流程?
学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?
Laravel如何集成微信支付SDK_Laravel使用yansongda-pay实现扫码支付【实战】
移动端脚本框架Hammer.js
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
如何自定义建站之星模板颜色并下载新样式?
Claude怎样写约束型提示词_Claude约束提示词写法【教程】
谷歌Google入口永久地址_Google搜索引擎官网首页永久入口
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何在阿里云购买域名并搭建网站?
高防服务器如何保障网站安全无虞?
Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】
Laravel如何实现本地化和多语言支持?(i18n教程)
极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
网站建设整体流程解析,建站其实很容易!
Laravel如何使用模型观察者?(Observer代码示例)
如何快速搭建高效香港服务器网站?
js实现点击每个li节点,都弹出其文本值及修改
Laravel如何实现API版本控制_Laravel版本化API设计方案
开心动漫网站制作软件下载,十分开心动画为何停播?
Laravel如何使用Collections进行数据处理?(实用方法示例)
实现点击下箭头变上箭头来回切换的两种方法【推荐】
Laravel Session怎么存储_Laravel Session驱动配置详解
IOS倒计时设置UIButton标题title的抖动问题
HTML 中动态设置元素 name 属性的正确语法详解
如何用wdcp快速搭建高效网站?
如何挑选优质建站一级代理提升网站排名?
如何快速搭建虚拟主机网站?新手必看指南
详解Huffman编码算法之Java实现
在centOS 7安装mysql 5.7的详细教程
html5如何实现懒加载图片_ intersectionobserver api用法【教程】

