博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shiro退出登陆清空缓存实现
阅读量:4703 次
发布时间:2019-06-10

本文共 1432 字,大约阅读时间需要 4 分钟。

  上一篇介绍了使用springmvc集成shiro登陆过程(http://www.cnblogs.com/nosqlcoco/p/5579081.html),通过FormAuthenticationFilter过滤器获取到用户输入的账号密码。

  shiro是一个被广泛使用的安全层框架,通过xml配置方式与spring无缝对接,用户的登陆/退出/权限控制/Cookie等管理系统基础功能交给shiro来管理。

  一般,在JavaWEB管理平台系统时,用户退出系统之前没需要清除用户数据和关闭连接,防止垃圾数据堆积,shiro提供了LogoutFilter过滤器,我们可以继承LogoutFilter,重写preHandle方法,实现清除缓存功能。

  spring-shiro.xml:

/b/login = authc /b/logout = logout /b/** = user

 当调用的路径匹配到/b/logout,会进入到SystemLogoutFilter过滤器,SystemLogoutFilter继承了LogoutFilter,并重写了preHandle方法,在preHandle方法执行需要清空的数据。

@Servicepublic 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过滤器直接使用

转载于:https://www.cnblogs.com/nosqlcoco/p/5587294.html

你可能感兴趣的文章
laravel修改了配置文件不生效,修改了数据库配置文件不生效
查看>>
关于PHP中token的生成的解析
查看>>
微信小程序之自定义底部弹出框动画
查看>>
小程序中父子组件间的通信与事件
查看>>
微信小程序-收货地址左滑删除
查看>>
小程序实现左滑删除效果
查看>>
微信小程序 - 使用npm(第三方包)
查看>>
npm package.json配置整理
查看>>
pecl和pear 的区别和联系
查看>>
(一一三)使用系统自带框架操作SQLite3数据库
查看>>
上传压死下载 & 常见TCP选项
查看>>
linux下nano中复制粘贴剪切的快捷键是什么
查看>>
js instanceof
查看>>
不错的博文地址
查看>>
javascript DOM知识脑图
查看>>
Mongodb 启动关闭脚本并设置开机自动启动Mongodb
查看>>
JVM----垃圾回收算法
查看>>
浅谈<持续集成、持续交付、持续部署>(二)
查看>>
代码性能分析-Dottrace跟踪代码执行时间
查看>>
UITabBarController简单介绍
查看>>