CAS & Spring Security --autoLogin


spring security version: 3.1.0
cas version: 3.1

如果我有 2 个系统 —— A 和 B。他们在春季安全方面取得了成功。 如果我成功登录 A,则我在系统 A 中有身份验证信息。 然后我进入B,我没有身份验证,因为我浏览的页面是公开的。 它不会触发弹簧安全AuthenticationExeception。如果我想在 B 中获取身份验证信息,我必须访问一个安全的链接,然后它将触发 spring security cas 的身份验证过程.
我的问题:
如果我访问公共页面,我是否可以获取我的 cas 身份验证信息。

不可以,虽然你登录了 A 系统,但是你的认证在服务器端不是公开的,只是属于当前 A 系统的用户会话,如果你登录 B 系统,就会生成一个新的 sessionId,而 spring security 在HttpSessionSecurityContextRepository中找不到匹配这样的 jsessionId 的安全上下文,所以会返回 null。

最后,我认为这个问题与CAS没有任何关系。

最新更新