上一篇介绍了使用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
相关文章:
小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?
公司网站制作费用多少,为公司建立一个网站需要哪些费用?
昆明高端网站制作公司,昆明公租房申请网上登录入口?
建站之星代理如何优化在线客服效率?
较简单的网站制作软件有哪些,手机版网页制作用什么软件?
如何快速上传自定义模板至建站之星?
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何通过cPanel快速搭建网站?
网站制作话术技巧,网站推广做的好怎么话术?
如何选择高效便捷的WAP商城建站系统?
如何通过西部建站助手安装IIS服务器?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
定制建站策划方案_专业建站与网站建设方案一站式指南
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
如何在阿里云购买域名并搭建网站?
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
如何在阿里云完成域名注册与建站?
如何高效配置香港服务器实现快速建站?
杭州银行网站设计制作流程,杭州银行怎么开通认证方式?
如何在新浪SAE免费搭建个人博客?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
如何在阿里云ECS服务器部署织梦CMS网站?
如何用狗爹虚拟主机快速搭建网站?
网站制作说明怎么写,简述网页设计的流程并说明原因?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
建站之星云端配置指南:模板选择与SEO优化一键生成
微信小程序 五星评分(包括半颗星评分)实例代码
已有域名和空间如何搭建网站?
JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)
免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?
XML的“混合内容”是什么 怎么用DTD或XSD定义
魔毅自助建站系统:模板定制与SEO优化一键生成指南
Python lxml的etree和ElementTree有什么区别
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
免费网站制作appp,免费制作app哪个平台好?
建站之星如何配置系统实现高效建站?
赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?
建站之星如何一键生成手机站?
建站上传速度慢?如何优化加速网站加载效率?
网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?
非常酷的网站设计制作软件,酷培ai教育官方网站?
广德云建站网站建设方案与建站流程优化指南
制作假网页,招聘网的薪资待遇,会有靠谱的吗?一面试又各种折扣?
微信h5制作网站有哪些,免费微信H5页面制作工具?
巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成
建站之星Pro快速搭建教程:模板选择与功能配置指南
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
*请认真填写需求信息,我们会在24小时内与您取得联系。