インターフェース StatelessTicketCache

すべての既知の実装クラス:
NullStatelessTicketCacheSpringCacheBasedTicketCache

public interface StatelessTicketCache
ステートレス接続の CAS サービスチケットと CAS プロキシチケットをキャッシュします。

サービスチケットまたはプロキシチケットが CAS サーバーに対して検証されると、再度使用することはできません。ほとんどの型の呼び出し元はステートフルであり、特定の HttpSession に関連付けられています。これにより、肯定的な CAS 検証結果を HttpSession に保存できます。つまり、CAS サーバーからのチケットの削除は課題ではありません。

リモートプロトコルなどのステートレスな呼び出し元は、HttpSession を利用できません。ステートレスな呼び出し元が CAS サーバーからかなりのネットワーク距離にある場合、呼び出しごとに新しいサービスチケットまたはプロキシチケットを取得するのはコストがかかります。

ステートレスの呼び出し側でのこの課題を回避するには、ステートレスの呼び出し側が単一のサービスチケットまたはプロキシチケットを取得し、そのたびにこの同じチケットを Spring Security で保護されたアプリケーションに提示することが予想されます。そのような発信者が使用できる HttpSession がないため、CAS の確認結果はこの場所に保存できません。

StatelessTicketCache を使用すると、ステートレス呼び出し元に属するサービスチケットとプロキシチケットをキャッシュに配置できます。このメモリ内キャッシュは CasAuthenticationToken を格納し、HttpSession と同じ機能を効果的に提供します。チケット識別子はセッション識別子ではなくキーです。

ステートレスな呼び出し元が新しい CAS サービスチケットまたはプロキシチケットを不必要に取得する必要がないように、実装は格納されたエントリに適切なタイムアウトを提供する必要があります。

  • メソッドの詳細

    • getByTicketId

      CasAuthenticationToken getByTicketId(StringSE serviceTicket)
      指定されたチケットに関連付けられた CasAuthenticationToken を取得します。

      見つからない場合は、nullCasAuthenticationToken を返します。

      戻り値:
      完全に入力された認証トークン
    • putTicketInCache

      void putTicketInCache(CasAuthenticationToken token)
      指定された CasAuthenticationToken をキャッシュに追加します。

      CasAuthenticationToken.getCredentials() メソッドは、サービスチケット番号を取得するために使用されます。

      パラメーター:
      token - キャッシュに追加する
    • removeTicketFromCache

      void removeTicketFromCache(CasAuthenticationToken token)
      removeTicketFromCache(String) に従って、指定されたチケットをキャッシュから削除します。

      実装では、CasAuthenticationToken.getCredentials() を使用してチケットを取得し、removeTicketFromCache(String) メソッドに委譲する必要があります。

      パラメーター:
      token - 削除される
    • removeTicketFromCache

      void removeTicketFromCache(StringSE serviceTicket)
      指定されたチケットをキャッシュから削除します。つまり、今後の呼び出しで新しいサービスチケットが必要になります。

      これは、アプリケーションがステートレスクライアントにセッション終了機能を提供したい場合に備えています。

      パラメーター:
      serviceTicket - 削除される