Log a warning if custom DefaultCookieSerializer does not have rememberMeRequestAttribute set
Closes gh-2568
This commit is contained in:
@@ -108,9 +108,7 @@ public class SpringHttpSessionConfiguration implements InitializingBean, Applica
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() {
|
||||
CookieSerializer cookieSerializer = (this.cookieSerializer != null) ? this.cookieSerializer
|
||||
: createDefaultCookieSerializer();
|
||||
this.defaultHttpSessionIdResolver.setCookieSerializer(cookieSerializer);
|
||||
this.defaultHttpSessionIdResolver.setCookieSerializer(getCookieSerializer());
|
||||
}
|
||||
|
||||
@Bean
|
||||
@@ -154,6 +152,21 @@ public class SpringHttpSessionConfiguration implements InitializingBean, Applica
|
||||
this.httpSessionListeners = listeners;
|
||||
}
|
||||
|
||||
private CookieSerializer getCookieSerializer() {
|
||||
if (this.cookieSerializer != null) {
|
||||
if (this.cookieSerializer instanceof DefaultCookieSerializer defaultCookieSerializer
|
||||
&& this.usesSpringSessionRememberMeServices
|
||||
&& defaultCookieSerializer.getRememberMeRequestAttribute() == null) {
|
||||
this.logger.warn("Spring Session Remember Me support is enabled "
|
||||
+ "and the DefaultCookieSerializer is provided explicitly. "
|
||||
+ "The DefaultCookieSerializer must be configured with "
|
||||
+ "setRememberMeRequestAttribute(String) in order to support Remember Me.");
|
||||
}
|
||||
return this.cookieSerializer;
|
||||
}
|
||||
return createDefaultCookieSerializer();
|
||||
}
|
||||
|
||||
private CookieSerializer createDefaultCookieSerializer() {
|
||||
DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer();
|
||||
if (this.servletContext != null) {
|
||||
|
||||
@@ -434,4 +434,14 @@ public class DefaultCookieSerializer implements CookieSerializer {
|
||||
return this.cookiePath;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the name of the request attribute that is checked to see if the cookie should
|
||||
* be written with {@link Integer#MAX_VALUE}.
|
||||
* @return the remember me request attribute
|
||||
* @since 3.2
|
||||
*/
|
||||
public String getRememberMeRequestAttribute() {
|
||||
return this.rememberMeRequestAttribute;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user