public class PersistentTokenBasedRememberMeServices extends AbstractRememberMeServices
RememberMeServices 実装。ユーザー名は Cookie の一部として保存されず、PersistentTokenRepository の実装を介して永続ストアから取得されるという点で、前述のアプローチに若干の変更があります。後者はシリーズ識別子に一意の制約を課す必要があるため、同じ識別子を 2 人の異なるユーザーに割り当てることはできません。パスワードの変更、ユーザーの削除、ユーザーステータスの設定などのユーザー管理は、ユーザーの永続的なトークンのメンテナンスと組み合わせる必要があります。
このクラスはトークンの作成日を使用して、提示された Cookie が設定された tokenValiditySeconds プロパティより古いかどうかを確認し、この場合は認証を拒否しますが、これらのトークンをストレージから削除しないことに注意してください。期限切れのトークンをデータベースから削除するには、適切なバッチプロセスを定期的に実行する必要があります。
| 修飾子と型 | フィールドと説明 |
|---|---|
static int | DEFAULT_SERIES_LENGTH |
static int | DEFAULT_TOKEN_LENGTH |
DEFAULT_PARAMETER, logger, messages, SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY, TWO_WEEKS_S| コンストラクターと説明 |
|---|
PersistentTokenBasedRememberMeServices(java.lang.String key, UserDetailsService userDetailsService, PersistentTokenRepository tokenRepository) |
| 修飾子と型 | メソッドと説明 |
|---|---|
protected java.lang.String | generateSeriesData() |
protected java.lang.String | generateTokenData() |
void | logout(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication authentication)LogoutHandler の実装。 |
protected void | onLoginSuccess(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Authentication successfulAuthentication) 新しいシリーズ番号で新しい永続的ログイントークンを作成し、データを永久トークンリポジトリに保存し、対応する Cookie をレスポンスに追加します。 |
protected UserDetails | processAutoLoginCookie(java.lang.String[] cookieTokens, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) シリーズ ID を使用して、提示された Cookie データをトークンリポジトリで検索します。 |
void | setSeriesLength(int seriesLength) |
void | setTokenLength(int tokenLength) |
void | setTokenValiditySeconds(int tokenValiditySeconds) |
afterPropertiesSet, autoLogin, cancelCookie, createSuccessfulAuthentication, decodeCookie, encodeCookie, extractRememberMeCookie, getAuthenticationDetailsSource, getCookieName, getKey, getParameter, getTokenValiditySeconds, getUserDetailsService, loginFail, loginSuccess, onLoginFail, rememberMeRequested, setAlwaysRemember, setAuthenticationDetailsSource, setAuthoritiesMapper, setCookie, setCookieDomain, setCookieName, setParameter, setUserDetailsChecker, setUseSecureCookiepublic static final int DEFAULT_SERIES_LENGTH
public static final int DEFAULT_TOKEN_LENGTH
public PersistentTokenBasedRememberMeServices(java.lang.String key,
UserDetailsService userDetailsService,
PersistentTokenRepository tokenRepository)protected UserDetails processAutoLoginCookie(java.lang.String[] cookieTokens, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
AbstractRememberMeServices の processAutoLoginCookie cookieTokens - シリーズとトークンの値 request - リクエスト response - 必要に応じて Cookie を変更できるようにするレスポンス。RememberMeAuthenticationException - 送信された Cookie に対応するトークンが保存されていない場合、または永続ストアのトークンの有効期限が切れている場合。InvalidCookieException - Cookie に期待どおりの 2 つのトークンがない場合。CookieTheftException - 提示されたシリーズ値が見つかったが、格納されたトークンが提示されたものと異なる場合。protected void onLoginSuccess(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
Authentication successfulAuthentication)AbstractRememberMeServices の onLoginSuccess public void logout(javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response,
Authentication authentication)AbstractRememberMeServicesLogoutHandler の実装。デフォルトの動作は cancelCookie() を呼び出すことです。LogoutHandler 内の logout AbstractRememberMeServices の logout request - HTTP リクエスト response - HTTP レスポンス authentication - 現在のプリンシパルの詳細 protected java.lang.String generateSeriesData()
protected java.lang.String generateTokenData()
public void setSeriesLength(int seriesLength)
public void setTokenLength(int tokenLength)
public void setTokenValiditySeconds(int tokenValiditySeconds)
AbstractRememberMeServices の setTokenValiditySeconds