为了账号安全,请及时绑定邮箱和手机立即绑定

SpringMVC + Shiro重定向次数过多问题

标签:
Spring

企业级系统,内部服务数较多,单点登录简称(SSO)是系统不断增多必须要面临的一个问题.

SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

今天在弄单点登录,用的是CAS。权限控制使用的是shiro,shiro有个shiro-cas子模块可以与CAS进行集成。

CAS原理

585

image.png

  • CAS服务端:主要用于对CAS客户端进行认证和授权,实现方式为发放和验证ticket来实现。

  • CAS客户端:一般是可以通过支持的协议(例如,CAS,SAML,OAuth)与服务端进行通信的客户端,可以是某些软件包,也可以是具体的应用。在企业系统中一般为一个个的服务。

具体可参考官网

具体错误

说一下今天遇到的具体问题,感觉自己脑袋反应不灵活啊,我用的Spring Boot集成Shiro与CAS,在配置Shiro相关的Bean的时候。
因为要自定义一些过滤器,ShiroFilter中可以设置自己的Filter,当设置自己的Filter的时候,默认的Filter会被覆盖掉。

我自定义的Filter都配置成了Spring的Bean,并且把Shiro的LogoutFilter也配置成了Bean
Spring Boot默认加载所有的Filter Bean并且在请求的时候都会生效,这样就导致每次请求LogoutFilter都会生效,然后每次的登录信息都被清除,清除登录信息之后,其它的认证相关Filter也继续起作用,并且执行登录方法,登录失败重定向到登录页面,登录页面也会调用LogoutFilter,总之就是一直重定向了。

知识点

今天的错误就是对Spring的知识点理解不够透彻导致的,Spring中配置的所有Filter Bean默认都会生效。

最后

一个小问题,把自己的问题记录下来,省的以后别人问自己遇到过什么问题吗?然后自己连个问题都说不出来。

参考

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
1.1万
获赞与收藏
1544

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消