全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

java shiro实现退出登陆清空缓存

上一篇介绍了使用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小时内与您取得联系。