Added debug logging to DefaultWebSessionManager
See gh-24518
This commit is contained in:
parent
a134e92e7f
commit
ae9268004d
|
@ -18,10 +18,13 @@ package org.springframework.web.server.session;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.logging.Log;
|
||||||
|
import org.apache.commons.logging.LogFactory;
|
||||||
import reactor.core.publisher.Flux;
|
import reactor.core.publisher.Flux;
|
||||||
import reactor.core.publisher.Mono;
|
import reactor.core.publisher.Mono;
|
||||||
|
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
|
import org.springframework.web.context.request.async.WebAsyncManager;
|
||||||
import org.springframework.web.server.ServerWebExchange;
|
import org.springframework.web.server.ServerWebExchange;
|
||||||
import org.springframework.web.server.WebSession;
|
import org.springframework.web.server.WebSession;
|
||||||
|
|
||||||
|
@ -36,6 +39,8 @@ import org.springframework.web.server.WebSession;
|
||||||
*/
|
*/
|
||||||
public class DefaultWebSessionManager implements WebSessionManager {
|
public class DefaultWebSessionManager implements WebSessionManager {
|
||||||
|
|
||||||
|
private static final Log logger = LogFactory.getLog(DefaultWebSessionManager.class);
|
||||||
|
|
||||||
private WebSessionIdResolver sessionIdResolver = new CookieWebSessionIdResolver();
|
private WebSessionIdResolver sessionIdResolver = new CookieWebSessionIdResolver();
|
||||||
|
|
||||||
private WebSessionStore sessionStore = new InMemoryWebSessionStore();
|
private WebSessionStore sessionStore = new InMemoryWebSessionStore();
|
||||||
|
@ -79,7 +84,12 @@ public class DefaultWebSessionManager implements WebSessionManager {
|
||||||
@Override
|
@Override
|
||||||
public Mono<WebSession> getSession(ServerWebExchange exchange) {
|
public Mono<WebSession> getSession(ServerWebExchange exchange) {
|
||||||
return Mono.defer(() -> retrieveSession(exchange)
|
return Mono.defer(() -> retrieveSession(exchange)
|
||||||
.switchIfEmpty(this.sessionStore.createWebSession())
|
.switchIfEmpty(Mono.defer(() -> {
|
||||||
|
if (logger.isDebugEnabled()) {
|
||||||
|
logger.debug("Did not find an existing WebSession, creating a new one.");
|
||||||
|
}
|
||||||
|
return this.sessionStore.createWebSession();
|
||||||
|
}))
|
||||||
.doOnNext(session -> exchange.getResponse().beforeCommit(() -> save(exchange, session))));
|
.doOnNext(session -> exchange.getResponse().beforeCommit(() -> save(exchange, session))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -95,6 +105,9 @@ public class DefaultWebSessionManager implements WebSessionManager {
|
||||||
if (!session.isStarted() || session.isExpired()) {
|
if (!session.isStarted() || session.isExpired()) {
|
||||||
if (!ids.isEmpty()) {
|
if (!ids.isEmpty()) {
|
||||||
// Expired on retrieve or while processing request, or invalidated..
|
// Expired on retrieve or while processing request, or invalidated..
|
||||||
|
if (logger.isDebugEnabled()) {
|
||||||
|
logger.debug("Expiring existing sessionIds while saving session.");
|
||||||
|
}
|
||||||
this.sessionIdResolver.expireSession(exchange);
|
this.sessionIdResolver.expireSession(exchange);
|
||||||
}
|
}
|
||||||
return Mono.empty();
|
return Mono.empty();
|
||||||
|
|
Loading…
Reference in New Issue