我正在尝试在基于 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]>
运行 jars 时我得到了相同的消息,并且我正确地从两个应用程序中注销
完整日志: http: //pastebin.com/ShhgeNmN
在应用程序初始化中不带信息登录:http: //pastebin.com/DBW8fm1M
此外,当我转到 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