spring me サービスを使用しています。奇妙な動作が見られます。
私が取っている手順:
ユーザー名/パスワードを使用して自分のウェブサイトにログインし、自分を記憶するチェックボックスをオンにします
ブラウザーを閉じて新しいブラウザーを開き、新しいブラウザーを開くよりも。技術的には、自動的にログインする必要があります。これも起こっています。を使用して
PersistentTokenBasedRememberMeServices
います。ここで、ブラウザーを再度閉じて、新しいブラウザーを再度開きます。自分の Web サイトにアクセスしようとすると、次の例外が発生します。
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/Spring-Security] threw exception org.springframework.security.web.authentication.rememberme.CookieTheftException: Invalid remember-me token (Series/token) mismatch. Implies previous cookie theft attack. at org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices.processAutoLoginCookie(PersistentTokenBasedRememberMeServices.java:102) at org.springframework.security.web.authentication.rememberme.AbstractRememberMeServices.autoLogin(AbstractRememberMeServices.java:115) at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:97) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54) at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342) at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
さらにドリルダウンすると、最後の 2 つのリクエストで、remember me トークン
SPRING_SECURITY_REMEMBER_ME_COOKIE
の値がBUpwUUJ3dGpUcVJjaGpiYXJxcmFkdz09OlBBRlZXbDVnYmZZQjM2RmFYVDNVMXc9PQ
しかし、春は(org.springframework.security.web.authentication.rememberme.PersistentTokenBasedRememberMeServices.tokenRepository)をデコードしました
final String presentedSeries = cookieTokens[0];
final String presentedToken = cookieTokens[1];
最初のリクエストでは正しく、2 番目のリクエストでは、presentedToken を別のものとしてデコードし、Cookie 盗難例外が発生しました。
これは正しい動作ですか?どうすれば問題を解決できますか?