インターフェース StatelessTicketCache
- すべての既知の実装クラス:
NullStatelessTicketCache
,SpringCacheBasedTicketCache
サービスチケットまたはプロキシチケットが CAS サーバーに対して検証されると、再度使用することはできません。ほとんどの型の呼び出し元はステートフルであり、特定の HttpSession
に関連付けられています。これにより、肯定的な CAS 検証結果を HttpSession
に保存できます。つまり、CAS サーバーからのチケットの削除は課題ではありません。
リモートプロトコルなどのステートレスな呼び出し元は、HttpSession
を利用できません。ステートレスな呼び出し元が CAS サーバーからかなりのネットワーク距離にある場合、呼び出しごとに新しいサービスチケットまたはプロキシチケットを取得するのはコストがかかります。
ステートレスの呼び出し側でのこの課題を回避するには、ステートレスの呼び出し側が単一のサービスチケットまたはプロキシチケットを取得し、そのたびにこの同じチケットを Spring Security で保護されたアプリケーションに提示することが予想されます。そのような発信者が使用できる HttpSession
がないため、CAS の確認結果はこの場所に保存できません。
StatelessTicketCache
を使用すると、ステートレス呼び出し元に属するサービスチケットとプロキシチケットをキャッシュに配置できます。このメモリ内キャッシュは CasAuthenticationToken
を格納し、HttpSession
と同じ機能を効果的に提供します。チケット識別子はセッション識別子ではなくキーです。
ステートレスな呼び出し元が新しい CAS サービスチケットまたはプロキシチケットを不必要に取得する必要がないように、実装は格納されたエントリに適切なタイムアウトを提供する必要があります。
メソッドのサマリー
修飾子と型メソッド説明getByTicketId
(StringSE serviceTicket) 指定されたチケットに関連付けられたCasAuthenticationToken
を取得します。void
指定されたCasAuthenticationToken
をキャッシュに追加します。void
removeTicketFromCache
(StringSE serviceTicket) 指定されたチケットをキャッシュから削除します。つまり、今後の呼び出しで新しいサービスチケットが必要になります。void
removeTicketFromCache(String)
に従って、指定されたチケットをキャッシュから削除します。
メソッドの詳細
getByTicketId
指定されたチケットに関連付けられたCasAuthenticationToken
を取得します。見つからない場合は、
null
CasAuthenticationToken
を返します。- 戻り値:
- 完全に入力された認証トークン
putTicketInCache
指定されたCasAuthenticationToken
をキャッシュに追加します。CasAuthenticationToken.getCredentials()
メソッドは、サービスチケット番号を取得するために使用されます。- パラメーター:
token
- キャッシュに追加する
removeTicketFromCache
removeTicketFromCache(String)
に従って、指定されたチケットをキャッシュから削除します。実装では、
CasAuthenticationToken.getCredentials()
を使用してチケットを取得し、removeTicketFromCache(String)
メソッドに委譲する必要があります。- パラメーター:
token
- 削除される
removeTicketFromCache
指定されたチケットをキャッシュから削除します。つまり、今後の呼び出しで新しいサービスチケットが必要になります。これは、アプリケーションがステートレスクライアントにセッション終了機能を提供したい場合に備えています。
- パラメーター:
serviceTicket
- 削除される