如何防止 JA-SIG CAS spring 安全重定向循环?

Posted

技术标签:

【中文标题】如何防止 JA-SIG CAS spring 安全重定向循环?【英文标题】:How to prevent JA-SIG CAS spring security redirect loop? 【发布时间】:2012-01-11 17:21:13 【问题描述】:

我将 grails 与 spring security 和 JA-SIG CAS spring security 插件一起使用。

我遇到此问题的一种方法是当我登录到 CAS 服务器并重新启动我的应用程序时。

另一种方法是,如果我通过同一个 CAS 服务器登录到另一个应用程序,然后当我访问我的应用程序时,spring 会报告我已注销。如果我尝试访问安全页面,那么登录控制器会将浏览器发送到相同的重定向循环中。

我可以观察到正在重定向回应用程序的 cas 服务器的 get 请求流。

基本上问题是 Spring Security 不知道我已经登录到 CAS 服务器,所以弹回 CAS 服务器,说我已登录并弹回应用程序

我也在使用单点注销。一种解决方法是在应用程序认为有人未登录时强制重新登录,但这并不是一个真正令人满意的解决方案。

【问题讨论】:

【参考方案1】:

基本上问题是 Spring Security 不知道我已经登录到 CAS 服务器,所以弹回 CAS 服务器,说我已登录并弹回应用程序

查看PreAuthentication 文档。你必须实现一个 pre-auth-filter 来让 Spring 知道外部身份验证。

【讨论】:

以上是关于如何防止 JA-SIG CAS spring 安全重定向循环?的主要内容,如果未能解决你的问题,请参考以下文章

CAS服务器认证成功后,如何使Spring安全将用户重定向到原始请求的页面

通过 Spring Security 和 CAS 登录后,如何在非安全 JSP 页面上显示登录用户详细信息?

单点登录之CAS简介

cas服务器搭建

CAS + Spring 安全性

CAS单点登录安装配置手册