Polish HeaderWebSessionIdResolver

Use constant for default header name and make getHeaderName private.

Also switch HeaderWebSessionIdResolverTests to unit tests rather than
testing with DefaultWebSessionManager.

Issue: SPR-15917
This commit is contained in:
Rob Winch
2017-09-05 22:04:14 -05:00
committed by Rossen Stoyanchev
parent dcdb0b416f
commit 167ddc7cfc
2 changed files with 86 additions and 121 deletions

View File

@@ -26,18 +26,23 @@ import org.springframework.web.server.ServerWebExchange;
* Request and response header-based {@link WebSessionIdResolver}.
*
* @author Greg Turnquist
* @author Rob Winch
* @since 5.0
*/
public class HeaderWebSessionIdResolver implements WebSessionIdResolver {
private String headerName = "SESSION";
/**
* The default header name
*/
public static final String DEFAULT_HEADER_NAME = "SESSION";
private String headerName = DEFAULT_HEADER_NAME;
/**
* Set the name of the session header to use for the session id.
* The name is used to extract the session id from the request headers as
* well to set the session id on the response headers.
* <p>By default set to {@literal "SESSION"}.
* <p>By default set to {@code DEFAULT_HEADER_NAME}
* @param headerName the header name
*/
public void setHeaderName(String headerName) {
@@ -45,14 +50,6 @@ public class HeaderWebSessionIdResolver implements WebSessionIdResolver {
this.headerName = headerName;
}
/**
* Return the configured header name.
*/
public String getHeaderName() {
return this.headerName;
}
@Override
public List<String> resolveSessionIds(ServerWebExchange exchange) {
HttpHeaders headers = exchange.getRequest().getHeaders();
@@ -70,4 +67,11 @@ public class HeaderWebSessionIdResolver implements WebSessionIdResolver {
this.setSessionId(exchange, "");
}
/**
* Return the configured header name.
* @return the configured header name
*/
private String getHeaderName() {
return this.headerName;
}
}