インターフェース UserCache

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

    public interface UserCache
    UserDetails オブジェクトのキャッシュを提供します。

    実装では、キャッシュパラメーター(有効期間など)を設定したり、通常の有効期限が切れる前にエンティティを強制的に削除したりするための適切なメソッドを提供する必要があります。これらは、使用されるキャッシングシステムの型(インメモリ、ディスク、クラスター、ハイブリッドなど)によって異なるため、UserCache インターフェース契約の一部ではありません。

    キャッシュは通常、リモートクライアントや Web サービスなど、サーバー側の状態を維持しないアプリケーションでのみ必要です。次に、認証資格情報が各呼び出しで提示され、検証するためにデータベースまたは他の永続ストレージメカニズムにアクセスするオーバーヘッドが過剰になります。この場合、毎回ロードするのではなく、 UserDetails 情報を格納するようにキャッシュを構成します。

    関連事項:
    AbstractUserDetailsAuthenticationProvider
    • メソッドの詳細

      • getUserFromCache

        UserDetails getUserFromCache​(java.lang.String username)
        キャッシュから UserDetails を取得します。
        パラメーター:
        username - ユーザーをキャッシュに入れるために使用される User.getUsername()
        戻り値:
        ユーザーが見つからなかった場合、またはキャッシュエントリの有効期限が切れている場合は、設定された UserDetails または null 
      • putUserInCache

        void putUserInCache​(UserDetails user)
        UserDetails をキャッシュに配置します。username は、その後 UserDetails を取得するために使用されるキーです。
        パラメーター:
        user - 完全に実装された UserDetails をキャッシュに配置する
      • removeUserFromCache

        void removeUserFromCache​(java.lang.String username)
        指定されたユーザーをキャッシュから削除します。username は、ユーザーを削除するために使用されるキーです。ユーザーが見つからない場合、メソッドは(例外をスローせずに)単に戻る必要があります。

        一部のキャッシュ実装は、キャッシュからのエビクションをサポートしない場合があります。その場合、ドキュメント、例外、ログメッセージのいずれかでユーザーを変更する適切な動作を提供する必要があります。

        パラメーター:
        username - キャッシュから追い出される