Add RememberMeConfigurer set domain
Fixes gh-3408
This commit is contained in:
+10
-1
@@ -50,6 +50,7 @@ import org.springframework.util.StringUtils;
|
||||
*
|
||||
* @author Luke Taylor
|
||||
* @author Rob Winch
|
||||
* @author Eddú Meléndez
|
||||
* @since 2.0
|
||||
*/
|
||||
public abstract class AbstractRememberMeServices implements RememberMeServices,
|
||||
@@ -75,6 +76,7 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
|
||||
private AuthenticationDetailsSource<HttpServletRequest, ?> authenticationDetailsSource = new WebAuthenticationDetailsSource();
|
||||
|
||||
private String cookieName = SPRING_SECURITY_REMEMBER_ME_COOKIE_KEY;
|
||||
private String cookieDomain;
|
||||
private String parameter = DEFAULT_PARAMETER;
|
||||
private boolean alwaysRemember;
|
||||
private String key;
|
||||
@@ -385,7 +387,9 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
|
||||
Cookie cookie = new Cookie(cookieName, cookieValue);
|
||||
cookie.setMaxAge(maxAge);
|
||||
cookie.setPath(getCookiePath(request));
|
||||
|
||||
if (cookieDomain != null) {
|
||||
cookie.setDomain(cookieDomain);
|
||||
}
|
||||
if (maxAge < 1) {
|
||||
cookie.setVersion(1);
|
||||
}
|
||||
@@ -430,6 +434,11 @@ public abstract class AbstractRememberMeServices implements RememberMeServices,
|
||||
this.cookieName = cookieName;
|
||||
}
|
||||
|
||||
public void setCookieDomain(String cookieDomain) {
|
||||
Assert.hasLength(cookieDomain, "Cookie domain cannot be empty or null");
|
||||
this.cookieDomain = cookieDomain;
|
||||
}
|
||||
|
||||
protected String getCookieName() {
|
||||
return cookieName;
|
||||
}
|
||||
|
||||
+15
@@ -420,6 +420,21 @@ public class AbstractRememberMeServicesTests {
|
||||
assertThat(cookie.getVersion()).isEqualTo(0);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setCookieDomainValue() {
|
||||
MockRememberMeServices services = new MockRememberMeServices();
|
||||
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||
MockHttpServletResponse response = new MockHttpServletResponse();
|
||||
|
||||
services.setCookieName("mycookiename");
|
||||
services.setCookieDomain("spring.io");
|
||||
services.setCookie(new String[] { "mycookie" }, 1000, request, response);
|
||||
Cookie cookie = response.getCookie("mycookiename");
|
||||
|
||||
assertThat(cookie).isNotNull();
|
||||
assertThat(cookie.getDomain()).isEqualTo("spring.io");
|
||||
}
|
||||
|
||||
private Cookie[] createLoginCookie(String cookieToken) {
|
||||
MockRememberMeServices services = new MockRememberMeServices(uds);
|
||||
Cookie cookie = new Cookie(
|
||||
|
||||
Reference in New Issue
Block a user