`

springboot shiro iframe中请求Session失效后iframe内跳转到登录页解决方案后续

 
阅读更多

在解决方案一中解决了iframe session超时跳转到登录页问题,但是第二个问题来了,超时登陆后,出现直接跳转到了iframe的内容页,翻看了shiro官方文档,意思是shiro默认记住了超时登录之前的url放到了shiro自己的session内,当重新登录后,会获取session中的url,然后跳转过去,解决每次超时都跳转到首页的问题。

但是咱们的问题是他每次超时跳转都直接跳转到了iframe的内容页 导致左侧菜单没有了,所以咱的思路就是要在他登录后让他跳转到首页,而不跳转到详细页。

根据官方wiki 我发现在shiro的webUtils工具类中有这样一个方法,源码如下:

此方法会获取当前session中的请求并清理掉。

我们可以重写FormAuthenticationFilter的onLoginSuccess方法,我在做验证码登录的时候已经重写filter,所以在此只要借用之前代码重新onLoginSuccess方法即可,代码如下:

我在验证码校验的文章中已说明filter具体配置方式,此处略过。

将session超时时间设置为60秒

启动boot项目

等一分钟,点击菜单,进入登录页登录,登陆成功后直接进入首页了。

分享到:
评论
1 楼 qq_27194467 2018-10-17  
在吗?您这个问题我也遇到过了,但是您给的代码如下,下面是空白的,能否给个信息,感谢哥哥,望回信息。

相关推荐

Global site tag (gtag.js) - Google Analytics