я хочу изменить запомни мне параметр запроса, чтобы переопределить параметр по умолчанию '_spring_security_remember_me'
и обычай мой сервис запомнить меня для замены <remember-me />
конфигурации пространства имен.
так что я настраиваю мой сервис запомнить меня:
<bean id="rememberMeServices" class="org.springframework.security.web.authentication.rememberme.TokenBasedRememberMeServices">
<property name="key" value="MY_REMEMBER_ME_KEY" />
<property name="cookieName" value="MY_REMEMBER_ME_COOKIE" />
<property name="parameter" value="remember" />
<property name="tokenValiditySeconds" value="1209600" />
<property name="useSecureCookie" value="true" />
<property name="userDetailsService" ref="userDetailsService" />
<property name="alwaysRemember" value="false" />
</bean>
Конфигурация пространства имен:
<intercept-url pattern="/secure/index" access="ROLE_ADMIN" />
<remember-me services-ref="rememberMeServices"/>
когда я запускаю приложение и авторизируюсь. я обнаружил, что cookie создан, затем закрываю то есть и снова открываю.
введите путь '/ secure / index', tomcat покажет мне доступ запрещен.
но я возвращаюсь к конфигурации по умолчанию Spring Security, все в порядке.
я найду код отладки
RememberMeAuthenticationFilter#doFilter
...
Authentication rememberMeAuth = rememberMeServices.autoLogin(request, response);
...
//autoLogin(request, response) method code.
String rememberMeCookie = extractRememberMeCookie(request);
...
protected String extractRememberMeCookie(HttpServletRequest request) {
Cookie[] cookies = request.getCookies();
if ((cookies == null) || (cookies.length == 0)) {
return null;
}
for (int i = 0; i < cookies.length; i++) {
if (cookieName.equals(cookies[i].getName())) {
return cookies[i].getValue();
}
}
return null;
}
в методе extractRememberMeCookie(request)
, код request.getCookies()
всегда возвращает ноль, когда я использую свой пользовательский сервис запомнить меня, но я возвращаю пространство имен Spring Security по умолчанию <remember-me/>
и делаю то же самое (чистые Cookies - вход в систему - закрытие, т.е. - повторное открытие - путь входа '/ secure / index'), я также нахожу, что cookie создает.
и я отлаживаю код, который я нахожу request.getCookies()
возвращает имя файла cookie 'SPRING_SECURITY_REMEMBER_ME_COOKIE' и аутентификацию успешно.
нужен другой конфиг, чтобы запомнить меня аутентификация?
но я не знаю, кто-нибудь мне поможет.