From e49198d49fa235186f10817dd93bbee53950ddb4 Mon Sep 17 00:00:00 2001 From: Juergen Hoeller Date: Thu, 25 Jan 2018 22:12:29 +0100 Subject: [PATCH] Polishing --- .../server/adapter/AbstractReactiveWebInitializer.java | 1 + .../web/server/handler/DefaultWebFilterChain.java | 1 + .../web/server/session/CookieWebSessionIdResolver.java | 5 +++-- .../web/server/session/DefaultWebSessionManager.java | 10 +++++----- .../web/server/session/HeaderWebSessionIdResolver.java | 5 +++-- .../web/server/session/InMemoryWebSessionStore.java | 7 ++----- .../web/server/session/WebSessionIdResolver.java | 2 +- .../web/server/session/WebSessionManager.java | 1 + .../web/server/session/WebSessionStore.java | 2 ++ 9 files changed, 19 insertions(+), 15 deletions(-) diff --git a/spring-web/src/main/java/org/springframework/web/server/adapter/AbstractReactiveWebInitializer.java b/spring-web/src/main/java/org/springframework/web/server/adapter/AbstractReactiveWebInitializer.java index e9c9726a37..614d0871ca 100644 --- a/spring-web/src/main/java/org/springframework/web/server/adapter/AbstractReactiveWebInitializer.java +++ b/spring-web/src/main/java/org/springframework/web/server/adapter/AbstractReactiveWebInitializer.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.server.adapter; import javax.servlet.ServletContext; diff --git a/spring-web/src/main/java/org/springframework/web/server/handler/DefaultWebFilterChain.java b/spring-web/src/main/java/org/springframework/web/server/handler/DefaultWebFilterChain.java index 7650f28df7..38ce73d802 100644 --- a/spring-web/src/main/java/org/springframework/web/server/handler/DefaultWebFilterChain.java +++ b/spring-web/src/main/java/org/springframework/web/server/handler/DefaultWebFilterChain.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.server.handler; import java.util.Arrays; diff --git a/spring-web/src/main/java/org/springframework/web/server/session/CookieWebSessionIdResolver.java b/spring-web/src/main/java/org/springframework/web/server/session/CookieWebSessionIdResolver.java index cdb719ade8..c880504ae6 100644 --- a/spring-web/src/main/java/org/springframework/web/server/session/CookieWebSessionIdResolver.java +++ b/spring-web/src/main/java/org/springframework/web/server/session/CookieWebSessionIdResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.server.session; import java.time.Duration; @@ -45,7 +46,7 @@ public class CookieWebSessionIdResolver implements WebSessionIdResolver { * @param cookieName the cookie name */ public void setCookieName(String cookieName) { - Assert.hasText(cookieName, "'cookieName' must not be empty."); + Assert.hasText(cookieName, "'cookieName' must not be empty"); this.cookieName = cookieName; } diff --git a/spring-web/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java b/spring-web/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java index f7bb74cdf2..aa0c950634 100644 --- a/spring-web/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java +++ b/spring-web/src/main/java/org/springframework/web/server/session/DefaultWebSessionManager.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.server.session; import java.util.List; @@ -24,7 +25,6 @@ import org.springframework.util.Assert; import org.springframework.web.server.ServerWebExchange; import org.springframework.web.server.WebSession; - /** * Default implementation of {@link WebSessionManager} delegating to a * {@link WebSessionIdResolver} for session id resolution and to a @@ -47,7 +47,7 @@ public class DefaultWebSessionManager implements WebSessionManager { * @param sessionIdResolver the resolver to use */ public void setSessionIdResolver(WebSessionIdResolver sessionIdResolver) { - Assert.notNull(sessionIdResolver, "WebSessionIdResolver is required."); + Assert.notNull(sessionIdResolver, "WebSessionIdResolver is required"); this.sessionIdResolver = sessionIdResolver; } @@ -64,7 +64,7 @@ public class DefaultWebSessionManager implements WebSessionManager { * @param sessionStore the persistence strategy to use */ public void setSessionStore(WebSessionStore sessionStore) { - Assert.notNull(sessionStore, "WebSessionStore is required."); + Assert.notNull(sessionStore, "WebSessionStore is required"); this.sessionStore = sessionStore; } @@ -90,7 +90,6 @@ public class DefaultWebSessionManager implements WebSessionManager { } private Mono save(ServerWebExchange exchange, WebSession session) { - List ids = getSessionIdResolver().resolveSessionIds(exchange); if (!session.isStarted() || session.isExpired()) { @@ -107,4 +106,5 @@ public class DefaultWebSessionManager implements WebSessionManager { return session.save(); } + } diff --git a/spring-web/src/main/java/org/springframework/web/server/session/HeaderWebSessionIdResolver.java b/spring-web/src/main/java/org/springframework/web/server/session/HeaderWebSessionIdResolver.java index 54dafb43ce..a06faa1768 100644 --- a/spring-web/src/main/java/org/springframework/web/server/session/HeaderWebSessionIdResolver.java +++ b/spring-web/src/main/java/org/springframework/web/server/session/HeaderWebSessionIdResolver.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.server.session; import java.util.Collections; @@ -46,7 +47,7 @@ public class HeaderWebSessionIdResolver implements WebSessionIdResolver { * @param headerName the header name */ public void setHeaderName(String headerName) { - Assert.hasText(headerName, "'headerName' must not be empty."); + Assert.hasText(headerName, "'headerName' must not be empty"); this.headerName = headerName; } diff --git a/spring-web/src/main/java/org/springframework/web/server/session/InMemoryWebSessionStore.java b/spring-web/src/main/java/org/springframework/web/server/session/InMemoryWebSessionStore.java index e53f8defda..1ac1e3791c 100644 --- a/spring-web/src/main/java/org/springframework/web/server/session/InMemoryWebSessionStore.java +++ b/spring-web/src/main/java/org/springframework/web/server/session/InMemoryWebSessionStore.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2018 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -89,9 +89,7 @@ public class InMemoryWebSessionStore implements WebSessionStore { @Override public Mono retrieveSession(String id) { - Instant currentTime = Instant.now(this.clock); - if (!this.sessions.isEmpty() && !currentTime.isBefore(this.nextExpirationCheckTime)) { checkExpiredSessions(currentTime); } @@ -159,13 +157,11 @@ public class InMemoryWebSessionStore implements WebSessionStore { private final AtomicReference state = new AtomicReference<>(State.NEW); - public InMemoryWebSession() { this.creationTime = Instant.now(getClock()); this.lastAccessTime = this.creationTime; } - @Override public String getId() { return this.id.get(); @@ -259,6 +255,7 @@ public class InMemoryWebSessionStore implements WebSessionStore { } } + private enum State { NEW, STARTED, EXPIRED } } diff --git a/spring-web/src/main/java/org/springframework/web/server/session/WebSessionIdResolver.java b/spring-web/src/main/java/org/springframework/web/server/session/WebSessionIdResolver.java index c7f1536166..4cc330a2ca 100644 --- a/spring-web/src/main/java/org/springframework/web/server/session/WebSessionIdResolver.java +++ b/spring-web/src/main/java/org/springframework/web/server/session/WebSessionIdResolver.java @@ -13,13 +13,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.server.session; import java.util.List; import org.springframework.web.server.ServerWebExchange; - /** * Contract for session id resolution strategies. Allows for session id * resolution through the request and for sending the session id or expiring diff --git a/spring-web/src/main/java/org/springframework/web/server/session/WebSessionManager.java b/spring-web/src/main/java/org/springframework/web/server/session/WebSessionManager.java index 2286590014..8191adc5ff 100644 --- a/spring-web/src/main/java/org/springframework/web/server/session/WebSessionManager.java +++ b/spring-web/src/main/java/org/springframework/web/server/session/WebSessionManager.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.server.session; import reactor.core.publisher.Mono; diff --git a/spring-web/src/main/java/org/springframework/web/server/session/WebSessionStore.java b/spring-web/src/main/java/org/springframework/web/server/session/WebSessionStore.java index 6de2902834..bd837a0861 100644 --- a/spring-web/src/main/java/org/springframework/web/server/session/WebSessionStore.java +++ b/spring-web/src/main/java/org/springframework/web/server/session/WebSessionStore.java @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.server.session; import reactor.core.publisher.Mono; @@ -61,4 +62,5 @@ public interface WebSessionStore { * @return the session with the updated last access time */ Mono updateLastAccessTime(WebSession webSession); + }