1

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 のように機能しないのはなぜですか? いくつかの構成を見逃していませんか?

4

1 に答える 1

1

プロパティは通常、host.nameチケットの生成にのみ使用され、実際にホスト名である必要はありません。特にクラスター化されたCAS環境でチケットが一意であることを確認するために使用されます。

host.nameコロンが帰りの旅行で正しく処理されていないように見えるので、あなたのプロトコルとポートコンポーネントを削除してみてください。

https://wiki.jasig.org/display/CASUM/Clustering+CASの CAS マニュアルで使用を確認できます。

于 2013-11-09T19:39:28.763 に答える