1
0
mirror of synced 2026-08-06 02:08:01 +00:00

Add RememberMeConfigurer set domain

Fixes gh-3408
This commit is contained in:
Eddú Meléndez
2016-02-12 01:38:26 -05:00
committed by Rob Winch
parent ce20cfcb98
commit 41c6a797c3
4 changed files with 80 additions and 3 deletions
@@ -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;
}
@@ -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(