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