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]>
jar を実行しているときに同じメッセージが表示され、両方のアプリケーションから適切にログアウトしています。
完全なログ: http://pastebin.com/ShhgeNmN
アプリケーションの初期化で情報なしでログに記録: http://pastebin.com/DBW8fm1M
また、Tomcat Web Application Manager (mycomputername:8080/manager) にアクセスして 2 番目のアプリケーションのセッションを期限切れにすると、適切にログアウトされます。または、アクセスできなくなり、CAS にログインするようにリダイレクトされます。
@edit: 春のセキュリティ: http://pastebin.com/K0BMVrLN
War Deployment の 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