クラス AbstractRememberMeServices

    • メソッドのサマリー

      すべてのメソッド   インスタンスメソッド   抽象メソッド   具象メソッド  
      修飾子と型 メソッド 説明
      voidafterPropertiesSet()
      AuthenticationautoLogin​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Spring Security クッキーを見つけて、それを区切られたトークンの配列にデコードし、processAutoLoginCookie メソッドを介して処理するためにサブクラスに送信するテンプレート実装。
      protected voidcancelCookie​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      永続的なログインを無効にするには、レスポンスに「キャンセルクッキー」(maxAge = 0) を設定します。
      protected AuthenticationcreateSuccessfulAuthentication​(javax.servlet.http.HttpServletRequest request, UserDetails user)
      autoLogin メソッドから返される最終的な Authentication オブジェクトを作成します。
      protected java.lang.String[]decodeCookie​(java.lang.String cookieValue)
      Cookie をデコードし、":" 区切り文字を使用してトークン文字列のセットに分割します。
      protected java.lang.StringencodeCookie​(java.lang.String[] cookieTokens)
      decodeCookie の逆操作。
      protected java.lang.StringextractRememberMeCookie​(javax.servlet.http.HttpServletRequest request)
      Spring Security を見つけて、リクエストに cookie を記憶させ、その値を返します。
      protected AuthenticationDetailsSource<javax.servlet.http.HttpServletRequest,​?>getAuthenticationDetailsSource()
      protected java.lang.StringgetCookieName()
      java.lang.StringgetKey()
      java.lang.StringgetParameter()
      protected intgetTokenValiditySeconds()
      protected UserDetailsServicegetUserDetailsService()
      voidloginFail​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      対話型認証の試行が行われたが、ユーザーによって提供された資格情報が欠落しているか、それ以外の場合は無効であるときに呼び出されます。
      voidloginSuccess​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication successfulAuthentication)
      対話型認証の試行が成功するたびに呼び出されます。
      voidlogout​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication authentication)
      LogoutHandler の実装。
      protected voidonLoginFail​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      protected abstract voidonLoginSuccess​(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication successfulAuthentication)
      Remember-Me ログインがリクエストされたときに loginSuccess から呼び出されます。
      protected abstract UserDetailsprocessAutoLoginCookie​(java.lang.String[] cookieTokens, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      送信された永続ログイン Cookie を処理するために autoLogin から呼び出されます。
      protected booleanrememberMeRequested​(javax.servlet.http.HttpServletRequest request, java.lang.String parameter)
      remember-me ログインがリクエストされているかどうかをカスタマイズできます。
      voidsetAlwaysRemember​(boolean alwaysRemember)
      voidsetAuthenticationDetailsSource​(AuthenticationDetailsSource<javax.servlet.http.HttpServletRequest,​?> authenticationDetailsSource)
      voidsetAuthoritiesMapper​(GrantedAuthoritiesMapper authoritiesMapper)
      protected voidsetCookie​(java.lang.String[] tokens, int maxAge, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      レスポンスに Cookie を設定します。
      voidsetCookieDomain​(java.lang.String cookieDomain)
      voidsetCookieName​(java.lang.String cookieName)
      voidsetMessageSource​(org.springframework.context.MessageSource messageSource)
      voidsetParameter​(java.lang.String parameter)
      ログインリクエスト中に remember-me がリクエストされたかどうかを確認するためにチェックする必要があるパラメーターの名前を設定します。
      voidsetTokenValiditySeconds​(int tokenValiditySeconds)
      voidsetUserDetailsChecker​(UserDetailsChecker userDetailsChecker)
      remember-me cookie を処理してユーザーに自動的にログインするときに、ユーザーのために取得した UserDetails オブジェクトを検証するために使用する戦略を設定します。
      voidsetUseSecureCookie​(boolean useSecureCookie)
      Cookie に安全なフラグを付けるかどうか。
      • クラス java.lang.Object から継承されたメソッド

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • フィールドの詳細

      • SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY

        public static final java.lang.String SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY
        関連事項:
        定数フィールド値
      • logger

        protected final org.apache.commons.logging.Log logger
      • messages

        protected org.springframework.context.support.MessageSourceAccessor messages
    • コンストラクターの詳細

      • AbstractRememberMeServices

        protected AbstractRememberMeServices​(java.lang.String key,
                                             UserDetailsService userDetailsService)
    • メソッドの詳細

      • afterPropertiesSet

        public void afterPropertiesSet()
        次で指定:
        インターフェース org.springframework.beans.factory.InitializingBeanafterPropertiesSet 
      • autoLogin

        public final Authentication autoLogin​(javax.servlet.http.HttpServletRequest request,
                                              javax.servlet.http.HttpServletResponse response)
        Spring Security クッキーを見つけて、それを区切られたトークンの配列にデコードし、processAutoLoginCookie メソッドを介して処理するためにサブクラスに送信するテンプレート実装。

        返されたユーザー名は、ユーザーの UserDetails オブジェクトをロードするために使用され、有効な認証トークンを作成するために使用されます。

        次で指定:
        インターフェース RememberMeServicesautoLogin 
        パラメーター:
        request - 内で remember-me トークンを探す
        response - remember-me トークンを変更、キャンセル、変更するには
        戻り値:
        有効な認証オブジェクト、またはリクエストが認証されない場合は null 
      • extractRememberMeCookie

        protected java.lang.String extractRememberMeCookie​(javax.servlet.http.HttpServletRequest request)
        Spring Security を見つけて、リクエストに cookie を記憶させ、その値を返します。Cookie は名前で検索され、コンテキストパスを Cookie パスと照合することによっても検索されます。
        パラメーター:
        request - 認証される送信されたリクエスト
        戻り値:
        Cookie 値(存在する場合)、それ以外の場合は null。
      • createSuccessfulAuthentication

        protected Authentication createSuccessfulAuthentication​(javax.servlet.http.HttpServletRequest request,
                                                                UserDetails user)
        autoLogin メソッドから返される最終的な Authentication オブジェクトを作成します。

        デフォルトでは、 RememberMeAuthenticationToken インスタンスを作成します。

        パラメーター:
        request - 元のリクエスト。構成された AuthenticationDetailsSource はこれを使用して、返されたオブジェクトの詳細プロパティを構築します。
        user - UserDetailsService からロードされた UserDetails これはプリンシパルとして保存されます。
        戻り値:
        remember-me 認証済みユーザーの Authentication
      • decodeCookie

        protected java.lang.String[] decodeCookie​(java.lang.String cookieValue)
                                           throws InvalidCookieException
        Cookie をデコードし、":" 区切り文字を使用してトークン文字列のセットに分割します。
        パラメーター:
        cookieValue - 送信された Cookie から取得した値
        戻り値:
        トークンの配列。
        例外:
        InvalidCookieException - Cookie が base64 でエンコードされていない場合。
      • encodeCookie

        protected java.lang.String encodeCookie​(java.lang.String[] cookieTokens)
        decodeCookie の逆操作。
        パラメーター:
        cookieTokens - エンコードされるトークン
        戻り値:
        ":" デリミタで連結されたトークンの base64 エンコーディング。
      • loginFail

        public final void loginFail​(javax.servlet.http.HttpServletRequest request,
                                    javax.servlet.http.HttpServletResponse response)
        インターフェースからコピーされた説明: RememberMeServices
        対話型認証の試行が行われたが、ユーザーによって提供された資格情報が欠落しているか、それ以外の場合は無効であるときに呼び出されます。実装では、HttpServletRequest に示されているすべての remember-me トークンを無効にする必要があります。
        次で指定:
        インターフェース RememberMeServicesloginFail 
        パラメーター:
        request - 無効な認証リクエストが含まれていた
        response - remember-me トークンを変更、キャンセル、変更するには
      • onLoginFail

        protected void onLoginFail​(javax.servlet.http.HttpServletRequest request,
                                   javax.servlet.http.HttpServletResponse response)
      • loginSuccess

        public final void loginSuccess​(javax.servlet.http.HttpServletRequest request,
                                       javax.servlet.http.HttpServletResponse response,
                                       Authentication successfulAuthentication)
        対話型認証の試行が成功するたびに呼び出されます。実装では、HttpServletResponse に remember-me トークンを自動的に設定する場合がありますが、これはお勧めできません。代わりに、実装は通常、ブラウザーが HTTP POST パラメーターの存在など、記憶すべき認証の明示的なリクエストを提示したことを示すリクエストパラメーターを探す必要があります。

        受信リクエストを調べ、設定された "remember me" パラメーターが存在するかどうかを確認します。パラメーターが存在する場合、または alwaysRemember が true に設定されている場合、onLoginSucces を呼び出します。

        次で指定:
        インターフェース RememberMeServicesloginSuccess 
        パラメーター:
        request - 有効な認証リクエストを含む
        response - remember-me トークンを変更、キャンセル、変更するには
        successfulAuthentication - 正常に認証されたプリンシパルを表す
      • onLoginSuccess

        protected abstract void onLoginSuccess​(javax.servlet.http.HttpServletRequest request,
                                               javax.servlet.http.HttpServletResponse response,
                                               Authentication successfulAuthentication)
        Remember-Me ログインがリクエストされたときに loginSuccess から呼び出されます。通常、サブクラスによって実装され、Remember-Me Cookie を設定し、実装で必要な場合はその記録を保存します。
      • rememberMeRequested

        protected boolean rememberMeRequested​(javax.servlet.http.HttpServletRequest request,
                                              java.lang.String parameter)
        ログイン情報を記憶するかどうかをカスタマイズできます。デフォルトでは、alwaysRemember が設定されている場合、または構成されたパラメーター名がリクエストに含まれていて、値が "true" に設定されている場合に true を返します。
        パラメーター:
        request - 対話型ログインから送信されたリクエスト。これには、永続的なログインが必要であることを示す追加情報が含まれる場合があります。
        parameter - 設定された remember-me パラメーター名。
        戻り値:
        永続ログインがリクエストされたことを示す情報がリクエストに含まれている場合は true。
      • processAutoLoginCookie

        protected abstract UserDetails processAutoLoginCookie​(java.lang.String[] cookieTokens,
                                                              javax.servlet.http.HttpServletRequest request,
                                                              javax.servlet.http.HttpServletResponse response)
                                                       throws RememberMeAuthenticationException,
                                                              UsernameNotFoundException
        送信された永続的なログインクッキーを処理するために autoLogin から呼び出されます。サブクラスはクッキーを検証し、必要な追加の管理を実行する必要があります。
        パラメーター:
        cookieTokens - デコードおよびトークン化された Cookie 値
        request - リクエスト
        response - 必要に応じて Cookie を変更できるようにするレスポンス。
        戻り値:
        Cookie が正常に検証された場合、対応するユーザーアカウントの UserDetails。
        例外:
        RememberMeAuthenticationException - Cookie が無効であるか、その他の理由でログインが無効である場合。
        UsernameNotFoundException - ログイン Cookie に対応するユーザーアカウントが見つからなかった場合(たとえば、ユーザーがシステムから削除された場合)。
      • cancelCookie

        protected void cancelCookie​(javax.servlet.http.HttpServletRequest request,
                                    javax.servlet.http.HttpServletResponse response)
        永続的なログインを無効にするには、レスポンスに「キャンセルクッキー」(maxAge = 0) を設定します。
      • setCookie

        protected void setCookie​(java.lang.String[] tokens,
                                 int maxAge,
                                 javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response)
        レスポンスに Cookie を設定します。デフォルトでは、接続が安全である場合、安全な Cookie が使用されます。useSecureCookie プロパティを false に設定して、これをオーバーライドできます。true に設定すると、Cookie には常に安全なフラグが付けられます。デフォルトでは、Cookie は HttpOnly としてマークされます。
        パラメーター:
        tokens - Cookie の値を作成するためにエンコードされるトークン。
        maxAge - Cookie.setMaxAge(int) に渡される値
        request - リクエスト
        response - Cookie を追加するレスポンス。
      • logout

        public void logout​(javax.servlet.http.HttpServletRequest request,
                           javax.servlet.http.HttpServletResponse response,
                           Authentication authentication)
        LogoutHandler の実装。デフォルトの動作は cancelCookie() を呼び出すことです。
        次で指定:
        インターフェース LogoutHandlerlogout 
        パラメーター:
        request - HTTP リクエスト
        response - HTTP レスポンス
        authentication - 現在のプリンシパルの詳細
      • setCookieName

        public void setCookieName​(java.lang.String cookieName)
      • setCookieDomain

        public void setCookieDomain​(java.lang.String cookieDomain)
      • getCookieName

        protected java.lang.String getCookieName()
      • setAlwaysRemember

        public void setAlwaysRemember​(boolean alwaysRemember)
      • setParameter

        public void setParameter​(java.lang.String parameter)
        ログインリクエスト中に remember-me がリクエストされたかどうかを確認するためにチェックする必要があるパラメーターの名前を設定します。これは、ログインフォームのチェックボックスに割り当てる名前と同じである必要があります。
        パラメーター:
        parameter - HTTP リクエストパラメーター
      • getParameter

        public java.lang.String getParameter()
      • getKey

        public java.lang.String getKey()
      • setTokenValiditySeconds

        public void setTokenValiditySeconds​(int tokenValiditySeconds)
      • getTokenValiditySeconds

        protected int getTokenValiditySeconds()
      • setUseSecureCookie

        public void setUseSecureCookie​(boolean useSecureCookie)
        Cookie に安全なフラグを付けるかどうか。安全な Cookie は HTTPS 接続経由でのみ送信できるため、インターセプトされる可能性のある HTTP 経由で誤って送信することはできません。

        デフォルトでは、リクエストが安全であれば Cookie は安全です。HTTPS 経由で remember-me のみを使用する場合(推奨)、このプロパティを true に設定する必要があります。

        パラメーター:
        useSecureCookie - 常にユーザーの安全な Cookie を使用するには true に設定し、使用を無効にするには false に設定します。
      • getAuthenticationDetailsSource

        protected AuthenticationDetailsSource<javax.servlet.http.HttpServletRequest,​?> getAuthenticationDetailsSource()
      • setAuthenticationDetailsSource

        public void setAuthenticationDetailsSource​(AuthenticationDetailsSource<javax.servlet.http.HttpServletRequest,​?> authenticationDetailsSource)
      • setUserDetailsChecker

        public void setUserDetailsChecker​(UserDetailsChecker userDetailsChecker)
        remember-me cookie を処理してユーザーに自動的にログインするときに、ユーザーのために取得した UserDetails オブジェクトを検証するために使用する戦略を設定します。
        パラメーター:
        userDetailsChecker - アカウントの認証を許可しない場合(たとえば、アカウントがロックされている場合)に拒否できるようにするために、ユーザーオブジェクトに渡される戦略。デフォルトは AccountStatusUserDetailsChecker インスタンスです。
      • setMessageSource

        public void setMessageSource​(org.springframework.context.MessageSource messageSource)
        次で指定:
        インターフェース org.springframework.context.MessageSourceAwaresetMessageSource 
        導入:
        5.5