shiro自定义的过滤器onlineSessionFilter,syncOnlineSessionFilter,captchaValidateFilter到applicationFilterChain中。
另外因为过滤器在applicationFilterChain中,后续在登陆的请求中原生的过滤器也会进行过滤,导致又进入了syncOnlineSessionFilter过滤器中,这好像就有点不对了。
因为加了@Bean注解,被spring创建了。
建议去掉注解。
去掉注解后:
shiro自定义的过滤器onlineSessionFilter,syncOnlineSessionFilter,captchaValidateFilter到applicationFilterChain中。
另外因为过滤器在applicationFilterChain中,后续在登陆的请求中原生的过滤器也会进行过滤,导致又进入了syncOnlineSessionFilter过滤器中,这好像就有点不对了。
因为加了@Bean注解,被spring创建了。
建议去掉注解。
去掉注解后:
@y_project 作者你好,加了@Bean注解,因为继承了Filter接口,所以spring会默认将其加载进原生的过滤器中,默认匹配路径/*,因为OnlineSessionFilter、syncOnlineSessionFilter、CaptchaValidateFilter这三个加了Bean注解,所以就出现在下图中的原生的this.orig.filters中,而KickoutSessionFilter没有加Bean注解所有没有出现在下图中this.orig.filters中。
在localhost/login请求先经过shiro配置的三个过滤器(invalidRequest是默认的一个全局过滤器),这三个过滤器之后,就会过this.orig.filters中的过滤器,在this.orig.filters中OnlineSessionFilter、syncOnlineSessionFilter、CaptchaValidateFilter将会进入,这就与我们shiro自定义拦截路径概念有冲突,因为这三个过滤器在原生的过滤器中,对于任何请求都会经过这三个过滤器。
这个配置我们应该是只希望anon,captchaValidate,这两个起作用,其他的不起作用。 所以我的建议是这三个自定义过滤器应该像KickoutSessionFilter一样,去掉@Bean,避免spring将其加载进原始的过滤器中。shiro配置中定义的路径匹配了,相应的过滤器生效,这样才是我们想要的结果。
@vzzi 明白你的意思了,多谢提醒。已修改。
防止匿名访问进行过滤
https://gitee.com/y_project/RuoYi/commit/3f114ccc15885def4615214c204741a45dd0d061
有好的想法你也可以直接PR上来,当一名贡献者。
https://gitee.com/y_project/RuoYi/contributors?ref=master
没觉得有哪里问题。
syncOnlineSessionFilter
有限制访客不同步。
@y_project 作者你好,加了@Bean注解,因为继承了Filter接口,所以spring会默认将其加载进原生的过滤器中,默认匹配路径/*,因为OnlineSessionFilter、syncOnlineSessionFilter、CaptchaValidateFilter这三个加了Bean注解,所以就出现在下图中的原生的this.orig.filters中,而KickoutSessionFilter没有加Bean注解所有没有出现在下图中this.orig.filters中。
在localhost/login请求先经过shiro配置的三个过滤器(invalidRequest是默认的一个全局过滤器),这三个过滤器之后,就会过this.orig.filters中的过滤器,在this.orig.filters中OnlineSessionFilter、syncOnlineSessionFilter、CaptchaValidateFilter将会进入,这就与我们shiro自定义拦截路径概念有冲突,因为这三个过滤器在原生的过滤器中,对于任何请求都会经过这三个过滤器。
这个配置我们应该是只希望anon,captchaValidate,这两个起作用,其他的不起作用。
所以我的建议是这三个自定义过滤器应该像KickoutSessionFilter一样,去掉@Bean,避免spring将其加载进原始的过滤器中。shiro配置中定义的路径匹配了,相应的过滤器生效,这样才是我们想要的结果。
没觉得有哪里问题。syncOnlineSessionFilter
有限制访客不同步。