专栏首页BeJavaGod使用shiro自定义过滤器,拦截ajax请求,可用于动静分离

使用shiro自定义过滤器,拦截ajax请求,可用于动静分离

shiro,不多说了,都知道是权限框架

用过shiro的都知道shiro自己有各种过滤器,只要配置好了就可以自动过滤,自动跳转到对应的页面,比如:认证,授权,退出等,都是通过自身的过滤器,

咱们来看这张图就能大致看到shiro基础过滤器的从属关系

今天我们要说的是session过期,是个最简单的过滤,在普通的MVC后台开发中,只要自己定义一个过滤器,拦截请求,判断session中的登录者是否失效,失效了就自动退出,但是,shiro过滤器基于servlet,当然也是这么做的,但是如今使用ajax的框架很多,比如easyUI,extJS,或者有的公司自己实现全ajax静态分离,遇到这样的情况,shiro拦截到session过期后,是不会页面跳转的,那么这个时候就要重写过滤器了

首先,在spring-shiro.xml中得自定义你的过滤器

然后自定义过滤器需要继承FormAuthenticationFilter.java这个类,并且重写

这个方法,<1>是自己写的判断当前request是否ajax请求,

<2>抛出异常,让前端js接受到response请求认证失败,

<3>是很早以前的写法,只支持ajax load页面形式,但是ajax post类请求是不行的

然后前端catch到这个错误消息

处理一下这个错误就行,这个Error是我自己定义的一个JS类对象,可以看一下十分简单:

好,把session时间微调到10s,失效后进行测试,不论是页面级别请求还是ajax请求,都能够跳转至登录页面,当然了如果你有其他的错误都可以封装到这个类中,并且这个.js可以被任何页面调用。

本文分享自微信公众号 - BeJavaGod(wxleechenxiang),作者:BeJavaGod

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-11-25

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SSI 网页内嵌技术

    一般来说我们开发网页的时候,大多都会以一个大的HTML页面来做,来开发,来发布,来维护。初期可能就1-2人维护,随着业务发展,功能迭代,一个首页会相当复杂,那么...

    风间影月
  • 扩展Shiro自定义标签

    最近在使用shiro做权限,我们采用的是针对资源做限制,而没有采用针对角色的方案,这是比较优的 先列出jsp上的shiro标签 ? 如图,其中有一个shiro...

    风间影月
  • [原创] 权限框架 - shiro 授权demo

    之前说了权限认证,其实也就是登录验证身份 这次来说说shiro的授权 shiro可以针对角色授权,或者访问资源授权 两者都行,但是在如今的复杂系统中,当然使用后...

    风间影月
  • Tomcat集群环境下session共享方案梳理(1)-通过memcached(MSM)方法实现

    对于web应用集群的技术实现而言,最大的难点就是:如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块。要实现这一点...

    洗尽了浮华
  • RocketMQ分析——高并发读写

    生产者发送消息有负载均衡。生产者发送消息时,会自动轮询当前所有可发送的broker,一条消息发送成功,下次换另外一个broker发送,以达到消息平均落到所有的b...

    用户5325874
  • 必读的AI和深度学习博客

    技术的提高是需要日积月累的努力,除了看书看视频外,一个很有效的提高方法当然就是阅读大牛的博客文章了,所谓听君一席话,胜读十年书,虽然读大牛的文章没有这么夸张,但...

    材ccc
  • C# BackgroudWorker

    在很多场合下, 你需要在主(UI)线程中运行一些比较耗时间的任务,比如以下的任务

    跟着阿笨一起玩NET
  • Python入门之装饰器九步学习入门

    第一步:最简单的函数,准备附加额外功能 '''示例1: 最简单的函数,表示调用了两次''' def myfunc(): print("myfunc(...

    Jetpropelledsnake21
  • 如何使用C语言的面向对象

    我们都知道,C++才是面向对象的语言,但是C语言是否能使用面向对象的功能? (1)继承性 1 typedef struct _parent 2 { 3 int ...

    233333
  • 任正非答外媒51问最全版: 美国搞不垮华为,感谢给华为打广告,终端销量每月增长50%

    近期华为创始人任正非频繁接受了外媒的采访,阐明华为的立场以及对美国的态度。3月19日晚间,华为首次公布了任正非接受BBC和CBS两家外媒采访的全文实录。

    用户1272076

扫码关注云+社区

领取腾讯云代金券