Печенье Spring Security «Запомнить меня» недоступно при первом запросе
После запроса на вход в систему я не могу получить файл cookie «Помни меня», но он прекрасно работает при следующем запросе к защищенной странице. Может ли кто-нибудь сказать мне, как я могу получить это прямо сейчас?
Я задаю cookie cookie в запросе на вход в систему, но не могу получить его после того, как Spring перенаправит обратно на исходный (защищенный) URL.
Шаг за шагом:
Браузер переходит на example.com/protectedSpring перенаправляет на страницу формы входаПосле успешного входа в систему SPRING_SECURITY_REMEMBER_ME_COOKIE устанавливается в очень тонкий настраиваемый подкласс org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServicesПохоже, Spring перенаправляет обратно на example.com/protected, без обратной передачи в браузер, и «сервлет» входа и защищенная страница обрабатываются одним потоком в Tomcat 6.Наш подкласс org.springframework.security.web.access.expression.WebSecurityExpressionRoot имеет методы, которые вызываются из метода <intercept-url pattern = "..." access = "method ()" />В нашем методе () request.getCookies () не выдает cookie-файл Запомнить меня при первом запросе, но после всех запросов.Наше приложение имеет некоторые проблемы, потому что отсутствует cookie ...Моя теория до сих пор заключается в том, что я не понимаю SavedRequest должным образом.
Сгущенный конфиг тут:
<http auto-config="false" use-expressions="true" authentication-manager-ref="myAuthenticationManager" path-type="regex">
<form-login authentication-success-handler-ref="myAuthenticationSuccessHandler" login-page="..." login-processing-url="..." authentication-failure-url="..." username-parameter="username" password-parameter="password" />
<custom-filter ref="logoutFilter" position="LOGOUT_FILTER"/>
<expression-handler ref="myWebSecurityExpressionHandler" />
<custom-filter ref="myCustomeFilter1" before="FORM_LOGIN_FILTER"/>
<custom-filter ref="myCustomeFilter2" position="BASIC_AUTH_FILTER"/>
<custom-filter ref="mySecurityClientTokenAuthenticationFilter" after="LOGOUT_FILTER" />
<access-denied-handler ref="myAccessDeniedHandler"/>
<intercept-url pattern="xxx"
access="method()"/>
<intercept-url pattern="yyy"
access="method()"/>
<remember-me services-ref="rememberMeServices" key="my_remember"/>
</http>
Я попытался добавить следующее, с единственным результатом, что пользователь не перенаправляется на исходную страницу.
<http ...
<request-cache ref="nullRequestCache"/>
</http>
<bean:bean id="nullRequestCache" class="org.springframework.security.web.savedrequest.NullRequestCache"/>