2

我正在尝试在基于 spring 的应用程序中实现 CAS。我已经配置了 CAS 并从应用程序连接到 CAS,当我从 jar 运行应用程序时一切正常。但是当我尝试将应用程序构建到 WAR 包 SLO (Single Logout) 时停止工作。当我单击注销时,我会从应用程序和 CAS 中注销,但我仍然在其他应用程序中登录。

环境:

  • WAR 和 CAS 都部署在本地运行的 tomcat 7 上,但按照文档中的建议,我将 localhost 更改为我的计算机名称。
  • 我正在使用 cas-server-webapp-3.5.2.1 和 spring-boot-1.1.8.RELEASE
  • 我禁用了 HTTPS,所以所有通信都在 HTTP 上运行

这是我第一次尝试集成 CAS,所以我有一些疑问:这会是一个问题吗:

2015-04-01 11:21:37,807 WARN [org.jasig.cas.util.HttpClient] - <Error Sending me
ssage to url endpoint [http://mycomputername:8080/App1/j_spring_cas_securi
ty_check].  Error is [Server returned HTTP response code: 403 for URL: http://my
computername:8080/App1/j_spring_cas_security_check]>

此外,当我转到 Tomcat Web 应用程序管理器 (mycomputername:8080/manager) 并且我使第二个应用程序的会话到期时,我已正确注销它,或者我无法再访问它并且我被重定向到登录 CAS。

@edit:弹簧安全:http ://pastebin.com/K0BMVrLN

用于战争部署的 App1 的属性

app.service.security=http://mycomputername:8080/App1/j_spring_cas_security_check
app.service.home=http://mycomputername:8080/App1/
cas.service.login=http://mycomputername:8080/cas/login
cas.service.logout=http://mycomputername:8080/cas/logout
cas.url.prefix=http://mycomputername:8080/cas/
app.admin.userName=admin@cas.com
4

1 回答 1

1

Spring Security使用And注销步骤CAS

  1. 用户请求 /j_spring_security_logout (设置在href注销按钮中),这会将用户从本地应用程序中注销并将用户发送到注销成功 URL。
  2. 注销成功 URL,您应该设置它 /j_spring_cas_security_logout,以便注销所有应用程序。
  3. 然后用户被重定向到 CAS 单点注销 URL ( https://localhost:7443/cas/logout)。
  4. 在 CAS 服务器端,CAS 单次注销 URL 然后向所有 CAS 服务提交单次注销请求。在 CAS 服务端,JASIGSingleSignOutFilter通过使原始会话无效来处理注销请求。
  5. 最后,您的CASTGTJsession(对于 Spring)被销毁并在 app2 中请求任何页面后,您应该重定向到 CAS 登录页面
于 2015-04-16T05:54:30.830 回答