我不太清楚Single Log Out如何与CAS服务器4.1配合使用,并希望有一个清晰简单的解释来帮助解决我的客户端应用程序遇到的问题。
目前SSO在我的两个应用程序中运行良好。
用户可以使用ruby-cas客户端登录应用程序A,B和C,A和B是Ruby on Rails应用程序。 C是使用acegi安全性的Java应用程序(Now Spring security)
当用户注销应用程序A时,它们将重定向到CAS服务器注销视图,但仍会登录到应用程序B,C。退出B,C同样如此。
默认情况下是否启用了Cas server 4.1的SLO?
SLO是否需要任何特殊配置才能在CAS服务器上运行?
有没有办法获取和存储cas TGT cookie(cas cookie的值)?
答案 0 :(得分:0)
可能不是理想的解决方案,但它似乎可以完成这项工作。使用 CAS服务器4.1 在spring-configuration中编辑ticketGrantingTicketCookieGenerator.xml文件。 将CAS服务器部署为ROOT应用程序,以避免编辑InitialFlowSetupAction.java类。 出于安全原因,不建议更改带有通配符域的cas票证授予票证的路径。在这个特殊的cas中实现单点注销需要它。 首先在应用程序中创建一个过滤器,以便将cas票证授予cookie值保存到会话中,并在每个请求中检查会话中保存的cookie值是否与请求中的cookie值匹配,如果不是会话无效,则用户将被重定向到CAS登录,否则就像往常一样。
<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
c:casCookieValueManager-ref="cookieValueManager"
p:cookieSecure="true"
p:cookieMaxAge="-1"
p:cookieName="TGC"
p:cookieDomain=".example.org"
p:cookiePath="/"/>