public abstract class AbstractRememberMeServices extends java.lang.Object implements RememberMeServices, org.springframework.beans.factory.InitializingBean, LogoutHandler
| 修飾子と型 | フィールドと説明 |
|---|---|
static java.lang.String | DEFAULT_PARAMETER |
protected org.apache.commons.logging.Log | logger |
protected org.springframework.context.support.MessageSourceAccessor | messages |
static java.lang.String | SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY |
static int | TWO_WEEKS_S |
| 修飾子 | コンストラクターと説明 |
|---|---|
protected | AbstractRememberMeServices(java.lang.String key, UserDetailsService userDetailsService) |
| 修飾子と型 | メソッドと説明 |
|---|---|
void | afterPropertiesSet() |
Authentication | autoLogin(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)Spring Security クッキーを見つけて、それを区切られたトークンの配列にデコードし、processAutoLoginCookie メソッドを介して処理するためにサブクラスに送信するテンプレート実装。 |
protected void | cancelCookie(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) 永続的なログインを無効にするには、レスポンスに「キャンセルクッキー」(maxAge = 0) を設定します。 |
protected Authentication | createSuccessfulAuthentication(javax.servlet.http.HttpServletRequest request, UserDetails user)autoLogin メソッドから返される最終的な Authentication オブジェクトを作成します。 |
protected java.lang.String[] | decodeCookie(java.lang.String cookieValue)Cookie をデコードし、":" 区切り文字を使用してトークン文字列のセットに分割します。 |
protected java.lang.String | encodeCookie(java.lang.String[] cookieTokens)decodeCookie の逆操作。 |
protected java.lang.String | extractRememberMeCookie(javax.servlet.http.HttpServletRequest request)Spring Security を見つけて、リクエストに cookie を記憶させ、その値を返します。 |
protected AuthenticationDetailsSource<javax.servlet.http.HttpServletRequest,?> | getAuthenticationDetailsSource() |
protected java.lang.String | getCookieName() |
java.lang.String | getKey() |
java.lang.String | getParameter() |
protected int | getTokenValiditySeconds() |
protected UserDetailsService | getUserDetailsService() |
void | loginFail(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) 対話型認証の試行が行われたが、ユーザーによって提供された資格情報が欠落しているか、それ以外の場合は無効であるときに呼び出されます。 |
void | loginSuccess(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication successfulAuthentication) 対話型認証の試行が成功するたびに呼び出されます。 |
void | logout(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication authentication)LogoutHandler の実装。 |
protected void | onLoginFail(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) |
protected abstract void | onLoginSuccess(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication successfulAuthentication)Remember-Me ログインがリクエストされたときに loginSuccess から呼び出されます。 |
protected abstract UserDetails | processAutoLoginCookie(java.lang.String[] cookieTokens, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) 送信された永続ログイン Cookie を処理するために autoLogin から呼び出されます。 |
protected boolean | rememberMeRequested(javax.servlet.http.HttpServletRequest request, java.lang.String parameter)remember-me ログインがリクエストされているかどうかをカスタマイズできます。 |
void | setAlwaysRemember(boolean alwaysRemember) |
void | setAuthenticationDetailsSource(AuthenticationDetailsSource<javax.servlet.http.HttpServletRequest,?> authenticationDetailsSource) |
void | setAuthoritiesMapper(GrantedAuthoritiesMapper authoritiesMapper) |
protected void | setCookie(java.lang.String[] tokens, int maxAge, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) レスポンスに Cookie を設定します。 |
void | setCookieDomain(java.lang.String cookieDomain) |
void | setCookieName(java.lang.String cookieName) |
void | setParameter(java.lang.String parameter) ログインリクエスト中に remember-me がリクエストされたかどうかを確認するためにチェックする必要があるパラメーターの名前を設定します。 |
void | setTokenValiditySeconds(int tokenValiditySeconds) |
void | setUserDetailsChecker(UserDetailsChecker userDetailsChecker)remember-me cookie を処理してユーザーに自動的にログインするときに、ユーザーのために取得した UserDetails オブジェクトを検証するために使用する戦略を設定します。 |
void | setUseSecureCookie(boolean useSecureCookie)Cookie に安全なフラグを付けるかどうか。 |
public static final java.lang.String SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY
public static final java.lang.String DEFAULT_PARAMETER
public static final int TWO_WEEKS_S
protected final org.apache.commons.logging.Log logger
protected final org.springframework.context.support.MessageSourceAccessor messages
protected AbstractRememberMeServices(java.lang.String key,
UserDetailsService userDetailsService)public void afterPropertiesSet()
org.springframework.beans.factory.InitializingBean 内の afterPropertiesSet public final Authentication autoLogin(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
返されたユーザー名は、ユーザーの UserDetails オブジェクトをロードするために使用され、有効な認証トークンを作成するために使用されます。
RememberMeServices 内の autoLogin request - 内で remember-me トークンを探す response - remember-me トークンを変更、キャンセル、変更するには null protected java.lang.String extractRememberMeCookie(javax.servlet.http.HttpServletRequest request)
request - 認証される送信されたリクエスト protected Authentication createSuccessfulAuthentication(javax.servlet.http.HttpServletRequest request, UserDetails user)
デフォルトでは、 RememberMeAuthenticationToken インスタンスを作成します。
request - 元のリクエスト。構成された AuthenticationDetailsSource はこれを使用して、返されたオブジェクトの詳細プロパティを構築します。user - UserDetailsService からロードされた UserDetails これはプリンシパルとして保存されます。protected java.lang.String[] decodeCookie(java.lang.String cookieValue)
throws InvalidCookieExceptioncookieValue - 送信された Cookie から取得した値 InvalidCookieException - Cookie が base64 でエンコードされていない場合。protected java.lang.String encodeCookie(java.lang.String[] cookieTokens)
cookieTokens - エンコードされるトークン public final void loginFail(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)RememberMeServicesHttpServletRequest に示されているすべての remember-me トークンを無効にする必要があります。RememberMeServices 内の loginFail request - 無効な認証リクエストが含まれていた response - remember-me トークンを変更、キャンセル、変更するには protected void onLoginFail(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)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 を呼び出します。
RememberMeServices 内の loginSuccess request - 有効な認証リクエストを含む response - remember-me トークンを変更、キャンセル、変更するには successfulAuthentication - 正常に認証されたプリンシパルを表す protected abstract void onLoginSuccess(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
Authentication successfulAuthentication)protected boolean rememberMeRequested(javax.servlet.http.HttpServletRequest request,
java.lang.String parameter)request - 対話型ログインから送信されたリクエスト。これには、永続的なログインが必要であることを示す追加情報が含まれる場合があります。parameter - 設定された remember-me パラメーター名。protected abstract UserDetails processAutoLoginCookie(java.lang.String[] cookieTokens, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws RememberMeAuthenticationException, UsernameNotFoundException
cookieTokens - デコードおよびトークン化された Cookie 値 request - リクエスト response - 必要に応じて Cookie を変更できるようにするレスポンス。RememberMeAuthenticationException - Cookie が無効であるか、その他の理由でログインが無効である場合。UsernameNotFoundException - ログイン Cookie に対応するユーザーアカウントが見つからなかった場合(たとえば、ユーザーがシステムから削除された場合)。protected void cancelCookie(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)protected void setCookie(java.lang.String[] tokens,
int maxAge,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)useSecureCookie プロパティを false に設定して、これをオーバーライドできます。true に設定すると、Cookie には常に安全なフラグが付けられます。デフォルトでは、Cookie は HttpOnly としてマークされます。tokens - Cookie の値を作成するためにエンコードされるトークン。maxAge - Cookie.setMaxAge(int) に渡される値 request - リクエスト response - Cookie を追加するレスポンス。public void logout(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
Authentication authentication)LogoutHandler の実装。デフォルトの動作は cancelCookie() を呼び出すことです。LogoutHandler 内の logout request - HTTP リクエスト response - HTTP レスポンス authentication - 現在のプリンシパルの詳細 public void setCookieName(java.lang.String cookieName)
public void setCookieDomain(java.lang.String cookieDomain)
protected java.lang.String getCookieName()
public void setAlwaysRemember(boolean alwaysRemember)
public void setParameter(java.lang.String parameter)
parameter - HTTP リクエストパラメーター public java.lang.String getParameter()
protected UserDetailsService getUserDetailsService()
public java.lang.String getKey()
public void setTokenValiditySeconds(int tokenValiditySeconds)
protected int getTokenValiditySeconds()
public void setUseSecureCookie(boolean useSecureCookie)
デフォルトでは、リクエストが安全であれば Cookie は安全です。HTTPS 経由で remember-me のみを使用する場合(推奨)、このプロパティを true に設定する必要があります。
useSecureCookie - 常にユーザーの安全な Cookie を使用するには true に設定し、使用を無効にするには false に設定します。protected AuthenticationDetailsSource<javax.servlet.http.HttpServletRequest,?> getAuthenticationDetailsSource()
public void setAuthenticationDetailsSource(AuthenticationDetailsSource<javax.servlet.http.HttpServletRequest,?> authenticationDetailsSource)
public void setUserDetailsChecker(UserDetailsChecker userDetailsChecker)
UserDetails オブジェクトを検証するために使用する戦略を設定します。userDetailsChecker - アカウントの認証を許可しない場合(たとえば、アカウントがロックされている場合)に拒否できるようにするために、ユーザーオブジェクトに渡される戦略。デフォルトは AccountStatusUserDetailsChecker インスタンスです。public void setAuthoritiesMapper(GrantedAuthoritiesMapper authoritiesMapper)