A と B を Cas に統合した 2 つの webapp があります。webapp A の保護された領域にアクセスしようとすると、フィルターによって cas ログインにリダイレクトされます。ログイン後、webapp A に戻り、すべて正常に動作します。webapp A から webapp B の保護領域に移動すると、cas フィルターが再度ログイン フォームにリダイレクトされます。Tomcat 6.0.37 でもこのアプリを試してみましたが、別のログイン要求なしですべて正常に動作します。
Jboss のログに関して、切り捨てられた TGT が表示されます。casに初めてログインすると、次のように書かれます:
2013 年 11 月 9 日 11:14:40,533 DEBUG [org.jasig.cas.ticket.registry.DefaultTicketRegistry] チケット [TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http://localhost:8000] をレジストリに追加しました。 2013 年 11 月 9 日 11:14:40,533 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] 監査証跡記録 BEGIN ================================================== =========== WHO: [ユーザー名: myuser] 内容: TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http://localhost:8000 アクション: TICKET_GRANTING_TICKET_CREATED アプリケーション: CAS 日時: 2013 年 11 月 9 日 (土) 11:14:40 CET クライアント IP アドレス: 127.0.0.1 サーバー IP アドレス: 127.0.0.1 ================================================== ===========
アプリ A からアプリ B に移動すると、ログは次のようになります。
2013 年 11 月 9 日 11:14:54,339 DEBUG [org.jasig.cas.ticket.registry.DefaultTicketRegistry] チケットを取得しようとしています [TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http] 2013 年 11 月 9 日 11:14:54,340 情報 [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] 監査証跡記録 BEGIN ================================================== =========== WHO: 監査: 不明 何: http://localhost:8000/webappB/desktop.iface アクション: SERVICE_TICKET_NOT_CREATED アプリケーション: CAS 日時: 2013 年 11 月 9 日 (土) 11:14:54 CET クライアント IP アドレス: 127.0.0.1 サーバー IP アドレス: 127.0.0.1 ================================================== ===========
ご覧のとおり、cas は TGT を生成します。
TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http://localhost:8000
取得を試みます:
TGT-1-KYSi1x1t1MlcefajmccwatceNEqMprKj7j5ZpVDJwtJOf5OSgA-http
${host.name} を使用して Bean DefaultUniqueTicketIdGenerator の値プロパティを文字「:」および「/」のない文字列に変更する回避策を見つけました。
cas 構成は多くのアプリケーションで使用され、別の環境にデプロイされているため、変更しません。Jboss の cas が tomcat のように機能しないのはなぜですか? いくつかの構成を見逃していませんか?