From 6f88876a986891bf07bd6787a6230a90f1175394 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Fri, 23 Jun 2023 10:51:17 -0300 Subject: [PATCH 001/579] Prepare for Spring Session 3.2.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 89c88c81d..58443401c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.1.2-SNAPSHOT +version=3.2.0-SNAPSHOT springBootVersion=3.0.7 From 7360723583112b9d3f1fc9b02d45e7509124e65d Mon Sep 17 00:00:00 2001 From: Laurent SCHOELENS Date: Thu, 30 Mar 2023 16:12:19 +0200 Subject: [PATCH 002/579] [GH-2284] fix commitSession() called multiple times in requestDispatcher.include --- .../web/http/SessionRepositoryFilter.java | 14 +++++++--- .../http/SessionRepositoryFilterTests.java | 26 +++++++++++++++++++ 2 files changed, 37 insertions(+), 3 deletions(-) diff --git a/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java b/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java index 46af1c4d0..25d57166a 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java @@ -205,6 +205,8 @@ private final class SessionRepositoryRequestWrapper extends HttpServletRequestWr private boolean requestedSessionInvalidated; + private boolean hasCommitedInInclude; + private SessionRepositoryRequestWrapper(HttpServletRequest request, HttpServletResponse response) { super(request); this.response = response; @@ -338,7 +340,7 @@ public String getRequestedSessionId() { @Override public RequestDispatcher getRequestDispatcher(String path) { RequestDispatcher requestDispatcher = super.getRequestDispatcher(path); - return new SessionCommittingRequestDispatcher(requestDispatcher); + return new SessionCommittingRequestDispatcher(requestDispatcher, this); } private S getRequestedSession() { @@ -397,8 +399,11 @@ private final class SessionCommittingRequestDispatcher implements RequestDispatc private final RequestDispatcher delegate; - SessionCommittingRequestDispatcher(RequestDispatcher delegate) { + private final SessionRepositoryRequestWrapper wrapper; + + SessionCommittingRequestDispatcher(RequestDispatcher delegate, SessionRepositoryRequestWrapper wrapper) { this.delegate = delegate; + this.wrapper = wrapper; } @Override @@ -408,7 +413,10 @@ public void forward(ServletRequest request, ServletResponse response) throws Ser @Override public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException { - SessionRepositoryRequestWrapper.this.commitSession(); + if (!this.wrapper.hasCommitedInInclude) { + SessionRepositoryRequestWrapper.this.commitSession(); + this.wrapper.hasCommitedInInclude = true; + } this.delegate.include(request, response); } diff --git a/spring-session-core/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java b/spring-session-core/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java index 523d8ea1b..7137b1333 100644 --- a/spring-session-core/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java @@ -1320,6 +1320,32 @@ public void doFilter(HttpServletRequest wrappedRequest) { assertThat(bindingListener.getCounter()).isEqualTo(1); } + @Test // gh-2284 + void doFilterIncludeCommitSessionOnce() throws Exception { + MapSession session = this.sessionRepository.createSession(); + this.sessionRepository.save(session); + SessionRepository sessionRepository = spy(this.sessionRepository); + setSessionCookie(session.getId()); + + given(sessionRepository.findById(session.getId())).willReturn(session); + + this.filter = new SessionRepositoryFilter<>(sessionRepository); + + doFilter(new DoInFilter() { + @Override + public void doFilter(HttpServletRequest wrappedRequest, HttpServletResponse wrappedResponse) + throws IOException, ServletException { + String id = wrappedRequest.getSession().getId(); + wrappedRequest.getRequestDispatcher("/").include(wrappedRequest, wrappedResponse); + assertThat(SessionRepositoryFilterTests.this.sessionRepository.findById(id)).isNotNull(); + wrappedRequest.getRequestDispatcher("/").include(wrappedRequest, wrappedResponse); + verify(sessionRepository).findById(session.getId()); + verify(sessionRepository).save(session); + verifyNoMoreInteractions(sessionRepository); + } + }); + } + // --- helper methods private void assertNewSession() { From 2d43c31e67623e8dc48b5ac008d46d18aa190bf9 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Fri, 23 Jun 2023 11:19:03 -0300 Subject: [PATCH 003/579] Polish Contribution Issue gh-2285 --- .../web/http/SessionRepositoryFilter.java | 16 ++++++---------- .../web/http/SessionRepositoryFilterTests.java | 10 +++++----- 2 files changed, 11 insertions(+), 15 deletions(-) diff --git a/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java b/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java index 25d57166a..eaf92eb57 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -30,7 +30,6 @@ import jakarta.servlet.http.HttpServletRequestWrapper; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpSession; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -205,7 +204,7 @@ private final class SessionRepositoryRequestWrapper extends HttpServletRequestWr private boolean requestedSessionInvalidated; - private boolean hasCommitedInInclude; + private boolean hasCommittedInInclude; private SessionRepositoryRequestWrapper(HttpServletRequest request, HttpServletResponse response) { super(request); @@ -340,7 +339,7 @@ public String getRequestedSessionId() { @Override public RequestDispatcher getRequestDispatcher(String path) { RequestDispatcher requestDispatcher = super.getRequestDispatcher(path); - return new SessionCommittingRequestDispatcher(requestDispatcher, this); + return new SessionCommittingRequestDispatcher(requestDispatcher); } private S getRequestedSession() { @@ -399,11 +398,8 @@ private final class SessionCommittingRequestDispatcher implements RequestDispatc private final RequestDispatcher delegate; - private final SessionRepositoryRequestWrapper wrapper; - - SessionCommittingRequestDispatcher(RequestDispatcher delegate, SessionRepositoryRequestWrapper wrapper) { + SessionCommittingRequestDispatcher(RequestDispatcher delegate) { this.delegate = delegate; - this.wrapper = wrapper; } @Override @@ -413,9 +409,9 @@ public void forward(ServletRequest request, ServletResponse response) throws Ser @Override public void include(ServletRequest request, ServletResponse response) throws ServletException, IOException { - if (!this.wrapper.hasCommitedInInclude) { + if (!SessionRepositoryRequestWrapper.this.hasCommittedInInclude) { SessionRepositoryRequestWrapper.this.commitSession(); - this.wrapper.hasCommitedInInclude = true; + SessionRepositoryRequestWrapper.this.hasCommittedInInclude = true; } this.delegate.include(request, response); } diff --git a/spring-session-core/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java b/spring-session-core/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java index 7137b1333..f9de42330 100644 --- a/spring-session-core/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/web/http/SessionRepositoryFilterTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -1326,11 +1326,11 @@ void doFilterIncludeCommitSessionOnce() throws Exception { this.sessionRepository.save(session); SessionRepository sessionRepository = spy(this.sessionRepository); setSessionCookie(session.getId()); - + given(sessionRepository.findById(session.getId())).willReturn(session); this.filter = new SessionRepositoryFilter<>(sessionRepository); - + doFilter(new DoInFilter() { @Override public void doFilter(HttpServletRequest wrappedRequest, HttpServletResponse wrappedResponse) @@ -1339,8 +1339,8 @@ public void doFilter(HttpServletRequest wrappedRequest, HttpServletResponse wrap wrappedRequest.getRequestDispatcher("/").include(wrappedRequest, wrappedResponse); assertThat(SessionRepositoryFilterTests.this.sessionRepository.findById(id)).isNotNull(); wrappedRequest.getRequestDispatcher("/").include(wrappedRequest, wrappedResponse); - verify(sessionRepository).findById(session.getId()); - verify(sessionRepository).save(session); + verify(sessionRepository, times(1)).findById(session.getId()); + verify(sessionRepository, times(1)).save(session); verifyNoMoreInteractions(sessionRepository); } }); From dbd9567e2342624eb1f2ee696e50c926c1e486bc Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Fri, 23 Jun 2023 15:05:54 -0300 Subject: [PATCH 004/579] Fix import formatting Issue gh-2285 --- .../session/web/http/SessionRepositoryFilter.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java b/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java index eaf92eb57..d4a119a53 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/http/SessionRepositoryFilter.java @@ -30,6 +30,7 @@ import jakarta.servlet.http.HttpServletRequestWrapper; import jakarta.servlet.http.HttpServletResponse; import jakarta.servlet.http.HttpSession; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; From d547b33962b906f3963c9a9568dcc1d7d50d8da9 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 7 Mar 2023 17:55:18 -0300 Subject: [PATCH 005/579] Introduce SessionIdGenerationStrategy Closes gh-11 --- .../springframework/session/MapSession.java | 26 +++++++- .../session/MapSessionRepository.java | 17 ++++- .../session/ReactiveMapSessionRepository.java | 16 ++++- .../session/SessionIdGenerationStrategy.java | 32 ++++++++++ .../UuidSessionIdGenerationStrategy.java | 51 +++++++++++++++ .../session/MapSessionTests.java | 49 +++++++++++++++ .../ReactiveMapSessionRepositoryTests.java | 27 ++++++++ .../mongo/MongoIndexedSessionRepository.java | 28 +++++++-- .../session/data/mongo/MongoSession.java | 62 +++++++++++++++++-- .../mongo/ReactiveMongoSessionRepository.java | 28 +++++++-- .../http/MongoHttpSessionConfiguration.java | 10 +++ .../ReactiveMongoWebSessionConfiguration.java | 11 ++++ .../MongoIndexedSessionRepositoryTest.java | 50 +++++++++++++++ .../ReactiveMongoSessionRepositoryTest.java | 40 ++++++++++++ .../MongoHttpSessionConfigurationTest.java | 39 ++++++++++++ ...ctiveMongoWebSessionConfigurationTest.java | 43 +++++++++++++ .../redis/ReactiveRedisSessionRepository.java | 20 +++++- .../redis/RedisIndexedSessionRepository.java | 20 +++++- .../data/redis/RedisSessionRepository.java | 20 +++++- .../http/RedisHttpSessionConfiguration.java | 11 ++++ .../RedisIndexedHttpSessionConfiguration.java | 10 +++ .../server/RedisWebSessionConfiguration.java | 10 +++ .../ReactiveRedisSessionRepositoryTests.java | 40 ++++++++++++ .../RedisIndexedSessionRepositoryTests.java | 40 ++++++++++++ .../redis/RedisSessionRepositoryTests.java | 29 +++++++++ .../RedisHttpsSessionConfigurationTests.java | 44 +++++++++++++ ...sIndexedHttpSessionConfigurationTests.java | 44 +++++++++++++ spring-session-docs/modules/ROOT/nav.adoc | 1 + .../ROOT/pages/configuration/common.adoc | 57 +++++++++++++++++ .../modules/ROOT/pages/whats-new.adoc | 2 + .../HazelcastIndexedSessionRepository.java | 19 +++++- .../HazelcastHttpSessionConfiguration.java | 10 +++ ...azelcastIndexedSessionRepositoryTests.java | 27 ++++++++ ...azelcastHttpSessionConfigurationTests.java | 39 ++++++++++++ .../jdbc/JdbcIndexedSessionRepository.java | 22 ++++++- .../http/JdbcHttpSessionConfiguration.java | 10 +++ .../FixedSessionIdGenerationStrategy.java | 34 ++++++++++ .../JdbcIndexedSessionRepositoryTests.java | 34 ++++++++++ .../JdbcHttpSessionConfigurationTests.java | 32 ++++++++++ 39 files changed, 1074 insertions(+), 30 deletions(-) create mode 100644 spring-session-core/src/main/java/org/springframework/session/SessionIdGenerationStrategy.java create mode 100644 spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerationStrategy.java create mode 100644 spring-session-docs/modules/ROOT/pages/configuration/common.adoc create mode 100644 spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerationStrategy.java diff --git a/spring-session-core/src/main/java/org/springframework/session/MapSession.java b/spring-session-core/src/main/java/org/springframework/session/MapSession.java index bd2413575..1b1d91b10 100644 --- a/spring-session-core/src/main/java/org/springframework/session/MapSession.java +++ b/spring-session-core/src/main/java/org/springframework/session/MapSession.java @@ -74,6 +74,9 @@ public final class MapSession implements Session, Serializable { */ private Duration maxInactiveInterval = DEFAULT_MAX_INACTIVE_INTERVAL; + private transient SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy + .getInstance(); + /** * Creates a new instance with a secure randomly generated identifier. */ @@ -81,6 +84,17 @@ public MapSession() { this(generateId()); } + /** + * Creates a new instance using the specified {@link SessionIdGenerationStrategy} to + * generate the session id. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use. + * @since 3.2 + */ + public MapSession(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this(sessionIdGenerationStrategy.generate()); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + /** * Creates a new instance with the specified id. This is preferred to the default * constructor when the id is known to prevent unnecessary consumption on entropy @@ -141,7 +155,7 @@ public String getOriginalId() { @Override public String changeSessionId() { - String changedId = generateId(); + String changedId = this.sessionIdGenerationStrategy.generate(); setId(changedId); return changedId; } @@ -232,6 +246,16 @@ private static String generateId() { return UUID.randomUUID().toString(); } + /** + * Sets the {@link SessionIdGenerationStrategy} to use when generating a new session + * id. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use. + * @since 3.2 + */ + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + private static final long serialVersionUID = 7160779239673823561L; } diff --git a/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java b/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java index bff80f36a..e78580b28 100644 --- a/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java +++ b/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java @@ -43,6 +43,8 @@ public class MapSessionRepository implements SessionRepository { private final Map sessions; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + /** * Creates a new instance backed by the provided {@link java.util.Map}. This allows * injecting a distributed {@link java.util.Map}. @@ -71,7 +73,9 @@ public void save(MapSession session) { if (!session.getId().equals(session.getOriginalId())) { this.sessions.remove(session.getOriginalId()); } - this.sessions.put(session.getId(), new MapSession(session)); + MapSession saved = new MapSession(session); + saved.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + this.sessions.put(session.getId(), saved); } @Override @@ -84,7 +88,9 @@ public MapSession findById(String id) { deleteById(saved.getId()); return null; } - return new MapSession(saved); + MapSession result = new MapSession(saved); + result.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + return result; } @Override @@ -94,9 +100,14 @@ public void deleteById(String id) { @Override public MapSession createSession() { - MapSession result = new MapSession(); + MapSession result = new MapSession(this.sessionIdGenerationStrategy); result.setMaxInactiveInterval(this.defaultMaxInactiveInterval); return result; } + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java b/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java index 3bd1cb030..bddeca558 100644 --- a/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java +++ b/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java @@ -45,6 +45,8 @@ public class ReactiveMapSessionRepository implements ReactiveSessionRepository sessions; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + /** * Creates a new instance backed by the provided {@link Map}. This allows injecting a * distributed {@link Map}. @@ -84,6 +86,7 @@ public Mono findById(String id) { return Mono.defer(() -> Mono.justOrEmpty(this.sessions.get(id)) .filter((session) -> !session.isExpired()) .map(MapSession::new) + .doOnNext((session) -> session.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy)) .switchIfEmpty(deleteById(id).then(Mono.empty()))); // @formatter:on } @@ -96,10 +99,21 @@ public Mono deleteById(String id) { @Override public Mono createSession() { return Mono.defer(() -> { - MapSession result = new MapSession(); + MapSession result = new MapSession(this.sessionIdGenerationStrategy); result.setMaxInactiveInterval(this.defaultMaxInactiveInterval); return Mono.just(result); }); } + /** + * Sets the {@link SessionIdGenerationStrategy} to use. + * @param sessionIdGenerationStrategy the non-null {@link SessionIdGenerationStrategy} + * to use + * @since 3.2 + */ + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-core/src/main/java/org/springframework/session/SessionIdGenerationStrategy.java b/spring-session-core/src/main/java/org/springframework/session/SessionIdGenerationStrategy.java new file mode 100644 index 000000000..cc20530f6 --- /dev/null +++ b/spring-session-core/src/main/java/org/springframework/session/SessionIdGenerationStrategy.java @@ -0,0 +1,32 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session; + +import org.springframework.lang.NonNull; + +/** + * An interface for specifying a strategy for generating session identifiers. + * + * @author Marcus da Coregio + * @since 3.2 + */ +public interface SessionIdGenerationStrategy { + + @NonNull + String generate(); + +} diff --git a/spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerationStrategy.java b/spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerationStrategy.java new file mode 100644 index 000000000..42316f170 --- /dev/null +++ b/spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerationStrategy.java @@ -0,0 +1,51 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session; + +import java.util.UUID; + +import org.springframework.lang.NonNull; + +/** + * A {@link SessionIdGenerationStrategy} that generates a random UUID to be used as the + * session id. + * + * @author Marcus da Coregio + * @since 3.2 + */ +public final class UuidSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + private static final UuidSessionIdGenerationStrategy INSTANCE = new UuidSessionIdGenerationStrategy(); + + private UuidSessionIdGenerationStrategy() { + } + + @Override + @NonNull + public String generate() { + return UUID.randomUUID().toString(); + } + + /** + * Returns the singleton instance of {@link UuidSessionIdGenerationStrategy}. + * @return the singleton instance of {@link UuidSessionIdGenerationStrategy} + */ + public static UuidSessionIdGenerationStrategy getInstance() { + return INSTANCE; + } + +} diff --git a/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java b/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java index 36221f5e9..09ac62db3 100644 --- a/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java @@ -19,6 +19,7 @@ import java.time.Duration; import java.time.Instant; import java.util.Set; +import java.util.UUID; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -42,6 +43,19 @@ void constructorNullSession() { .withMessage("session cannot be null"); } + @Test + void constructorWhenSessionIdGenerationStrategyThenUsesStrategy() { + MapSession session = new MapSession(new FixedSessionIdGenerationStrategy("my-id")); + assertThat(session.getId()).isEqualTo("my-id"); + } + + @Test + void constructorWhenDefaultThenUuid() { + String id = this.session.getId(); + UUID uuid = UUID.fromString(id); + assertThat(uuid).isNotNull(); + } + @Test void getAttributeWhenNullThenNull() { String result = this.session.getAttribute("attrName"); @@ -143,6 +157,41 @@ void getAttributeNamesAndRemove() { assertThat(this.session.getAttributeNames()).isEmpty(); } + @Test + void changeSessionIdWhenSessionIdStrategyThenUsesStrategy() { + MapSession session = new MapSession(new IncrementalSessionIdGenerationStrategy()); + String idBeforeChange = session.getId(); + String idAfterChange = session.changeSessionId(); + assertThat(idBeforeChange).isEqualTo("1"); + assertThat(idAfterChange).isEqualTo("2"); + } + + static class FixedSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + private final String id; + + FixedSessionIdGenerationStrategy(String id) { + this.id = id; + } + + @Override + public String generate() { + return this.id; + } + + } + + static class IncrementalSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + private int counter = 1; + + @Override + public String generate() { + return String.valueOf(this.counter++); + } + + } + static class CustomSession implements Session { @Override diff --git a/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java b/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java index ee1478f22..9210b1f2a 100644 --- a/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java @@ -152,4 +152,31 @@ void getAttributeNamesAndRemove() { assertThat(session.getAttributeNames()).isEmpty(); } + @Test + void createSessionWhenSessionIdGenerationStrategyThenUses() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + MapSession session = this.repository.createSession().block(); + assertThat(session.getId()).isEqualTo("test"); + assertThat(session.changeSessionId()).isEqualTo("test"); + } + + @Test + void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) + .withMessage("sessionIdGenerationStrategy cannot be null"); + } + + @Test + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + + MapSession session = this.repository.createSession().block(); + this.repository.save(session).block(); + + MapSession savedSession = this.repository.findById("test").block(); + + assertThat(savedSession.getId()).isEqualTo("test"); + assertThat(savedSession.changeSessionId()).isEqualTo("test"); + } + } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java index 3c5f5aff4..18cf41d57 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java @@ -36,6 +36,8 @@ import org.springframework.lang.Nullable; import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.MapSession; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.events.SessionCreatedEvent; import org.springframework.session.events.SessionDeletedEvent; import org.springframework.session.events.SessionExpiredEvent; @@ -81,6 +83,8 @@ public class MongoIndexedSessionRepository private ApplicationEventPublisher eventPublisher; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + public MongoIndexedSessionRepository(MongoOperations mongoOperations) { this.mongoOperations = mongoOperations; } @@ -88,7 +92,7 @@ public MongoIndexedSessionRepository(MongoOperations mongoOperations) { @Override public MongoSession createSession() { - MongoSession session = new MongoSession(); + MongoSession session = new MongoSession(this.sessionIdGenerationStrategy); session.setMaxInactiveInterval(this.defaultMaxInactiveInterval); @@ -116,10 +120,13 @@ public MongoSession findById(String id) { MongoSession session = MongoSessionUtils.convertToSession(this.mongoSessionConverter, sessionWrapper); - if (session != null && session.isExpired()) { - publishEvent(new SessionExpiredEvent(this, session)); - deleteById(id); - return null; + if (session != null) { + if (session.isExpired()) { + publishEvent(new SessionExpiredEvent(this, session)); + deleteById(id); + return null; + } + session.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); } return session; @@ -140,6 +147,7 @@ public Map findByIndexNameAndIndexValue(String indexName, .map((query) -> this.mongoOperations.find(query, Document.class, this.collectionName)) .orElse(Collections.emptyList()).stream() .map((dbSession) -> MongoSessionUtils.convertToSession(this.mongoSessionConverter, dbSession)) + .peek((session) -> session.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy)) .collect(Collectors.toMap(MongoSession::getId, (mapSession) -> mapSession)); } @@ -216,4 +224,14 @@ public void setMongoSessionConverter(final AbstractMongoSessionConverter mongoSe this.mongoSessionConverter = mongoSessionConverter; } + /** + * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * @since 3.2 + */ + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java index 39a47ffc1..b3d8cc919 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java @@ -23,12 +23,14 @@ import java.util.Map; import java.util.Objects; import java.util.Set; -import java.util.UUID; import java.util.stream.Collectors; import org.springframework.lang.Nullable; import org.springframework.session.MapSession; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.util.Assert; /** * Session object providing additional information about the datetime of expiration. @@ -66,12 +68,24 @@ class MongoSession implements Session { private Map attrs = new HashMap<>(); + private transient SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy + .getInstance(); + + /** + * Constructs a new instance using the provided session id. + * @param sessionId the session id to use + * @since 3.2 + */ + MongoSession(String sessionId) { + this(sessionId, MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); + } + MongoSession() { this(MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); } MongoSession(long maxInactiveIntervalInSeconds) { - this(UUID.randomUUID().toString(), maxInactiveIntervalInSeconds); + this(UuidSessionIdGenerationStrategy.getInstance().generate(), maxInactiveIntervalInSeconds); } MongoSession(String id, long maxInactiveIntervalInSeconds) { @@ -82,6 +96,28 @@ class MongoSession implements Session { setLastAccessedTime(Instant.ofEpochMilli(this.createdMillis)); } + /** + * Constructs a new instance using the provided {@link SessionIdGenerationStrategy}. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * @since 3.2 + */ + MongoSession(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this(sessionIdGenerationStrategy.generate(), MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + + /** + * Constructs a new instance using the provided {@link SessionIdGenerationStrategy} + * and max inactive interval. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * @param maxInactiveIntervalInSeconds the max inactive interval in seconds + * @since 3.2 + */ + MongoSession(SessionIdGenerationStrategy sessionIdGenerationStrategy, long maxInactiveIntervalInSeconds) { + this(sessionIdGenerationStrategy.generate(), maxInactiveIntervalInSeconds); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + static String coverDot(String attributeName) { return attributeName.replace('.', DOT_COVER_CHAR); } @@ -93,7 +129,7 @@ static String uncoverDot(String attributeName) { @Override public String changeSessionId() { - String changedId = UUID.randomUUID().toString(); + String changedId = this.sessionIdGenerationStrategy.generate(); this.id = changedId; return changedId; } @@ -141,7 +177,6 @@ public Instant getLastAccessedTime() { @Override public void setLastAccessedTime(Instant lastAccessedTime) { - this.accessedMillis = lastAccessedTime.toEpochMilli(); this.expireAt = Date.from(lastAccessedTime.plus(Duration.ofSeconds(this.intervalSeconds))); } @@ -200,4 +235,23 @@ String getOriginalSessionId() { return this.originalSessionId; } + /** + * Sets the session id. + * @param id the id to set + * @since 3.2 + */ + void setId(String id) { + this.id = id; + } + + /** + * Sets the {@link SessionIdGenerationStrategy} to use. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * @since 3.2 + */ + void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java index 71c06c351..36c6f09e9 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java @@ -22,6 +22,7 @@ import org.apache.commons.logging.LogFactory; import org.bson.Document; import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; import org.springframework.beans.factory.InitializingBean; import org.springframework.context.ApplicationEvent; @@ -34,6 +35,8 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.session.MapSession; import org.springframework.session.ReactiveSessionRepository; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.events.SessionCreatedEvent; import org.springframework.session.events.SessionDeletedEvent; import org.springframework.util.Assert; @@ -76,6 +79,8 @@ public class ReactiveMongoSessionRepository private ApplicationEventPublisher eventPublisher; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + public ReactiveMongoSessionRepository(ReactiveMongoOperations mongoOperations) { this.mongoOperations = mongoOperations; } @@ -93,11 +98,17 @@ public ReactiveMongoSessionRepository(ReactiveMongoOperations mongoOperations) { */ @Override public Mono createSession() { - - return Mono.justOrEmpty(this.defaultMaxInactiveInterval.toSeconds()) // - .map(MongoSession::new) // - .doOnNext((mongoSession) -> publishEvent(new SessionCreatedEvent(this, mongoSession))) // - .switchIfEmpty(Mono.just(new MongoSession())); + // @formatter:off + return Mono.fromSupplier(() -> this.sessionIdGenerationStrategy.generate()) + .map(MongoSession::new) + .doOnNext((mongoSession) -> mongoSession.setMaxInactiveInterval(this.defaultMaxInactiveInterval)) + .doOnNext( + (mongoSession) -> mongoSession.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy)) + .doOnNext((mongoSession) -> publishEvent(new SessionCreatedEvent(this, mongoSession))) + .switchIfEmpty(Mono.just(new MongoSession(this.sessionIdGenerationStrategy))) + .subscribeOn(Schedulers.boundedElastic()) + .publishOn(Schedulers.parallel()); + // @formatter:on } @Override @@ -127,6 +138,8 @@ public Mono findById(String id) { return findSession(id) // .map((document) -> MongoSessionUtils.convertToSession(this.mongoSessionConverter, document)) // .filter((mongoSession) -> !mongoSession.isExpired()) // + .doOnNext( + (mongoSession) -> mongoSession.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy)) .switchIfEmpty(Mono.defer(() -> this.deleteById(id).then(Mono.empty()))); } @@ -216,4 +229,9 @@ public void setBlockingMongoOperations(final MongoOperations blockingMongoOperat this.blockingMongoOperations = blockingMongoOperations; } + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java index 3a920d05a..8ca28358e 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java @@ -36,6 +36,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.MapSession; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; @@ -70,6 +72,8 @@ public class MongoHttpSessionConfiguration implements BeanClassLoaderAware, Embe private IndexResolver indexResolver; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + @Bean public MongoIndexedSessionRepository mongoSessionRepository(MongoOperations mongoOperations) { @@ -98,6 +102,7 @@ public MongoIndexedSessionRepository mongoSessionRepository(MongoOperations mong if (StringUtils.hasText(this.collectionName)) { repository.setCollectionName(this.collectionName); } + repository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(repository)); @@ -160,4 +165,9 @@ public void setIndexResolver(IndexResolver indexResolver) { this.indexResolver = indexResolver; } + @Autowired(required = false) + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfiguration.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfiguration.java index 197d599a8..88f806f3d 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfiguration.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfiguration.java @@ -37,6 +37,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.MapSession; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.server.SpringWebSessionConfiguration; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; @@ -74,6 +76,8 @@ public class ReactiveMongoWebSessionConfiguration private IndexResolver indexResolver; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + @Bean public ReactiveMongoSessionRepository reactiveMongoSessionRepository(ReactiveMongoOperations operations) { @@ -112,6 +116,8 @@ public ReactiveMongoSessionRepository reactiveMongoSessionRepository(ReactiveMon this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(repository)); + repository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + return repository; } @@ -180,4 +186,9 @@ public void setIndexResolver(IndexResolver indexResolver) { this.indexResolver = indexResolver; } + @Autowired(required = false) + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java index c33ce79d9..90c0986bb 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java @@ -34,8 +34,10 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.MapSession; +import org.springframework.session.SessionIdGenerationStrategy; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.ArgumentMatchers.eq; @@ -209,4 +211,52 @@ void shouldReturnEmptyMapForNotSupportedIndex() { assertThat(sessionsMap).isEmpty(); } + @Test + void createSessionWhenSessionIdGenerationStrategyThenUses() { + this.repository.setSessionIdGenerationStrategy(new FixedSessionIdGenerationStrategy("123")); + MongoSession session = this.repository.createSession(); + assertThat(session.getId()).isEqualTo("123"); + assertThat(session.changeSessionId()).isEqualTo("123"); + } + + @Test + void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)); + } + + @Test + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + this.repository.setSessionIdGenerationStrategy(new FixedSessionIdGenerationStrategy("456")); + + Document sessionDocument = new Document(); + + given(this.mongoOperations.findById("123", Document.class, + MongoIndexedSessionRepository.DEFAULT_COLLECTION_NAME)).willReturn(sessionDocument); + + MongoSession session = new MongoSession("123"); + + given(this.converter.convert(sessionDocument, TypeDescriptor.valueOf(Document.class), + TypeDescriptor.valueOf(MongoSession.class))).willReturn(session); + + MongoSession retrievedSession = this.repository.findById("123"); + assertThat(retrievedSession.getId()).isEqualTo("123"); + String newSessionId = retrievedSession.changeSessionId(); + assertThat(newSessionId).isEqualTo("456"); + } + + static class FixedSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + private final String id; + + FixedSessionIdGenerationStrategy(String id) { + this.id = id; + } + + @Override + public String generate() { + return this.id; + } + + } + } diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java index ed6966a79..afeffc055 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java @@ -40,6 +40,7 @@ import org.springframework.session.events.SessionDeletedEvent; import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; import static org.mockito.BDDMockito.any; import static org.mockito.BDDMockito.eq; import static org.mockito.BDDMockito.given; @@ -210,4 +211,43 @@ void shouldInvokeMethodToCreateIndexesImperatively() { verify(this.converter, times(1)).ensureIndexes(indexOperations); } + @Test + void createSessionWhenSessionIdGenerationStrategyThenUses() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + + this.repository.createSession().as(StepVerifier::create).assertNext((mongoSession) -> { + assertThat(mongoSession.getId()).isEqualTo("test"); + assertThat(mongoSession.changeSessionId()).isEqualTo("test"); + }).verifyComplete(); + } + + @Test + void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) + .withMessage("sessionIdGenerationStrategy cannot be null"); + } + + @Test + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + + String sessionId = UUID.randomUUID().toString(); + Document sessionDocument = new Document(); + + given(this.mongoOperations.findById(sessionId, Document.class, + ReactiveMongoSessionRepository.DEFAULT_COLLECTION_NAME)).willReturn(Mono.just(sessionDocument)); + + MongoSession session = new MongoSession(sessionId); + + given(this.converter.convert(sessionDocument, TypeDescriptor.valueOf(Document.class), + TypeDescriptor.valueOf(MongoSession.class))).willReturn(session); + + this.repository.findById(sessionId).as(StepVerifier::create).assertNext((mongoSession) -> { + String oldId = mongoSession.getId(); + String newId = mongoSession.changeSessionId(); + assertThat(oldId).isEqualTo(sessionId); + assertThat(newId).isEqualTo("test"); + }).verifyComplete(); + } + } diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java index 6612628da..238a335b2 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java @@ -34,6 +34,8 @@ import org.springframework.mock.env.MockEnvironment; import org.springframework.session.IndexResolver; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; import org.springframework.session.data.mongo.JacksonMongoSessionConverter; @@ -200,6 +202,22 @@ void importConfigAndCustomize() { assertThat(sessionRepository).extracting("defaultMaxInactiveInterval").isEqualTo(Duration.ZERO); } + @Test + void registerWhenSessionIdGenerationStrategyBeanThenUses() { + registerAndRefresh(SessionIdGenerationStrategyConfiguration.class); + MongoIndexedSessionRepository sessionRepository = this.context.getBean(MongoIndexedSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(TestSessionIdGenerationStrategy.class); + } + + @Test + void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + registerAndRefresh(DefaultConfiguration.class); + MongoIndexedSessionRepository sessionRepository = this.context.getBean(MongoIndexedSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(UuidSessionIdGenerationStrategy.class); + } + private void registerAndRefresh(Class... annotatedClasses) { this.context.register(annotatedClasses); @@ -350,4 +368,25 @@ SessionRepositoryCustomizer sessionRepositoryCust } + @Configuration(proxyBeanMethods = false) + @EnableMongoHttpSession + @Import(MongoConfiguration.class) + static class SessionIdGenerationStrategyConfiguration { + + @Bean + SessionIdGenerationStrategy sessionIdGenerationStrategy() { + return new TestSessionIdGenerationStrategy(); + } + + } + + static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + @Override + public String generate() { + return "test"; + } + + } + } diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java index 46f2029d5..6b8f34cbc 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java @@ -35,6 +35,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.ReactiveSessionRepository; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.server.EnableSpringWebSession; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; @@ -222,6 +224,28 @@ void importConfigAndCustomize() { assertThat(sessionRepository).extracting("defaultMaxInactiveInterval").isEqualTo(Duration.ZERO); } + @Test + void registerWhenSessionIdGenerationStrategyBeanThenUses() { + registerAndRefresh(GoodConfig.class, SessionIdGenerationStrategyConfiguration.class); + ReactiveMongoSessionRepository sessionRepository = this.context.getBean(ReactiveMongoSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(TestSessionIdGenerationStrategy.class); + } + + @Test + void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + registerAndRefresh(GoodConfig.class); + ReactiveMongoSessionRepository sessionRepository = this.context.getBean(ReactiveMongoSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(UuidSessionIdGenerationStrategy.class); + } + + private void registerAndRefresh(Class... annotatedClasses) { + this.context = new AnnotationConfigApplicationContext(); + this.context.register(annotatedClasses); + this.context.refresh(); + } + /** * Reflectively extract the {@link AbstractMongoSessionConverter} from the * {@link ReactiveMongoSessionRepository}. This is to avoid expanding the surface area @@ -411,4 +435,23 @@ ReactiveSessionRepositoryCustomizer sessionRepos } + @Configuration(proxyBeanMethods = false) + static class SessionIdGenerationStrategyConfiguration { + + @Bean + SessionIdGenerationStrategy sessionIdGenerationStrategy() { + return new TestSessionIdGenerationStrategy(); + } + + } + + static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + @Override + public String generate() { + return "test"; + } + + } + } diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java index df749a8cf..fbc568f9e 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java @@ -31,6 +31,8 @@ import org.springframework.session.ReactiveSessionRepository; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -61,6 +63,8 @@ public class ReactiveRedisSessionRepository private SaveMode saveMode = SaveMode.ON_SET_ATTRIBUTE; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + /** * Create a new {@link ReactiveRedisSessionRepository} instance. * @param sessionRedisOperations the {@link ReactiveRedisOperations} to use for @@ -120,7 +124,7 @@ public ReactiveRedisOperations getSessionRedisOperations() { @Override public Mono createSession() { return Mono.defer(() -> { - MapSession cached = new MapSession(); + MapSession cached = new MapSession(this.sessionIdGenerationStrategy); cached.setMaxInactiveInterval(this.defaultMaxInactiveInterval); RedisSession session = new RedisSession(cached, true); return Mono.just(session); @@ -167,6 +171,16 @@ private String getSessionKey(String sessionId) { return this.namespace + "sessions:" + sessionId; } + /** + * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * @since 3.2 + */ + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + /** * A custom implementation of {@link Session} that uses a {@link MapSession} as the * basis for its mapping. It keeps track of any attributes that have changed. When @@ -206,7 +220,9 @@ public String getId() { @Override public String changeSessionId() { - return this.cached.changeSessionId(); + String newSessionId = ReactiveRedisSessionRepository.this.sessionIdGenerationStrategy.generate(); + this.cached.setId(newSessionId); + return newSessionId; } @Override diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java index 48ef4f919..b0275757f 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java @@ -52,6 +52,8 @@ import org.springframework.session.PrincipalNameIndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.events.SessionCreatedEvent; import org.springframework.session.events.SessionDeletedEvent; import org.springframework.session.events.SessionDestroyedEvent; @@ -322,6 +324,8 @@ public class RedisIndexedSessionRepository private ThreadPoolTaskScheduler taskScheduler; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + /** * Creates a new instance. For an example, refer to the class level javadoc. * @param sessionRedisOperations the {@link RedisOperations} to use for managing the @@ -547,7 +551,7 @@ public void deleteById(String sessionId) { @Override public RedisSession createSession() { - MapSession cached = new MapSession(); + MapSession cached = new MapSession(this.sessionIdGenerationStrategy); cached.setMaxInactiveInterval(this.defaultMaxInactiveInterval); RedisSession session = new RedisSession(cached, true); session.flushImmediateIfNecessary(); @@ -716,6 +720,16 @@ static String getSessionAttrNameKey(String attributeName) { return RedisSessionMapper.ATTRIBUTE_PREFIX + attributeName; } + /** + * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * @since 3.2 + */ + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + /** * A custom implementation of {@link Session} that uses a {@link MapSession} as the * basis for its mapping. It keeps track of any attributes that have changed. When @@ -780,7 +794,9 @@ public String getId() { @Override public String changeSessionId() { - return this.cached.changeSessionId(); + String newSessionId = RedisIndexedSessionRepository.this.sessionIdGenerationStrategy.generate(); + this.cached.setId(newSessionId); + return newSessionId; } @Override diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java index d2408a701..0320e5e2b 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java @@ -27,7 +27,9 @@ import org.springframework.session.MapSession; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; import org.springframework.session.SessionRepository; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.util.Assert; /** @@ -56,6 +58,8 @@ public class RedisSessionRepository implements SessionRepository sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -87,4 +93,9 @@ public void setImportMetadata(AnnotationMetadata importMetadata) { setSaveMode(attributes.getEnum("saveMode")); } + @Autowired(required = false) + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java index c6c4243d5..1873a17c9 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java @@ -44,6 +44,8 @@ import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.session.IndexResolver; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.data.redis.RedisIndexedSessionRepository; import org.springframework.session.data.redis.config.ConfigureNotifyKeyspaceEventsAction; import org.springframework.session.data.redis.config.ConfigureRedisAction; @@ -80,6 +82,8 @@ public class RedisIndexedHttpSessionConfiguration private StringValueResolver embeddedValueResolver; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + @Bean @Override public RedisIndexedSessionRepository sessionRepository() { @@ -101,6 +105,7 @@ public RedisIndexedSessionRepository sessionRepository() { sessionRepository.setCleanupCron(this.cleanupCron); int database = resolveDatabase(); sessionRepository.setDatabase(database); + sessionRepository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); getSessionRepositoryCustomizers() .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -204,6 +209,11 @@ && getRedisConnectionFactory() instanceof JedisConnectionFactory) { return RedisIndexedSessionRepository.DEFAULT_DATABASE; } + @Autowired(required = false) + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + /** * Ensures that Redis is configured to send keyspace notifications. This is important * to ensure that expiration and deletion of sessions trigger SessionDestroyedEvents. diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfiguration.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfiguration.java index d7f140f79..5bbb89655 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfiguration.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfiguration.java @@ -39,6 +39,8 @@ import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.session.MapSession; import org.springframework.session.SaveMode; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.server.SpringWebSessionConfiguration; import org.springframework.session.data.redis.ReactiveRedisSessionRepository; @@ -77,6 +79,8 @@ public class RedisWebSessionConfiguration implements BeanClassLoaderAware, Embed private StringValueResolver embeddedValueResolver; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + @Bean public ReactiveRedisSessionRepository sessionRepository() { ReactiveRedisTemplate reactiveRedisTemplate = createReactiveRedisTemplate(); @@ -86,6 +90,7 @@ public ReactiveRedisSessionRepository sessionRepository() { sessionRepository.setRedisKeyNamespace(this.redisNamespace); } sessionRepository.setSaveMode(this.saveMode); + sessionRepository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -168,4 +173,9 @@ private ReactiveRedisTemplate createReactiveRedisTemplate() { return new ReactiveRedisTemplate<>(this.redisConnectionFactory, serializationContext); } + @Autowired(required = false) + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java index a85b9d367..c46f7752a 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java @@ -438,6 +438,46 @@ void saveWithSaveModeAlways() { verifyNoMoreInteractions(this.hashOperations); } + @Test + void createSessionWhenSessionIdGenerationStrategyThenUses() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + + this.repository.createSession().as(StepVerifier::create).assertNext((redisSession) -> { + assertThat(redisSession.getId()).isEqualTo("test"); + assertThat(redisSession.changeSessionId()).isEqualTo("test"); + }).verifyComplete(); + } + + @Test + void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) + .withMessage("sessionIdGenerationStrategy cannot be null"); + } + + @Test + @SuppressWarnings("unchecked") + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + this.repository.setSessionIdGenerationStrategy(() -> "changed-session-id"); + given(this.redisOperations.opsForHash()).willReturn(this.hashOperations); + String attribute1 = "attribute1"; + String attribute2 = "attribute2"; + MapSession expected = new MapSession("test"); + expected.setLastAccessedTime(Instant.now().minusSeconds(60)); + expected.setAttribute(attribute1, "test"); + expected.setAttribute(attribute2, null); + Map map = map(RedisSessionMapper.ATTRIBUTE_PREFIX + attribute1, expected.getAttribute(attribute1), + RedisSessionMapper.ATTRIBUTE_PREFIX + attribute2, expected.getAttribute(attribute2), + RedisSessionMapper.CREATION_TIME_KEY, expected.getCreationTime().toEpochMilli(), + RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, (int) expected.getMaxInactiveInterval().getSeconds(), + RedisSessionMapper.LAST_ACCESSED_TIME_KEY, expected.getLastAccessedTime().toEpochMilli()); + given(this.hashOperations.entries(anyString())).willReturn(Flux.fromIterable(map.entrySet())); + + StepVerifier.create(this.repository.findById("test")).consumeNextWith((session) -> { + assertThat(session.getId()).isEqualTo(expected.getId()); + assertThat(session.changeSessionId()).isEqualTo("changed-session-id"); + }).verifyComplete(); + } + private Map map(Object... objects) { Map result = new HashMap<>(); if (objects == null) { diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java index 697749e60..223f56dde 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java @@ -910,6 +910,46 @@ void saveWithSaveModeAlways() { assertThat(getDelta()).hasSize(3); } + @Test + void createSessionWhenSessionIdGenerationStrategyThenUses() { + this.redisRepository.setSessionIdGenerationStrategy(() -> "test"); + RedisSession session = this.redisRepository.createSession(); + assertThat(session.getId()).isEqualTo("test"); + assertThat(session.changeSessionId()).isEqualTo("test"); + } + + @Test + void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.redisRepository.setSessionIdGenerationStrategy(null)) + .withMessage("sessionIdGenerationStrategy cannot be null"); + } + + @Test + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + this.redisRepository.setSessionIdGenerationStrategy(() -> "test"); + String attribute1 = "attribute1"; + String attribute2 = "attribute2"; + MapSession expected = new MapSession("original"); + expected.setLastAccessedTime(Instant.now().minusSeconds(60)); + expected.setAttribute(attribute1, "test"); + expected.setAttribute(attribute2, null); + given(this.redisOperations.boundHashOps(getKey(expected.getId()))) + .willReturn(this.boundHashOperations); + Map map = map(RedisIndexedSessionRepository.getSessionAttrNameKey(attribute1), + expected.getAttribute(attribute1), RedisIndexedSessionRepository.getSessionAttrNameKey(attribute2), + expected.getAttribute(attribute2), RedisSessionMapper.CREATION_TIME_KEY, + expected.getCreationTime().toEpochMilli(), RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, + (int) expected.getMaxInactiveInterval().getSeconds(), RedisSessionMapper.LAST_ACCESSED_TIME_KEY, + expected.getLastAccessedTime().toEpochMilli()); + given(this.boundHashOperations.entries()).willReturn(map); + + RedisSession session = this.redisRepository.findById(expected.getId()); + String oldSessionId = session.getId(); + String newSessionId = session.changeSessionId(); + assertThat(oldSessionId).isEqualTo("original"); + assertThat(newSessionId).isEqualTo("test"); + } + private String getKey(String id) { return "spring:session:sessions:" + id; } diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java index 0092e217e..3e22e30c4 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java @@ -373,6 +373,35 @@ void getSessionRedisOperations__ShouldReturnRedisOperations() { verifyNoMoreInteractions(this.sessionHashOperations); } + @Test + void createSessionWhenSessionIdGenerationStrategyThenUses() { + this.sessionRepository.setSessionIdGenerationStrategy(() -> "test"); + RedisSessionRepository.RedisSession session = this.sessionRepository.createSession(); + assertThat(session.getId()).isEqualTo("test"); + assertThat(session.changeSessionId()).isEqualTo("test"); + } + + @Test + void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + assertThatIllegalArgumentException() + .isThrownBy(() -> this.sessionRepository.setSessionIdGenerationStrategy(null)) + .withMessage("sessionIdGenerationStrategy cannot be null"); + } + + @Test + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + this.sessionRepository.setSessionIdGenerationStrategy(() -> "test"); + Instant now = Instant.now().truncatedTo(ChronoUnit.MILLIS); + given(this.sessionHashOperations.entries(eq(TEST_SESSION_KEY))) + .willReturn(mapOf(RedisSessionMapper.CREATION_TIME_KEY, Instant.EPOCH.toEpochMilli(), + RedisSessionMapper.LAST_ACCESSED_TIME_KEY, now.toEpochMilli(), + RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS, + RedisSessionMapper.ATTRIBUTE_PREFIX + "attribute1", "value1")); + RedisSession session = this.sessionRepository.findById(TEST_SESSION_ID); + assertThat(session.getId()).isEqualTo(TEST_SESSION_ID); + assertThat(session.changeSessionId()).isEqualTo("test"); + } + private static String getSessionKey(String sessionId) { return "spring:session:sessions:" + sessionId; } diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java index 736201c7d..3758bcf65 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java @@ -39,6 +39,8 @@ import org.springframework.mock.env.MockEnvironment; import org.springframework.session.FlushMode; import org.springframework.session.SaveMode; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.data.redis.RedisSessionRepository; import org.springframework.session.data.redis.config.annotation.SpringSessionRedisConnectionFactory; @@ -206,6 +208,22 @@ void importConfigAndCustomize() { assertThat(sessionRepository).extracting("defaultMaxInactiveInterval").isEqualTo(Duration.ZERO); } + @Test + void registerWhenSessionIdGenerationStrategyBeanThenUses() { + registerAndRefresh(RedisConfig.class, SessionIdGenerationStrategyConfiguration.class); + RedisSessionRepository sessionRepository = this.context.getBean(RedisSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(TestSessionIdGenerationStrategy.class); + } + + @Test + void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + registerAndRefresh(RedisConfig.class, DefaultConfiguration.class); + RedisSessionRepository sessionRepository = this.context.getBean(RedisSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(UuidSessionIdGenerationStrategy.class); + } + private void registerAndRefresh(Class... annotatedClasses) { this.context.register(annotatedClasses); this.context.refresh(); @@ -381,4 +399,30 @@ SessionRepositoryCustomizer sessionRepositoryCustomizer( } + @Configuration(proxyBeanMethods = false) + @EnableRedisHttpSession + static class SessionIdGenerationStrategyConfiguration { + + @Bean + SessionIdGenerationStrategy sessionIdGenerationStrategy() { + return new TestSessionIdGenerationStrategy(); + } + + } + + @Configuration(proxyBeanMethods = false) + @EnableRedisHttpSession + static class DefaultConfiguration { + + } + + static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + @Override + public String generate() { + return "test"; + } + + } + } diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java index f89dc8b4f..f135e4db4 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java @@ -43,6 +43,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.data.redis.RedisIndexedSessionRepository; import org.springframework.session.data.redis.config.annotation.SpringSessionRedisConnectionFactory; @@ -240,6 +242,22 @@ void importConfigAndCustomize() { assertThat(sessionRepository).extracting("defaultMaxInactiveInterval").isEqualTo(Duration.ZERO); } + @Test + void registerWhenSessionIdGenerationStrategyBeanThenUses() { + registerAndRefresh(RedisConfig.class, SessionIdGenerationStrategyConfiguration.class); + RedisIndexedSessionRepository sessionRepository = this.context.getBean(RedisIndexedSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(TestSessionIdGenerationStrategy.class); + } + + @Test + void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + registerAndRefresh(RedisConfig.class, DefaultConfiguration.class); + RedisIndexedSessionRepository sessionRepository = this.context.getBean(RedisIndexedSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(UuidSessionIdGenerationStrategy.class); + } + private void registerAndRefresh(Class... annotatedClasses) { this.context.register(annotatedClasses); this.context.refresh(); @@ -444,4 +462,30 @@ SessionRepositoryCustomizer sessionRepositoryCust } + @Configuration(proxyBeanMethods = false) + @EnableRedisIndexedHttpSession + static class SessionIdGenerationStrategyConfiguration { + + @Bean + SessionIdGenerationStrategy sessionIdGenerationStrategy() { + return new TestSessionIdGenerationStrategy(); + } + + } + + @Configuration(proxyBeanMethods = false) + @EnableRedisIndexedHttpSession + static class DefaultConfiguration { + + } + + static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + @Override + public String generate() { + return "test"; + } + + } + } diff --git a/spring-session-docs/modules/ROOT/nav.adoc b/spring-session-docs/modules/ROOT/nav.adoc index 647dda861..0100083af 100644 --- a/spring-session-docs/modules/ROOT/nav.adoc +++ b/spring-session-docs/modules/ROOT/nav.adoc @@ -17,6 +17,7 @@ ** XML Configuration * xref:configurations.adoc[Configurations] ** xref:configuration/redis.adoc[Redis] +** xref:configuration/common.adoc[Common Configurations] * xref:http-session.adoc[HttpSession Integration] * xref:web-socket.adoc[WebSocket Integration] * xref:web-session.adoc[WebSession Integration] diff --git a/spring-session-docs/modules/ROOT/pages/configuration/common.adoc b/spring-session-docs/modules/ROOT/pages/configuration/common.adoc new file mode 100644 index 000000000..23dedaf7a --- /dev/null +++ b/spring-session-docs/modules/ROOT/pages/configuration/common.adoc @@ -0,0 +1,57 @@ +[[common-configurations]] += Common Configurations + +This section contains common configurations that applies to all or most Spring Session modules. +It contains configuration examples for the following use cases: + +- I need to <> + +[[changing-how-session-ids-are-generated]] +== Changing How Session IDs Are Generated + +By default, Spring Session uses `UuidSessionIdGenerationStrategy` which, in turn, uses a `java.util.UUID` to generate a session id. +There might be scenarios where it may be better to include other characters to increase entropy, or you may want to use a different algorithm to generate the session id. +To change this, you can provide a custom `SessionIdGenerationStrategy` bean: + +.Changing How Session IDs Are Generated +[tabs] +====== +Java:: ++ +[source,java,role="primary"] +---- +@Bean +public SessionIdGenerationStrategy sessionIdGenerationStrategy() { + return new MySessionIdGenerationStrategy(); +} + +class MySessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + @Override + public String generate() { + // ... + } + +} +---- +====== + +After exposing your `SessionIdGenerationStrategy` bean, Spring Session will use it to generate session ids. + +If you are manually configuring your `SessionRepository` bean (instead of using `@EnableRedisHttpSession`, for example), you can set the `SessionIdGenerationStrategy` directly on the `SessionRepository` implementation: + +.Setting `SessionIdGenerationStrategy` directly into `SessionRepository` implementation +[tabs] +====== +Java:: ++ +[source,java,role="primary"] +---- +@Bean +public RedisSessionRepository redisSessionRepository(RedisOperations redisOperations) { + RedisSessionRepository repository = new RedisSessionRepository(redisOperations) + repository.setSessionIdGenerationStrategy(new MySessionIdGenerationStrategy()); + return repository; +} +---- +====== diff --git a/spring-session-docs/modules/ROOT/pages/whats-new.adoc b/spring-session-docs/modules/ROOT/pages/whats-new.adoc index 1d431e341..d1d7b2aac 100644 --- a/spring-session-docs/modules/ROOT/pages/whats-new.adoc +++ b/spring-session-docs/modules/ROOT/pages/whats-new.adoc @@ -1 +1,3 @@ = What's New + +- xref:configuration/common.adoc#changing-how-session-ids-are-generated[docs] - https://github.com/spring-projects/spring-session/issues/11[gh-11] - Introduce `SessionIdGenerationStrategy` to allow custom session id generation diff --git a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java index d9be431ba..0b5109dff 100644 --- a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java +++ b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java @@ -48,6 +48,8 @@ import org.springframework.session.PrincipalNameIndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.events.AbstractSessionEvent; import org.springframework.session.events.SessionCreatedEvent; import org.springframework.session.events.SessionDeletedEvent; @@ -151,6 +153,8 @@ public class HazelcastIndexedSessionRepository private UUID sessionListenerId; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + /** * Create a new {@link HazelcastIndexedSessionRepository} instance. * @param hazelcastInstance the {@link HazelcastInstance} to use for managing sessions @@ -245,7 +249,7 @@ public void setSaveMode(SaveMode saveMode) { @Override public HazelcastSession createSession() { - MapSession cached = new MapSession(); + MapSession cached = new MapSession(this.sessionIdGenerationStrategy); cached.setMaxInactiveInterval(this.defaultMaxInactiveInterval); HazelcastSession session = new HazelcastSession(cached, true); session.flushImmediateIfNecessary(); @@ -349,6 +353,16 @@ public void entryExpired(EntryEvent event) { this.eventPublisher.publishEvent(new SessionExpiredEvent(this, event.getOldValue())); } + /** + * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * @since 3.2 + */ + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + /** * A custom implementation of {@link Session} that uses a {@link MapSession} as the * basis for its mapping. It keeps track if changes have been made since last save. @@ -405,7 +419,8 @@ public String getId() { @Override public String changeSessionId() { - String newSessionId = this.delegate.changeSessionId(); + String newSessionId = HazelcastIndexedSessionRepository.this.sessionIdGenerationStrategy.generate(); + this.delegate.setId(newSessionId); this.sessionIdChanged = true; return newSessionId; } diff --git a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfiguration.java b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfiguration.java index 55c542abb..16354a58c 100644 --- a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfiguration.java +++ b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfiguration.java @@ -38,6 +38,8 @@ import org.springframework.session.MapSession; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration; import org.springframework.session.hazelcast.HazelcastIndexedSessionRepository; @@ -75,6 +77,8 @@ public class HazelcastHttpSessionConfiguration implements ImportAware { private List> sessionRepositoryCustomizers; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + @Bean public FindByIndexNameSessionRepository sessionRepository() { return createHazelcastIndexedSessionRepository(); @@ -158,9 +162,15 @@ private HazelcastIndexedSessionRepository createHazelcastIndexedSessionRepositor sessionRepository.setDefaultMaxInactiveInterval(this.maxInactiveInterval); sessionRepository.setFlushMode(this.flushMode); sessionRepository.setSaveMode(this.saveMode); + sessionRepository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; } + @Autowired(required = false) + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + } diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java index abe728e38..73215f68e 100644 --- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java +++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java @@ -465,4 +465,31 @@ void saveWithSaveModeAlways() { verifyNoMoreInteractions(this.sessions); } + @Test + void createSessionWhenSessionIdGenerationStrategyThenUses() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + HazelcastSession session = this.repository.createSession(); + assertThat(session.getId()).isEqualTo("test"); + assertThat(session.changeSessionId()).isEqualTo("test"); + } + + @Test + void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) + .withMessage("sessionIdGenerationStrategy cannot be null"); + } + + @Test + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + MapSession saved = new MapSession("original"); + saved.setAttribute("savedName", "savedValue"); + given(this.sessions.get(eq(saved.getId()))).willReturn(saved); + + HazelcastSession session = this.repository.findById(saved.getId()); + + assertThat(session.getId()).isEqualTo(saved.getId()); + assertThat(session.changeSessionId()).isEqualTo("test"); + } + } diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java index bb201fe79..062930ca4 100644 --- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java +++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java @@ -36,6 +36,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.hazelcast.HazelcastIndexedSessionRepository; import org.springframework.session.hazelcast.config.annotation.SpringSessionHazelcastInstance; @@ -238,6 +240,24 @@ void importConfigAndCustomize() { assertThat(sessionRepository).extracting("defaultMaxInactiveInterval").isEqualTo(Duration.ZERO); } + @Test + void registerWhenSessionIdGenerationStrategyBeanThenUses() { + registerAndRefresh(DefaultConfiguration.class, SessionIdGenerationStrategyConfiguration.class); + HazelcastIndexedSessionRepository sessionRepository = this.context + .getBean(HazelcastIndexedSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(TestSessionIdGenerationStrategy.class); + } + + @Test + void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + registerAndRefresh(DefaultConfiguration.class); + HazelcastIndexedSessionRepository sessionRepository = this.context + .getBean(HazelcastIndexedSessionRepository.class); + assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") + .isInstanceOf(UuidSessionIdGenerationStrategy.class); + } + private void registerAndRefresh(Class... annotatedClasses) { this.context.register(annotatedClasses); this.context.refresh(); @@ -465,4 +485,23 @@ SessionRepositoryCustomizer sessionRepository } + @Configuration(proxyBeanMethods = false) + static class SessionIdGenerationStrategyConfiguration { + + @Bean + SessionIdGenerationStrategy sessionIdGenerationStrategy() { + return new TestSessionIdGenerationStrategy(); + } + + } + + static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + @Override + public String generate() { + return "test"; + } + + } + } diff --git a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcIndexedSessionRepository.java b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcIndexedSessionRepository.java index 1d12c1607..5c40be5ca 100644 --- a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcIndexedSessionRepository.java +++ b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcIndexedSessionRepository.java @@ -62,6 +62,8 @@ import org.springframework.session.PrincipalNameIndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.transaction.support.TransactionOperations; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -252,6 +254,8 @@ public class JdbcIndexedSessionRepository implements private ThreadPoolTaskScheduler taskScheduler; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + /** * Create a new {@link JdbcIndexedSessionRepository} instance which uses the provided * {@link JdbcOperations} and {@link TransactionOperations} to manage sessions. @@ -461,7 +465,7 @@ public void setCleanupCron(String cleanupCron) { @Override public JdbcSession createSession() { - MapSession delegate = new MapSession(); + MapSession delegate = new MapSession(this.sessionIdGenerationStrategy); delegate.setMaxInactiveInterval(this.defaultMaxInactiveInterval); JdbcSession session = new JdbcSession(delegate, UUID.randomUUID().toString(), true); session.flushIfRequired(); @@ -686,6 +690,16 @@ private Object deserialize(byte[] bytes) { TypeDescriptor.valueOf(Object.class)); } + /** + * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. + * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * @since 3.2 + */ + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + private enum DeltaValue { ADDED, UPDATED, REMOVED @@ -721,7 +735,7 @@ public T get() { */ final class JdbcSession implements Session { - private final Session delegate; + private final MapSession delegate; private final String primaryKey; @@ -773,7 +787,9 @@ public String getId() { @Override public String changeSessionId() { this.changed = true; - return this.delegate.changeSessionId(); + String newSessionId = JdbcIndexedSessionRepository.this.sessionIdGenerationStrategy.generate(); + this.delegate.setId(newSessionId); + return newSessionId; } @Override diff --git a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java index 5c0cb2648..e937c1151 100644 --- a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java +++ b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java @@ -50,6 +50,8 @@ import org.springframework.session.MapSession; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration; import org.springframework.session.jdbc.JdbcIndexedSessionRepository; @@ -109,6 +111,8 @@ public class JdbcHttpSessionConfiguration implements BeanClassLoaderAware, Embed private StringValueResolver embeddedValueResolver; + private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + @Bean public JdbcIndexedSessionRepository sessionRepository() { JdbcTemplate jdbcTemplate = createJdbcTemplate(this.dataSource); @@ -144,6 +148,7 @@ else if (this.conversionService != null) { else { sessionRepository.setConversionService(createConversionServiceWithBeanClassLoader(this.classLoader)); } + sessionRepository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -235,6 +240,11 @@ public void setSessionRepositoryCustomizer( this.sessionRepositoryCustomizers = sessionRepositoryCustomizers.orderedStream().collect(Collectors.toList()); } + @Autowired(required = false) + public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { + this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + } + @Override public void setBeanClassLoader(ClassLoader classLoader) { this.classLoader = classLoader; diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerationStrategy.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerationStrategy.java new file mode 100644 index 000000000..e4872a2df --- /dev/null +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerationStrategy.java @@ -0,0 +1,34 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.jdbc; + +import org.springframework.session.SessionIdGenerationStrategy; + +public class FixedSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + + private final String id; + + public FixedSessionIdGenerationStrategy(String id) { + this.id = id; + } + + @Override + public String generate() { + return this.id; + } + +} diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java index 1d3283eaa..e2d9d51ed 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java @@ -263,6 +263,12 @@ void setCleanupCronDisabled() { assertThat(this.repository).extracting("taskScheduler").isNull(); } + @Test + void setSessionIdGenerationStrategyWhenNullThenException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) + .withMessage("sessionIdGenerationStrategy cannot be null"); + } + @Test void createSessionDefaultMaxInactiveInterval() { JdbcSession session = this.repository.createSession(); @@ -769,4 +775,32 @@ void saveAndFreeTemporaryLob() { verify(lobCreator, atLeastOnce()).close(); } + @Test + void createSessionWhenSessionIdGenerationStrategyThenUses() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + JdbcSession session = this.repository.createSession(); + assertThat(session.getId()).isEqualTo("test"); + assertThat(session.changeSessionId()).isEqualTo("test"); + } + + @Test + void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) + .withMessage("sessionIdGenerationStrategy cannot be null"); + } + + @Test + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + this.repository.setSessionIdGenerationStrategy(() -> "test"); + Session saved = this.repository.new JdbcSession(new MapSession(), "primaryKey", false); + saved.setAttribute("savedName", "savedValue"); + given(this.jdbcOperations.query(isA(String.class), isA(PreparedStatementSetter.class), + isA(ResultSetExtractor.class))).willReturn(Collections.singletonList(saved)); + + JdbcSession session = this.repository.findById(saved.getId()); + + assertThat(session.getId()).isEqualTo(saved.getId()); + assertThat(session.changeSessionId()).isEqualTo("test"); + } + } diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java index dcf5c2c7e..8b9892c83 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java @@ -43,7 +43,10 @@ import org.springframework.session.IndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerationStrategy; import org.springframework.session.config.SessionRepositoryCustomizer; +import org.springframework.session.jdbc.FixedSessionIdGenerationStrategy; import org.springframework.session.jdbc.JdbcIndexedSessionRepository; import org.springframework.session.jdbc.config.annotation.SpringSessionDataSource; import org.springframework.test.util.ReflectionTestUtils; @@ -318,11 +321,40 @@ void importConfigAndCustomize() { assertThat(sessionRepository).extracting("defaultMaxInactiveInterval").isEqualTo(Duration.ZERO); } + @Test + void sessionIdGenerationStrategyWhenCustomBeanThenUses() { + registerAndRefresh(DataSourceConfiguration.class, CustomSessionIdGenerationStrategyConfiguration.class); + JdbcIndexedSessionRepository sessionRepository = this.context.getBean(JdbcIndexedSessionRepository.class); + SessionIdGenerationStrategy sessionIdGenerationStrategy = (SessionIdGenerationStrategy) ReflectionTestUtils + .getField(sessionRepository, "sessionIdGenerationStrategy"); + assertThat(sessionIdGenerationStrategy).isInstanceOf(FixedSessionIdGenerationStrategy.class); + } + + @Test + void sessionIdGenerationStrategyWhenNoBeanThenDefault() { + registerAndRefresh(DataSourceConfiguration.class, DefaultConfiguration.class); + JdbcIndexedSessionRepository sessionRepository = this.context.getBean(JdbcIndexedSessionRepository.class); + SessionIdGenerationStrategy sessionIdGenerationStrategy = (SessionIdGenerationStrategy) ReflectionTestUtils + .getField(sessionRepository, "sessionIdGenerationStrategy"); + assertThat(sessionIdGenerationStrategy).isInstanceOf(UuidSessionIdGenerationStrategy.class); + } + private void registerAndRefresh(Class... annotatedClasses) { this.context.register(annotatedClasses); this.context.refresh(); } + @Configuration(proxyBeanMethods = false) + @EnableJdbcHttpSession + static class CustomSessionIdGenerationStrategyConfiguration { + + @Bean + SessionIdGenerationStrategy sessionIdGenerationStrategy() { + return new FixedSessionIdGenerationStrategy("my-id"); + } + + } + @Configuration(proxyBeanMethods = false) @EnableJdbcHttpSession static class NoDataSourceConfiguration { From cb6f21968d94c10ac4d5a9443ea898aa586ec047 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Thu, 13 Jul 2023 14:56:28 -0300 Subject: [PATCH 006/579] Use 3.2.x as default branch --- git/hooks/prepare-forward-merge | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git/hooks/prepare-forward-merge b/git/hooks/prepare-forward-merge index cb0a25f0d..659c4152b 100755 --- a/git/hooks/prepare-forward-merge +++ b/git/hooks/prepare-forward-merge @@ -4,7 +4,7 @@ require 'net/http' require 'yaml' require 'logger' -$main_branch = "3.1.x" +$main_branch = "3.2.x" $log = Logger.new(STDOUT) $log.level = Logger::WARN From 878f6c1a5a6987d1dbf98c2c65b5ae12cd67f2f3 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 17 Jul 2023 14:11:41 -0300 Subject: [PATCH 007/579] Update to Spring Framework 6.1.0-M2 Closes gh-2346 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 0e359d1b1..d7b9f79f3 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -4,7 +4,7 @@ dependencyManagement { mavenBom 'com.fasterxml.jackson:jackson-bom:2.14.2' mavenBom 'org.junit:junit-bom:5.9.1' mavenBom 'org.mockito:mockito-bom:4.8.1' - mavenBom 'org.springframework:spring-framework-bom:6.0.10' + mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' mavenBom 'org.springframework.data:spring-data-bom:2022.0.7' mavenBom 'org.springframework.security:spring-security-bom:6.1.1' mavenBom 'org.testcontainers:testcontainers-bom:1.17.6' From 10b08d346be021169a7893469074d5d6520bf213 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 17 Jul 2023 15:06:38 -0300 Subject: [PATCH 008/579] Compile with -parameters See https://github.com/spring-projects/spring-framework/issues/29559 --- build.gradle | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle b/build.gradle index cbf923781..9d1ff71f3 100644 --- a/build.gradle +++ b/build.gradle @@ -40,6 +40,11 @@ subprojects { tasks.withType(Test) { useJUnitPlatform() } + + // Spring Framework 6.1 requires -parameters to be able to introspect method parameter names + tasks.withType(JavaCompile) { + options.compilerArgs.add("-parameters") + } } nohttp { From cf09b4f54a32520786face5588012b335daaf32f Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 17 Jul 2023 15:22:59 -0300 Subject: [PATCH 009/579] Update to Spring Data 2023.1.0-M1 Closes gh-2348 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index d7b9f79f3..e61fc495a 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -5,7 +5,7 @@ dependencyManagement { mavenBom 'org.junit:junit-bom:5.9.1' mavenBom 'org.mockito:mockito-bom:4.8.1' mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' - mavenBom 'org.springframework.data:spring-data-bom:2022.0.7' + mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' mavenBom 'org.springframework.security:spring-security-bom:6.1.1' mavenBom 'org.testcontainers:testcontainers-bom:1.17.6' } From e97d220983ece9a0ab555289ed9095fb2ada215c Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 09:01:26 -0300 Subject: [PATCH 010/579] Update to Spring Security 6.2.0-M1 Closes gh-2347 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index e61fc495a..d0f815a5e 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -6,7 +6,7 @@ dependencyManagement { mavenBom 'org.mockito:mockito-bom:4.8.1' mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' - mavenBom 'org.springframework.security:spring-security-bom:6.1.1' + mavenBom 'org.springframework.security:spring-security-bom:6.2.0-M1' mavenBom 'org.testcontainers:testcontainers-bom:1.17.6' } From bc73538b9b6d5342e8b061b7ddfb3ec629e0e202 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:32:20 -0300 Subject: [PATCH 011/579] Update ch.qos.logback to 1.4.8 Closes gh-2350 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index d0f815a5e..62f335114 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -13,7 +13,7 @@ dependencyManagement { dependencies { dependency 'com.hazelcast:hazelcast:5.1.4' dependency 'org.aspectj:aspectjweaver:1.9.9.1' - dependency 'ch.qos.logback:logback-core:1.4.7' + dependency 'ch.qos.logback:logback-core:1.4.8' dependency 'com.google.code.findbugs:jsr305:3.0.2' dependency 'com.h2database:h2:2.1.214' dependency 'com.ibm.db2:jcc:11.5.7.0' From 79db3cc8cd58ff29f6386cf318f516528aa410e0 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:32:27 -0300 Subject: [PATCH 012/579] Update h2 to 2.2.220 Closes gh-2352 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 62f335114..c9be876c0 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -15,7 +15,7 @@ dependencyManagement { dependency 'org.aspectj:aspectjweaver:1.9.9.1' dependency 'ch.qos.logback:logback-core:1.4.8' dependency 'com.google.code.findbugs:jsr305:3.0.2' - dependency 'com.h2database:h2:2.1.214' + dependency 'com.h2database:h2:2.2.220' dependency 'com.ibm.db2:jcc:11.5.7.0' dependency 'com.microsoft.sqlserver:mssql-jdbc:11.2.1.jre17' dependency 'com.oracle.database.jdbc:ojdbc8:21.7.0.0' From 0644153b8ebe4d0ba05ab9de2f40d7df9eaadd01 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:32:30 -0300 Subject: [PATCH 013/579] Update hazelcast to 5.3.1 Closes gh-2353 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index c9be876c0..836db0086 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -11,7 +11,7 @@ dependencyManagement { } dependencies { - dependency 'com.hazelcast:hazelcast:5.1.4' + dependency 'com.hazelcast:hazelcast:5.3.1' dependency 'org.aspectj:aspectjweaver:1.9.9.1' dependency 'ch.qos.logback:logback-core:1.4.8' dependency 'com.google.code.findbugs:jsr305:3.0.2' From 81c5731eed2f7ad6059c9f4c57c4d412ea8678e5 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:32:34 -0300 Subject: [PATCH 014/579] Update jcc to 11.5.8.0 Closes gh-2354 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 836db0086..195653678 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -16,7 +16,7 @@ dependencyManagement { dependency 'ch.qos.logback:logback-core:1.4.8' dependency 'com.google.code.findbugs:jsr305:3.0.2' dependency 'com.h2database:h2:2.2.220' - dependency 'com.ibm.db2:jcc:11.5.7.0' + dependency 'com.ibm.db2:jcc:11.5.8.0' dependency 'com.microsoft.sqlserver:mssql-jdbc:11.2.1.jre17' dependency 'com.oracle.database.jdbc:ojdbc8:21.7.0.0' dependency 'com.zaxxer:HikariCP:5.0.1' From 23fdbe22bcd96406cb0d2b8bff1f677c79a92eb5 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:32:41 -0300 Subject: [PATCH 015/579] Update ojdbc8 to 21.10.0.0 Closes gh-2356 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 195653678..80b60c038 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -18,7 +18,7 @@ dependencyManagement { dependency 'com.h2database:h2:2.2.220' dependency 'com.ibm.db2:jcc:11.5.8.0' dependency 'com.microsoft.sqlserver:mssql-jdbc:11.2.1.jre17' - dependency 'com.oracle.database.jdbc:ojdbc8:21.7.0.0' + dependency 'com.oracle.database.jdbc:ojdbc8:21.10.0.0' dependency 'com.zaxxer:HikariCP:5.0.1' dependency 'edu.umd.cs.mtc:multithreadedtc:1.01' dependency 'io.lettuce:lettuce-core:6.2.1.RELEASE' From de32a92c9b834e30b1e6ebea810a210122915c0f Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:32:45 -0300 Subject: [PATCH 016/579] Update lettuce-core to 6.2.5.RELEASE Closes gh-2357 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 80b60c038..24585b66f 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -21,7 +21,7 @@ dependencyManagement { dependency 'com.oracle.database.jdbc:ojdbc8:21.10.0.0' dependency 'com.zaxxer:HikariCP:5.0.1' dependency 'edu.umd.cs.mtc:multithreadedtc:1.01' - dependency 'io.lettuce:lettuce-core:6.2.1.RELEASE' + dependency 'io.lettuce:lettuce-core:6.2.5.RELEASE' dependency 'jakarta.servlet:jakarta.servlet-api:6.0.0' dependency 'jakarta.websocket:jakarta.websocket-api:2.1.0' dependency 'jakarta.websocket:jakarta.websocket-client-api:2.1.0' From 0b74cfe733b390996e280f7243c7918b07fecbad Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:33:00 -0300 Subject: [PATCH 017/579] Update jakarta.websocket to 2.1.1 Closes gh-2362 --- gradle/dependency-management.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 24585b66f..2f8aa4a83 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -23,8 +23,8 @@ dependencyManagement { dependency 'edu.umd.cs.mtc:multithreadedtc:1.01' dependency 'io.lettuce:lettuce-core:6.2.5.RELEASE' dependency 'jakarta.servlet:jakarta.servlet-api:6.0.0' - dependency 'jakarta.websocket:jakarta.websocket-api:2.1.0' - dependency 'jakarta.websocket:jakarta.websocket-client-api:2.1.0' + dependency 'jakarta.websocket:jakarta.websocket-api:2.1.1' + dependency 'jakarta.websocket:jakarta.websocket-client-api:2.1.1' dependency 'mysql:mysql-connector-java:8.0.30' dependencySet(group: 'org.apache.derby', version: '10.16.1.1') { entry 'derby' From 81ef13faf54c41ea0b7ebc16e24d929f7df5aee9 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:33:04 -0300 Subject: [PATCH 018/579] Update mysql-connector-java to 8.0.33 Closes gh-2363 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 2f8aa4a83..0faddff0b 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -25,7 +25,7 @@ dependencyManagement { dependency 'jakarta.servlet:jakarta.servlet-api:6.0.0' dependency 'jakarta.websocket:jakarta.websocket-api:2.1.1' dependency 'jakarta.websocket:jakarta.websocket-client-api:2.1.1' - dependency 'mysql:mysql-connector-java:8.0.30' + dependency 'mysql:mysql-connector-java:8.0.33' dependencySet(group: 'org.apache.derby', version: '10.16.1.1') { entry 'derby' entry 'derbytools' From 390fed676d3905a52b330600955008e74a7bc53a Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:33:11 -0300 Subject: [PATCH 019/579] Update aspectjweaver to 1.9.19 Closes gh-2365 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 0faddff0b..247f86477 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -12,7 +12,7 @@ dependencyManagement { dependencies { dependency 'com.hazelcast:hazelcast:5.3.1' - dependency 'org.aspectj:aspectjweaver:1.9.9.1' + dependency 'org.aspectj:aspectjweaver:1.9.19' dependency 'ch.qos.logback:logback-core:1.4.8' dependency 'com.google.code.findbugs:jsr305:3.0.2' dependency 'com.h2database:h2:2.2.220' From 38367433db6684ad63d8f8c74ffe07abdb1c201f Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:33:14 -0300 Subject: [PATCH 020/579] Update assertj-core to 3.24.2 Closes gh-2366 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 247f86477..b0b9d38fb 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -30,7 +30,7 @@ dependencyManagement { entry 'derby' entry 'derbytools' } - dependency 'org.assertj:assertj-core:3.23.1' + dependency 'org.assertj:assertj-core:3.24.2' dependency 'org.hamcrest:hamcrest:2.2' dependency 'org.hsqldb:hsqldb:2.7.0' dependency 'org.mariadb.jdbc:mariadb-java-client:3.0.7' From fb92cbac5bb3c8b739cebb01288b54bd272582b0 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:33:21 -0300 Subject: [PATCH 021/579] Update hsqldb to 2.7.2 Closes gh-2368 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index b0b9d38fb..6531decc1 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -32,7 +32,7 @@ dependencyManagement { } dependency 'org.assertj:assertj-core:3.24.2' dependency 'org.hamcrest:hamcrest:2.2' - dependency 'org.hsqldb:hsqldb:2.7.0' + dependency 'org.hsqldb:hsqldb:2.7.2' dependency 'org.mariadb.jdbc:mariadb-java-client:3.0.7' dependencySet(group: 'org.mongodb', version: '4.8.0-beta0') { entry 'mongodb-driver-core' From a146c55fde6b3a5263b73daf068c81ab4c367f17 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:33:27 -0300 Subject: [PATCH 022/579] Update mariadb-java-client to 3.1.4 Closes gh-2370 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 6531decc1..7a77c6d97 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -33,7 +33,7 @@ dependencyManagement { dependency 'org.assertj:assertj-core:3.24.2' dependency 'org.hamcrest:hamcrest:2.2' dependency 'org.hsqldb:hsqldb:2.7.2' - dependency 'org.mariadb.jdbc:mariadb-java-client:3.0.7' + dependency 'org.mariadb.jdbc:mariadb-java-client:3.1.4' dependencySet(group: 'org.mongodb', version: '4.8.0-beta0') { entry 'mongodb-driver-core' entry 'mongodb-driver-sync' From 7df46b3662abd706cd43e97dfd1510c988d20863 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:33:37 -0300 Subject: [PATCH 023/579] Update postgresql to 42.6.0 Closes gh-2373 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 7a77c6d97..f25619dce 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -39,7 +39,7 @@ dependencyManagement { entry 'mongodb-driver-sync' entry 'mongodb-driver-reactivestreams' } - dependency 'org.postgresql:postgresql:42.5.0' + dependency 'org.postgresql:postgresql:42.6.0' } } From 74800884e89ece7e2df65149d7aefafe9da98035 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 11:33:47 -0300 Subject: [PATCH 024/579] Update org.springframework.boot to 3.1.1 Closes gh-2376 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 58443401c..fe313ef40 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true version=3.2.0-SNAPSHOT -springBootVersion=3.0.7 +springBootVersion=3.1.1 From 9292a72b603fbe8c7a73ff34e5546bb33ae0bfe2 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 10:38:21 -0300 Subject: [PATCH 025/579] Specify driver class name --- .../AbstractContainerJdbcIndexedSessionRepositoryITests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/AbstractContainerJdbcIndexedSessionRepositoryITests.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/AbstractContainerJdbcIndexedSessionRepositoryITests.java index 2783e268a..247e22587 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/AbstractContainerJdbcIndexedSessionRepositoryITests.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/AbstractContainerJdbcIndexedSessionRepositoryITests.java @@ -41,6 +41,7 @@ HikariDataSource dataSource(JdbcDatabaseContainer databaseContainer) { dataSource.setJdbcUrl(databaseContainer.getJdbcUrl()); dataSource.setUsername(databaseContainer.getUsername()); dataSource.setPassword(databaseContainer.getPassword()); + dataSource.setDriverClassName(databaseContainer.getDriverClassName()); return dataSource; } From e7c4eae6c941fc3bc30bb68dc60df46c810f6865 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 10:25:21 -0300 Subject: [PATCH 026/579] Remove httpclient dependency from sample --- .../spring-session-sample-boot-redis-json.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/spring-session-samples/spring-session-sample-boot-redis-json/spring-session-sample-boot-redis-json.gradle b/spring-session-samples/spring-session-sample-boot-redis-json/spring-session-sample-boot-redis-json.gradle index 9e4cb2047..03c8b2025 100644 --- a/spring-session-samples/spring-session-sample-boot-redis-json/spring-session-sample-boot-redis-json.gradle +++ b/spring-session-samples/spring-session-sample-boot-redis-json/spring-session-sample-boot-redis-json.gradle @@ -11,7 +11,6 @@ dependencies { implementation "org.webjars:bootstrap" implementation "org.webjars:html5shiv" implementation "org.webjars:webjars-locator-core" - implementation "org.apache.httpcomponents:httpclient" testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation "org.assertj:assertj-core" From 88bcb4e4ca65d0b642b8403890e36148599ab87d Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 14:40:01 -0300 Subject: [PATCH 027/579] Update io.projectreactor to 3.6.0-M1 Closes gh-2358 --- gradle.properties | 1 + gradle/dependency-management.gradle | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index fe313ef40..28e79ca14 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,3 +2,4 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryEr org.gradle.parallel=true version=3.2.0-SNAPSHOT springBootVersion=3.1.1 +reactorVersion=2023.0.0-M1 diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index f25619dce..78e772197 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -1,6 +1,6 @@ dependencyManagement { imports { - mavenBom 'io.projectreactor:reactor-bom:2022.0.5' + mavenBom "io.projectreactor:reactor-bom:$reactorVersion" mavenBom 'com.fasterxml.jackson:jackson-bom:2.14.2' mavenBom 'org.junit:junit-bom:5.9.1' mavenBom 'org.mockito:mockito-bom:4.8.1' From 989c983753a0c08c634f793608f0705d03fe40ff Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 14:40:36 -0300 Subject: [PATCH 028/579] Update org.junit.jupiter to 5.10.0-RC1 Closes gh-2369 --- gradle/dependency-management.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 78e772197..08a045d1d 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -2,7 +2,7 @@ dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:$reactorVersion" mavenBom 'com.fasterxml.jackson:jackson-bom:2.14.2' - mavenBom 'org.junit:junit-bom:5.9.1' + mavenBom 'org.junit:junit-bom:5.10.0-RC1' mavenBom 'org.mockito:mockito-bom:4.8.1' mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' @@ -34,7 +34,7 @@ dependencyManagement { dependency 'org.hamcrest:hamcrest:2.2' dependency 'org.hsqldb:hsqldb:2.7.2' dependency 'org.mariadb.jdbc:mariadb-java-client:3.1.4' - dependencySet(group: 'org.mongodb', version: '4.8.0-beta0') { + dependencySet(group: 'org.mongodb', version: '4.10.2') { entry 'mongodb-driver-core' entry 'mongodb-driver-sync' entry 'mongodb-driver-reactivestreams' From b1a4097c93599fadb28bf6b671a6283625df5eeb Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 14:40:57 -0300 Subject: [PATCH 029/579] Update org.mockito to 4.11.0 Closes gh-2371 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 08a045d1d..efb2a703f 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -3,7 +3,7 @@ dependencyManagement { mavenBom "io.projectreactor:reactor-bom:$reactorVersion" mavenBom 'com.fasterxml.jackson:jackson-bom:2.14.2' mavenBom 'org.junit:junit-bom:5.10.0-RC1' - mavenBom 'org.mockito:mockito-bom:4.8.1' + mavenBom 'org.mockito:mockito-bom:4.11.0' mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' mavenBom 'org.springframework.security:spring-security-bom:6.2.0-M1' From 77074d4ea6f992f0be0f03caddcbf63e1d72c6ad Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 15:03:22 -0300 Subject: [PATCH 030/579] Release 3.2.0-M1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 28e79ca14..59e2d6356 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.0-SNAPSHOT +version=3.2.0-M1 springBootVersion=3.1.1 reactorVersion=2023.0.0-M1 From 6bdf0a17ed1b1f8fb9164c32bf9e18106d7cfe74 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 18 Jul 2023 15:23:16 -0300 Subject: [PATCH 031/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 59e2d6356..28e79ca14 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.0-M1 +version=3.2.0-SNAPSHOT springBootVersion=3.1.1 reactorVersion=2023.0.0-M1 From eb39ceeef2fe7e309dc4129390380c9b672fe141 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Wed, 19 Jul 2023 09:31:33 -0300 Subject: [PATCH 032/579] Update com.fasterxml.jackson.core to 2.15.2 Closes gh-2351 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index efb2a703f..ca42792bf 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -1,7 +1,7 @@ dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:$reactorVersion" - mavenBom 'com.fasterxml.jackson:jackson-bom:2.14.2' + mavenBom 'com.fasterxml.jackson:jackson-bom:2.15.2' mavenBom 'org.junit:junit-bom:5.10.0-RC1' mavenBom 'org.mockito:mockito-bom:4.11.0' mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' From ce9c043e68023c9c2dd24f3dd3c5470d2474f940 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Wed, 19 Jul 2023 09:32:10 -0300 Subject: [PATCH 033/579] Update org.testcontainers to 1.18.3 Closes gh-2378 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index ca42792bf..0fd1d7b4b 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -7,7 +7,7 @@ dependencyManagement { mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' mavenBom 'org.springframework.security:spring-security-bom:6.2.0-M1' - mavenBom 'org.testcontainers:testcontainers-bom:1.17.6' + mavenBom 'org.testcontainers:testcontainers-bom:1.18.3' } dependencies { From 2d4233fcfdc462187966bb45b0b9cc2bb99cc9ff Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Thu, 3 Aug 2023 13:44:42 -0300 Subject: [PATCH 034/579] Rename SessionIdGenerationStrategy to SessionIdGenerator Closes gh-2391 --- .../springframework/session/MapSession.java | 26 ++++++----- .../session/MapSessionRepository.java | 14 +++--- .../session/ReactiveMapSessionRepository.java | 17 ++++---- ...nStrategy.java => SessionIdGenerator.java} | 2 +- ...ategy.java => UuidSessionIdGenerator.java} | 15 +++---- .../session/MapSessionTests.java | 10 ++--- .../ReactiveMapSessionRepositoryTests.java | 8 ++-- .../mongo/MongoIndexedSessionRepository.java | 22 +++++----- .../session/data/mongo/MongoSession.java | 43 +++++++++---------- .../mongo/ReactiveMongoSessionRepository.java | 21 +++++---- .../http/MongoHttpSessionConfiguration.java | 12 +++--- .../ReactiveMongoWebSessionConfiguration.java | 12 +++--- .../MongoIndexedSessionRepositoryTest.java | 12 +++--- .../ReactiveMongoSessionRepositoryTest.java | 8 ++-- .../MongoHttpSessionConfigurationTest.java | 16 +++---- ...ctiveMongoWebSessionConfigurationTest.java | 16 +++---- .../redis/ReactiveRedisSessionRepository.java | 20 ++++----- .../redis/RedisIndexedSessionRepository.java | 20 ++++----- .../data/redis/RedisSessionRepository.java | 20 ++++----- .../http/RedisHttpSessionConfiguration.java | 12 +++--- .../RedisIndexedHttpSessionConfiguration.java | 12 +++--- .../server/RedisWebSessionConfiguration.java | 12 +++--- .../ReactiveRedisSessionRepositoryTests.java | 8 ++-- .../RedisIndexedSessionRepositoryTests.java | 8 ++-- .../redis/RedisSessionRepositoryTests.java | 9 ++-- .../RedisHttpsSessionConfigurationTests.java | 16 +++---- ...sIndexedHttpSessionConfigurationTests.java | 16 +++---- .../ROOT/pages/configuration/common.adoc | 18 ++++---- .../modules/ROOT/pages/whats-new.adoc | 2 +- .../HazelcastIndexedSessionRepository.java | 20 ++++----- .../HazelcastHttpSessionConfiguration.java | 12 +++--- ...azelcastIndexedSessionRepositoryTests.java | 8 ++-- ...azelcastHttpSessionConfigurationTests.java | 16 +++---- .../jdbc/JdbcIndexedSessionRepository.java | 20 ++++----- .../http/JdbcHttpSessionConfiguration.java | 12 +++--- ...tegy.java => FixedSessionIdGenerator.java} | 6 +-- .../JdbcIndexedSessionRepositoryTests.java | 12 +++--- .../JdbcHttpSessionConfigurationTests.java | 22 +++++----- 38 files changed, 269 insertions(+), 286 deletions(-) rename spring-session-core/src/main/java/org/springframework/session/{SessionIdGenerationStrategy.java => SessionIdGenerator.java} (94%) rename spring-session-core/src/main/java/org/springframework/session/{UuidSessionIdGenerationStrategy.java => UuidSessionIdGenerator.java} (70%) rename spring-session-jdbc/src/test/java/org/springframework/session/jdbc/{FixedSessionIdGenerationStrategy.java => FixedSessionIdGenerator.java} (79%) diff --git a/spring-session-core/src/main/java/org/springframework/session/MapSession.java b/spring-session-core/src/main/java/org/springframework/session/MapSession.java index 1b1d91b10..b042147f4 100644 --- a/spring-session-core/src/main/java/org/springframework/session/MapSession.java +++ b/spring-session-core/src/main/java/org/springframework/session/MapSession.java @@ -74,8 +74,7 @@ public final class MapSession implements Session, Serializable { */ private Duration maxInactiveInterval = DEFAULT_MAX_INACTIVE_INTERVAL; - private transient SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy - .getInstance(); + private transient SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); /** * Creates a new instance with a secure randomly generated identifier. @@ -85,14 +84,14 @@ public MapSession() { } /** - * Creates a new instance using the specified {@link SessionIdGenerationStrategy} to - * generate the session id. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use. + * Creates a new instance using the specified {@link SessionIdGenerator} to generate + * the session id. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use. * @since 3.2 */ - public MapSession(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this(sessionIdGenerationStrategy.generate()); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public MapSession(SessionIdGenerator sessionIdGenerator) { + this(sessionIdGenerator.generate()); + this.sessionIdGenerator = sessionIdGenerator; } /** @@ -155,7 +154,7 @@ public String getOriginalId() { @Override public String changeSessionId() { - String changedId = this.sessionIdGenerationStrategy.generate(); + String changedId = this.sessionIdGenerator.generate(); setId(changedId); return changedId; } @@ -247,13 +246,12 @@ private static String generateId() { } /** - * Sets the {@link SessionIdGenerationStrategy} to use when generating a new session - * id. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use. + * Sets the {@link SessionIdGenerator} to use when generating a new session id. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use. * @since 3.2 */ - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; } private static final long serialVersionUID = 7160779239673823561L; diff --git a/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java b/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java index e78580b28..270fe8472 100644 --- a/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java +++ b/spring-session-core/src/main/java/org/springframework/session/MapSessionRepository.java @@ -43,7 +43,7 @@ public class MapSessionRepository implements SessionRepository { private final Map sessions; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); /** * Creates a new instance backed by the provided {@link java.util.Map}. This allows @@ -74,7 +74,7 @@ public void save(MapSession session) { this.sessions.remove(session.getOriginalId()); } MapSession saved = new MapSession(session); - saved.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + saved.setSessionIdGenerator(this.sessionIdGenerator); this.sessions.put(session.getId(), saved); } @@ -89,7 +89,7 @@ public MapSession findById(String id) { return null; } MapSession result = new MapSession(saved); - result.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + result.setSessionIdGenerator(this.sessionIdGenerator); return result; } @@ -100,14 +100,14 @@ public void deleteById(String id) { @Override public MapSession createSession() { - MapSession result = new MapSession(this.sessionIdGenerationStrategy); + MapSession result = new MapSession(this.sessionIdGenerator); result.setMaxInactiveInterval(this.defaultMaxInactiveInterval); return result; } - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java b/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java index bddeca558..70fc9edf7 100644 --- a/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java +++ b/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java @@ -45,7 +45,7 @@ public class ReactiveMapSessionRepository implements ReactiveSessionRepository sessions; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); /** * Creates a new instance backed by the provided {@link Map}. This allows injecting a @@ -86,7 +86,7 @@ public Mono findById(String id) { return Mono.defer(() -> Mono.justOrEmpty(this.sessions.get(id)) .filter((session) -> !session.isExpired()) .map(MapSession::new) - .doOnNext((session) -> session.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy)) + .doOnNext((session) -> session.setSessionIdGenerator(this.sessionIdGenerator)) .switchIfEmpty(deleteById(id).then(Mono.empty()))); // @formatter:on } @@ -99,21 +99,20 @@ public Mono deleteById(String id) { @Override public Mono createSession() { return Mono.defer(() -> { - MapSession result = new MapSession(this.sessionIdGenerationStrategy); + MapSession result = new MapSession(this.sessionIdGenerator); result.setMaxInactiveInterval(this.defaultMaxInactiveInterval); return Mono.just(result); }); } /** - * Sets the {@link SessionIdGenerationStrategy} to use. - * @param sessionIdGenerationStrategy the non-null {@link SessionIdGenerationStrategy} - * to use + * Sets the {@link SessionIdGenerator} to use. + * @param sessionIdGenerator the non-null {@link SessionIdGenerator} to use * @since 3.2 */ - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-core/src/main/java/org/springframework/session/SessionIdGenerationStrategy.java b/spring-session-core/src/main/java/org/springframework/session/SessionIdGenerator.java similarity index 94% rename from spring-session-core/src/main/java/org/springframework/session/SessionIdGenerationStrategy.java rename to spring-session-core/src/main/java/org/springframework/session/SessionIdGenerator.java index cc20530f6..59f4e4022 100644 --- a/spring-session-core/src/main/java/org/springframework/session/SessionIdGenerationStrategy.java +++ b/spring-session-core/src/main/java/org/springframework/session/SessionIdGenerator.java @@ -24,7 +24,7 @@ * @author Marcus da Coregio * @since 3.2 */ -public interface SessionIdGenerationStrategy { +public interface SessionIdGenerator { @NonNull String generate(); diff --git a/spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerationStrategy.java b/spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerator.java similarity index 70% rename from spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerationStrategy.java rename to spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerator.java index 42316f170..536c4ebe2 100644 --- a/spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerationStrategy.java +++ b/spring-session-core/src/main/java/org/springframework/session/UuidSessionIdGenerator.java @@ -21,17 +21,16 @@ import org.springframework.lang.NonNull; /** - * A {@link SessionIdGenerationStrategy} that generates a random UUID to be used as the - * session id. + * A {@link SessionIdGenerator} that generates a random UUID to be used as the session id. * * @author Marcus da Coregio * @since 3.2 */ -public final class UuidSessionIdGenerationStrategy implements SessionIdGenerationStrategy { +public final class UuidSessionIdGenerator implements SessionIdGenerator { - private static final UuidSessionIdGenerationStrategy INSTANCE = new UuidSessionIdGenerationStrategy(); + private static final UuidSessionIdGenerator INSTANCE = new UuidSessionIdGenerator(); - private UuidSessionIdGenerationStrategy() { + private UuidSessionIdGenerator() { } @Override @@ -41,10 +40,10 @@ public String generate() { } /** - * Returns the singleton instance of {@link UuidSessionIdGenerationStrategy}. - * @return the singleton instance of {@link UuidSessionIdGenerationStrategy} + * Returns the singleton instance of {@link UuidSessionIdGenerator}. + * @return the singleton instance of {@link UuidSessionIdGenerator} */ - public static UuidSessionIdGenerationStrategy getInstance() { + public static UuidSessionIdGenerator getInstance() { return INSTANCE; } diff --git a/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java b/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java index 09ac62db3..8ece096e1 100644 --- a/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java @@ -45,7 +45,7 @@ void constructorNullSession() { @Test void constructorWhenSessionIdGenerationStrategyThenUsesStrategy() { - MapSession session = new MapSession(new FixedSessionIdGenerationStrategy("my-id")); + MapSession session = new MapSession(new FixedSessionIdGenerator("my-id")); assertThat(session.getId()).isEqualTo("my-id"); } @@ -159,18 +159,18 @@ void getAttributeNamesAndRemove() { @Test void changeSessionIdWhenSessionIdStrategyThenUsesStrategy() { - MapSession session = new MapSession(new IncrementalSessionIdGenerationStrategy()); + MapSession session = new MapSession(new IncrementalSessionIdGenerator()); String idBeforeChange = session.getId(); String idAfterChange = session.changeSessionId(); assertThat(idBeforeChange).isEqualTo("1"); assertThat(idAfterChange).isEqualTo("2"); } - static class FixedSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + static class FixedSessionIdGenerator implements SessionIdGenerator { private final String id; - FixedSessionIdGenerationStrategy(String id) { + FixedSessionIdGenerator(String id) { this.id = id; } @@ -181,7 +181,7 @@ public String generate() { } - static class IncrementalSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + static class IncrementalSessionIdGenerator implements SessionIdGenerator { private int counter = 1; diff --git a/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java b/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java index 9210b1f2a..96a4d3ae2 100644 --- a/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java @@ -154,7 +154,7 @@ void getAttributeNamesAndRemove() { @Test void createSessionWhenSessionIdGenerationStrategyThenUses() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); MapSession session = this.repository.createSession().block(); assertThat(session.getId()).isEqualTo("test"); assertThat(session.changeSessionId()).isEqualTo("test"); @@ -162,13 +162,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { @Test void setSessionIdGenerationStrategyWhenNullThenThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) - .withMessage("sessionIdGenerationStrategy cannot be null"); + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) + .withMessage("sessionIdGenerator cannot be null"); } @Test void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); MapSession session = this.repository.createSession().block(); this.repository.save(session).block(); diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java index 18cf41d57..664c95386 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java @@ -36,8 +36,8 @@ import org.springframework.lang.Nullable; import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.MapSession; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.events.SessionCreatedEvent; import org.springframework.session.events.SessionDeletedEvent; import org.springframework.session.events.SessionExpiredEvent; @@ -83,7 +83,7 @@ public class MongoIndexedSessionRepository private ApplicationEventPublisher eventPublisher; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); public MongoIndexedSessionRepository(MongoOperations mongoOperations) { this.mongoOperations = mongoOperations; @@ -92,7 +92,7 @@ public MongoIndexedSessionRepository(MongoOperations mongoOperations) { @Override public MongoSession createSession() { - MongoSession session = new MongoSession(this.sessionIdGenerationStrategy); + MongoSession session = new MongoSession(this.sessionIdGenerator); session.setMaxInactiveInterval(this.defaultMaxInactiveInterval); @@ -126,7 +126,7 @@ public MongoSession findById(String id) { deleteById(id); return null; } - session.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + session.setSessionIdGenerator(this.sessionIdGenerator); } return session; @@ -147,7 +147,7 @@ public Map findByIndexNameAndIndexValue(String indexName, .map((query) -> this.mongoOperations.find(query, Document.class, this.collectionName)) .orElse(Collections.emptyList()).stream() .map((dbSession) -> MongoSessionUtils.convertToSession(this.mongoSessionConverter, dbSession)) - .peek((session) -> session.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy)) + .peek((session) -> session.setSessionIdGenerator(this.sessionIdGenerator)) .collect(Collectors.toMap(MongoSession::getId, (mapSession) -> mapSession)); } @@ -225,13 +225,13 @@ public void setMongoSessionConverter(final AbstractMongoSessionConverter mongoSe } /** - * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * Set the {@link SessionIdGenerator} to use to generate session ids. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @since 3.2 */ - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java index b3d8cc919..25ee1c4db 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java @@ -28,8 +28,8 @@ import org.springframework.lang.Nullable; import org.springframework.session.MapSession; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.util.Assert; /** @@ -68,8 +68,7 @@ class MongoSession implements Session { private Map attrs = new HashMap<>(); - private transient SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy - .getInstance(); + private transient SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); /** * Constructs a new instance using the provided session id. @@ -85,7 +84,7 @@ class MongoSession implements Session { } MongoSession(long maxInactiveIntervalInSeconds) { - this(UuidSessionIdGenerationStrategy.getInstance().generate(), maxInactiveIntervalInSeconds); + this(UuidSessionIdGenerator.getInstance().generate(), maxInactiveIntervalInSeconds); } MongoSession(String id, long maxInactiveIntervalInSeconds) { @@ -97,25 +96,25 @@ class MongoSession implements Session { } /** - * Constructs a new instance using the provided {@link SessionIdGenerationStrategy}. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * Constructs a new instance using the provided {@link SessionIdGenerator}. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @since 3.2 */ - MongoSession(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this(sessionIdGenerationStrategy.generate(), MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + MongoSession(SessionIdGenerator sessionIdGenerator) { + this(sessionIdGenerator.generate(), MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); + this.sessionIdGenerator = sessionIdGenerator; } /** - * Constructs a new instance using the provided {@link SessionIdGenerationStrategy} - * and max inactive interval. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * Constructs a new instance using the provided {@link SessionIdGenerator} and max + * inactive interval. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @param maxInactiveIntervalInSeconds the max inactive interval in seconds * @since 3.2 */ - MongoSession(SessionIdGenerationStrategy sessionIdGenerationStrategy, long maxInactiveIntervalInSeconds) { - this(sessionIdGenerationStrategy.generate(), maxInactiveIntervalInSeconds); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + MongoSession(SessionIdGenerator sessionIdGenerator, long maxInactiveIntervalInSeconds) { + this(sessionIdGenerator.generate(), maxInactiveIntervalInSeconds); + this.sessionIdGenerator = sessionIdGenerator; } static String coverDot(String attributeName) { @@ -129,7 +128,7 @@ static String uncoverDot(String attributeName) { @Override public String changeSessionId() { - String changedId = this.sessionIdGenerationStrategy.generate(); + String changedId = this.sessionIdGenerator.generate(); this.id = changedId; return changedId; } @@ -245,13 +244,13 @@ void setId(String id) { } /** - * Sets the {@link SessionIdGenerationStrategy} to use. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * Sets the {@link SessionIdGenerator} to use. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @since 3.2 */ - void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java index 36c6f09e9..8d0a31199 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java @@ -35,8 +35,8 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.session.MapSession; import org.springframework.session.ReactiveSessionRepository; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.events.SessionCreatedEvent; import org.springframework.session.events.SessionDeletedEvent; import org.springframework.util.Assert; @@ -79,7 +79,7 @@ public class ReactiveMongoSessionRepository private ApplicationEventPublisher eventPublisher; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); public ReactiveMongoSessionRepository(ReactiveMongoOperations mongoOperations) { this.mongoOperations = mongoOperations; @@ -99,13 +99,13 @@ public ReactiveMongoSessionRepository(ReactiveMongoOperations mongoOperations) { @Override public Mono createSession() { // @formatter:off - return Mono.fromSupplier(() -> this.sessionIdGenerationStrategy.generate()) + return Mono.fromSupplier(() -> this.sessionIdGenerator.generate()) .map(MongoSession::new) .doOnNext((mongoSession) -> mongoSession.setMaxInactiveInterval(this.defaultMaxInactiveInterval)) .doOnNext( - (mongoSession) -> mongoSession.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy)) + (mongoSession) -> mongoSession.setSessionIdGenerator(this.sessionIdGenerator)) .doOnNext((mongoSession) -> publishEvent(new SessionCreatedEvent(this, mongoSession))) - .switchIfEmpty(Mono.just(new MongoSession(this.sessionIdGenerationStrategy))) + .switchIfEmpty(Mono.just(new MongoSession(this.sessionIdGenerator))) .subscribeOn(Schedulers.boundedElastic()) .publishOn(Schedulers.parallel()); // @formatter:on @@ -138,8 +138,7 @@ public Mono findById(String id) { return findSession(id) // .map((document) -> MongoSessionUtils.convertToSession(this.mongoSessionConverter, document)) // .filter((mongoSession) -> !mongoSession.isExpired()) // - .doOnNext( - (mongoSession) -> mongoSession.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy)) + .doOnNext((mongoSession) -> mongoSession.setSessionIdGenerator(this.sessionIdGenerator)) .switchIfEmpty(Mono.defer(() -> this.deleteById(id).then(Mono.empty()))); } @@ -229,9 +228,9 @@ public void setBlockingMongoOperations(final MongoOperations blockingMongoOperat this.blockingMongoOperations = blockingMongoOperations; } - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java index 8ca28358e..ff60d2dad 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfiguration.java @@ -36,8 +36,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.MapSession; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; @@ -72,7 +72,7 @@ public class MongoHttpSessionConfiguration implements BeanClassLoaderAware, Embe private IndexResolver indexResolver; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); @Bean public MongoIndexedSessionRepository mongoSessionRepository(MongoOperations mongoOperations) { @@ -102,7 +102,7 @@ public MongoIndexedSessionRepository mongoSessionRepository(MongoOperations mong if (StringUtils.hasText(this.collectionName)) { repository.setCollectionName(this.collectionName); } - repository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + repository.setSessionIdGenerator(this.sessionIdGenerator); this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(repository)); @@ -166,8 +166,8 @@ public void setIndexResolver(IndexResolver indexResolver) { } @Autowired(required = false) - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfiguration.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfiguration.java index 88f806f3d..f37544bdb 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfiguration.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfiguration.java @@ -37,8 +37,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.MapSession; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.server.SpringWebSessionConfiguration; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; @@ -76,7 +76,7 @@ public class ReactiveMongoWebSessionConfiguration private IndexResolver indexResolver; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); @Bean public ReactiveMongoSessionRepository reactiveMongoSessionRepository(ReactiveMongoOperations operations) { @@ -116,7 +116,7 @@ public ReactiveMongoSessionRepository reactiveMongoSessionRepository(ReactiveMon this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(repository)); - repository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + repository.setSessionIdGenerator(this.sessionIdGenerator); return repository; } @@ -187,8 +187,8 @@ public void setIndexResolver(IndexResolver indexResolver) { } @Autowired(required = false) - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java index 90c0986bb..05b4bdc46 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java @@ -34,7 +34,7 @@ import org.springframework.data.mongodb.core.query.Query; import org.springframework.session.FindByIndexNameSessionRepository; import org.springframework.session.MapSession; -import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; @@ -213,7 +213,7 @@ void shouldReturnEmptyMapForNotSupportedIndex() { @Test void createSessionWhenSessionIdGenerationStrategyThenUses() { - this.repository.setSessionIdGenerationStrategy(new FixedSessionIdGenerationStrategy("123")); + this.repository.setSessionIdGenerator(new FixedSessionIdGenerator("123")); MongoSession session = this.repository.createSession(); assertThat(session.getId()).isEqualTo("123"); assertThat(session.changeSessionId()).isEqualTo("123"); @@ -221,12 +221,12 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { @Test void setSessionIdGenerationStrategyWhenNullThenThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)); + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)); } @Test void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { - this.repository.setSessionIdGenerationStrategy(new FixedSessionIdGenerationStrategy("456")); + this.repository.setSessionIdGenerator(new FixedSessionIdGenerator("456")); Document sessionDocument = new Document(); @@ -244,11 +244,11 @@ void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { assertThat(newSessionId).isEqualTo("456"); } - static class FixedSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + static class FixedSessionIdGenerator implements SessionIdGenerator { private final String id; - FixedSessionIdGenerationStrategy(String id) { + FixedSessionIdGenerator(String id) { this.id = id; } diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java index afeffc055..d070fbbf3 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java @@ -213,7 +213,7 @@ void shouldInvokeMethodToCreateIndexesImperatively() { @Test void createSessionWhenSessionIdGenerationStrategyThenUses() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); this.repository.createSession().as(StepVerifier::create).assertNext((mongoSession) -> { assertThat(mongoSession.getId()).isEqualTo("test"); @@ -223,13 +223,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { @Test void setSessionIdGenerationStrategyWhenNullThenThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) - .withMessage("sessionIdGenerationStrategy cannot be null"); + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) + .withMessage("sessionIdGenerator cannot be null"); } @Test void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); String sessionId = UUID.randomUUID().toString(); Document sessionDocument = new Document(); diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java index 238a335b2..1cd48e122 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java @@ -34,8 +34,8 @@ import org.springframework.mock.env.MockEnvironment; import org.springframework.session.IndexResolver; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; import org.springframework.session.data.mongo.JacksonMongoSessionConverter; @@ -206,16 +206,14 @@ void importConfigAndCustomize() { void registerWhenSessionIdGenerationStrategyBeanThenUses() { registerAndRefresh(SessionIdGenerationStrategyConfiguration.class); MongoIndexedSessionRepository sessionRepository = this.context.getBean(MongoIndexedSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(TestSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { registerAndRefresh(DefaultConfiguration.class); MongoIndexedSessionRepository sessionRepository = this.context.getBean(MongoIndexedSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(UuidSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); } private void registerAndRefresh(Class... annotatedClasses) { @@ -374,13 +372,13 @@ SessionRepositoryCustomizer sessionRepositoryCust static class SessionIdGenerationStrategyConfiguration { @Bean - SessionIdGenerationStrategy sessionIdGenerationStrategy() { - return new TestSessionIdGenerationStrategy(); + SessionIdGenerator sessionIdGenerationStrategy() { + return new TestSessionIdGenerator(); } } - static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + static class TestSessionIdGenerator implements SessionIdGenerator { @Override public String generate() { diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java index 6b8f34cbc..6067db9ad 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java @@ -35,8 +35,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.ReactiveSessionRepository; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.server.EnableSpringWebSession; import org.springframework.session.data.mongo.AbstractMongoSessionConverter; @@ -228,16 +228,14 @@ void importConfigAndCustomize() { void registerWhenSessionIdGenerationStrategyBeanThenUses() { registerAndRefresh(GoodConfig.class, SessionIdGenerationStrategyConfiguration.class); ReactiveMongoSessionRepository sessionRepository = this.context.getBean(ReactiveMongoSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(TestSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { registerAndRefresh(GoodConfig.class); ReactiveMongoSessionRepository sessionRepository = this.context.getBean(ReactiveMongoSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(UuidSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); } private void registerAndRefresh(Class... annotatedClasses) { @@ -439,13 +437,13 @@ ReactiveSessionRepositoryCustomizer sessionRepos static class SessionIdGenerationStrategyConfiguration { @Bean - SessionIdGenerationStrategy sessionIdGenerationStrategy() { - return new TestSessionIdGenerationStrategy(); + SessionIdGenerator sessionIdGenerationStrategy() { + return new TestSessionIdGenerator(); } } - static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + static class TestSessionIdGenerator implements SessionIdGenerator { @Override public String generate() { diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java index fbc568f9e..ea6769c57 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java @@ -31,8 +31,8 @@ import org.springframework.session.ReactiveSessionRepository; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -63,7 +63,7 @@ public class ReactiveRedisSessionRepository private SaveMode saveMode = SaveMode.ON_SET_ATTRIBUTE; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); /** * Create a new {@link ReactiveRedisSessionRepository} instance. @@ -124,7 +124,7 @@ public ReactiveRedisOperations getSessionRedisOperations() { @Override public Mono createSession() { return Mono.defer(() -> { - MapSession cached = new MapSession(this.sessionIdGenerationStrategy); + MapSession cached = new MapSession(this.sessionIdGenerator); cached.setMaxInactiveInterval(this.defaultMaxInactiveInterval); RedisSession session = new RedisSession(cached, true); return Mono.just(session); @@ -172,13 +172,13 @@ private String getSessionKey(String sessionId) { } /** - * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * Set the {@link SessionIdGenerator} to use to generate session ids. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @since 3.2 */ - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } /** @@ -220,7 +220,7 @@ public String getId() { @Override public String changeSessionId() { - String newSessionId = ReactiveRedisSessionRepository.this.sessionIdGenerationStrategy.generate(); + String newSessionId = ReactiveRedisSessionRepository.this.sessionIdGenerator.generate(); this.cached.setId(newSessionId); return newSessionId; } diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java index b0275757f..7cdbb1b39 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java @@ -52,8 +52,8 @@ import org.springframework.session.PrincipalNameIndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.events.SessionCreatedEvent; import org.springframework.session.events.SessionDeletedEvent; import org.springframework.session.events.SessionDestroyedEvent; @@ -324,7 +324,7 @@ public class RedisIndexedSessionRepository private ThreadPoolTaskScheduler taskScheduler; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); /** * Creates a new instance. For an example, refer to the class level javadoc. @@ -551,7 +551,7 @@ public void deleteById(String sessionId) { @Override public RedisSession createSession() { - MapSession cached = new MapSession(this.sessionIdGenerationStrategy); + MapSession cached = new MapSession(this.sessionIdGenerator); cached.setMaxInactiveInterval(this.defaultMaxInactiveInterval); RedisSession session = new RedisSession(cached, true); session.flushImmediateIfNecessary(); @@ -721,13 +721,13 @@ static String getSessionAttrNameKey(String attributeName) { } /** - * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * Set the {@link SessionIdGenerator} to use to generate session ids. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @since 3.2 */ - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } /** @@ -794,7 +794,7 @@ public String getId() { @Override public String changeSessionId() { - String newSessionId = RedisIndexedSessionRepository.this.sessionIdGenerationStrategy.generate(); + String newSessionId = RedisIndexedSessionRepository.this.sessionIdGenerator.generate(); this.cached.setId(newSessionId); return newSessionId; } diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java index 0320e5e2b..a94629a2a 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java @@ -27,9 +27,9 @@ import org.springframework.session.MapSession; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; import org.springframework.session.SessionRepository; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.util.Assert; /** @@ -58,7 +58,7 @@ public class RedisSessionRepository implements SessionRepository sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -94,8 +94,8 @@ public void setImportMetadata(AnnotationMetadata importMetadata) { } @Autowired(required = false) - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java index 1873a17c9..44069eb60 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java @@ -44,8 +44,8 @@ import org.springframework.data.redis.listener.RedisMessageListenerContainer; import org.springframework.session.IndexResolver; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.data.redis.RedisIndexedSessionRepository; import org.springframework.session.data.redis.config.ConfigureNotifyKeyspaceEventsAction; import org.springframework.session.data.redis.config.ConfigureRedisAction; @@ -82,7 +82,7 @@ public class RedisIndexedHttpSessionConfiguration private StringValueResolver embeddedValueResolver; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); @Bean @Override @@ -105,7 +105,7 @@ public RedisIndexedSessionRepository sessionRepository() { sessionRepository.setCleanupCron(this.cleanupCron); int database = resolveDatabase(); sessionRepository.setDatabase(database); - sessionRepository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + sessionRepository.setSessionIdGenerator(this.sessionIdGenerator); getSessionRepositoryCustomizers() .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -210,8 +210,8 @@ && getRedisConnectionFactory() instanceof JedisConnectionFactory) { } @Autowired(required = false) - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; } /** diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfiguration.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfiguration.java index 5bbb89655..359f9ac4e 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfiguration.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisWebSessionConfiguration.java @@ -39,8 +39,8 @@ import org.springframework.data.redis.serializer.RedisSerializer; import org.springframework.session.MapSession; import org.springframework.session.SaveMode; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.server.SpringWebSessionConfiguration; import org.springframework.session.data.redis.ReactiveRedisSessionRepository; @@ -79,7 +79,7 @@ public class RedisWebSessionConfiguration implements BeanClassLoaderAware, Embed private StringValueResolver embeddedValueResolver; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); @Bean public ReactiveRedisSessionRepository sessionRepository() { @@ -90,7 +90,7 @@ public ReactiveRedisSessionRepository sessionRepository() { sessionRepository.setRedisKeyNamespace(this.redisNamespace); } sessionRepository.setSaveMode(this.saveMode); - sessionRepository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + sessionRepository.setSessionIdGenerator(this.sessionIdGenerator); this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -174,8 +174,8 @@ private ReactiveRedisTemplate createReactiveRedisTemplate() { } @Autowired(required = false) - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java index c46f7752a..0afea0d35 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java @@ -440,7 +440,7 @@ void saveWithSaveModeAlways() { @Test void createSessionWhenSessionIdGenerationStrategyThenUses() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); this.repository.createSession().as(StepVerifier::create).assertNext((redisSession) -> { assertThat(redisSession.getId()).isEqualTo("test"); @@ -450,14 +450,14 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { @Test void setSessionIdGenerationStrategyWhenNullThenThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) - .withMessage("sessionIdGenerationStrategy cannot be null"); + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) + .withMessage("sessionIdGenerator cannot be null"); } @Test @SuppressWarnings("unchecked") void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { - this.repository.setSessionIdGenerationStrategy(() -> "changed-session-id"); + this.repository.setSessionIdGenerator(() -> "changed-session-id"); given(this.redisOperations.opsForHash()).willReturn(this.hashOperations); String attribute1 = "attribute1"; String attribute2 = "attribute2"; diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java index 223f56dde..0b8493e65 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java @@ -912,7 +912,7 @@ void saveWithSaveModeAlways() { @Test void createSessionWhenSessionIdGenerationStrategyThenUses() { - this.redisRepository.setSessionIdGenerationStrategy(() -> "test"); + this.redisRepository.setSessionIdGenerator(() -> "test"); RedisSession session = this.redisRepository.createSession(); assertThat(session.getId()).isEqualTo("test"); assertThat(session.changeSessionId()).isEqualTo("test"); @@ -920,13 +920,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { @Test void setSessionIdGenerationStrategyWhenNullThenThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.redisRepository.setSessionIdGenerationStrategy(null)) - .withMessage("sessionIdGenerationStrategy cannot be null"); + assertThatIllegalArgumentException().isThrownBy(() -> this.redisRepository.setSessionIdGenerator(null)) + .withMessage("sessionIdGenerator cannot be null"); } @Test void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { - this.redisRepository.setSessionIdGenerationStrategy(() -> "test"); + this.redisRepository.setSessionIdGenerator(() -> "test"); String attribute1 = "attribute1"; String attribute2 = "attribute2"; MapSession expected = new MapSession("original"); diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java index 3e22e30c4..58e3c607c 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java @@ -375,7 +375,7 @@ void getSessionRedisOperations__ShouldReturnRedisOperations() { @Test void createSessionWhenSessionIdGenerationStrategyThenUses() { - this.sessionRepository.setSessionIdGenerationStrategy(() -> "test"); + this.sessionRepository.setSessionIdGenerator(() -> "test"); RedisSessionRepository.RedisSession session = this.sessionRepository.createSession(); assertThat(session.getId()).isEqualTo("test"); assertThat(session.changeSessionId()).isEqualTo("test"); @@ -383,14 +383,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { @Test void setSessionIdGenerationStrategyWhenNullThenThrowsException() { - assertThatIllegalArgumentException() - .isThrownBy(() -> this.sessionRepository.setSessionIdGenerationStrategy(null)) - .withMessage("sessionIdGenerationStrategy cannot be null"); + assertThatIllegalArgumentException().isThrownBy(() -> this.sessionRepository.setSessionIdGenerator(null)) + .withMessage("sessionIdGenerator cannot be null"); } @Test void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { - this.sessionRepository.setSessionIdGenerationStrategy(() -> "test"); + this.sessionRepository.setSessionIdGenerator(() -> "test"); Instant now = Instant.now().truncatedTo(ChronoUnit.MILLIS); given(this.sessionHashOperations.entries(eq(TEST_SESSION_KEY))) .willReturn(mapOf(RedisSessionMapper.CREATION_TIME_KEY, Instant.EPOCH.toEpochMilli(), diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java index 3758bcf65..2de2c4284 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java @@ -39,8 +39,8 @@ import org.springframework.mock.env.MockEnvironment; import org.springframework.session.FlushMode; import org.springframework.session.SaveMode; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.data.redis.RedisSessionRepository; import org.springframework.session.data.redis.config.annotation.SpringSessionRedisConnectionFactory; @@ -212,16 +212,14 @@ void importConfigAndCustomize() { void registerWhenSessionIdGenerationStrategyBeanThenUses() { registerAndRefresh(RedisConfig.class, SessionIdGenerationStrategyConfiguration.class); RedisSessionRepository sessionRepository = this.context.getBean(RedisSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(TestSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { registerAndRefresh(RedisConfig.class, DefaultConfiguration.class); RedisSessionRepository sessionRepository = this.context.getBean(RedisSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(UuidSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); } private void registerAndRefresh(Class... annotatedClasses) { @@ -404,8 +402,8 @@ SessionRepositoryCustomizer sessionRepositoryCustomizer( static class SessionIdGenerationStrategyConfiguration { @Bean - SessionIdGenerationStrategy sessionIdGenerationStrategy() { - return new TestSessionIdGenerationStrategy(); + SessionIdGenerator sessionIdGenerationStrategy() { + return new TestSessionIdGenerator(); } } @@ -416,7 +414,7 @@ static class DefaultConfiguration { } - static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + static class TestSessionIdGenerator implements SessionIdGenerator { @Override public String generate() { diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java index f135e4db4..2183e3ad0 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java @@ -43,8 +43,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.data.redis.RedisIndexedSessionRepository; import org.springframework.session.data.redis.config.annotation.SpringSessionRedisConnectionFactory; @@ -246,16 +246,14 @@ void importConfigAndCustomize() { void registerWhenSessionIdGenerationStrategyBeanThenUses() { registerAndRefresh(RedisConfig.class, SessionIdGenerationStrategyConfiguration.class); RedisIndexedSessionRepository sessionRepository = this.context.getBean(RedisIndexedSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(TestSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { registerAndRefresh(RedisConfig.class, DefaultConfiguration.class); RedisIndexedSessionRepository sessionRepository = this.context.getBean(RedisIndexedSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(UuidSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); } private void registerAndRefresh(Class... annotatedClasses) { @@ -467,8 +465,8 @@ SessionRepositoryCustomizer sessionRepositoryCust static class SessionIdGenerationStrategyConfiguration { @Bean - SessionIdGenerationStrategy sessionIdGenerationStrategy() { - return new TestSessionIdGenerationStrategy(); + SessionIdGenerator sessionIdGenerationStrategy() { + return new TestSessionIdGenerator(); } } @@ -479,7 +477,7 @@ static class DefaultConfiguration { } - static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + static class TestSessionIdGenerator implements SessionIdGenerator { @Override public String generate() { diff --git a/spring-session-docs/modules/ROOT/pages/configuration/common.adoc b/spring-session-docs/modules/ROOT/pages/configuration/common.adoc index 23dedaf7a..7a5f6effb 100644 --- a/spring-session-docs/modules/ROOT/pages/configuration/common.adoc +++ b/spring-session-docs/modules/ROOT/pages/configuration/common.adoc @@ -9,9 +9,9 @@ It contains configuration examples for the following use cases: [[changing-how-session-ids-are-generated]] == Changing How Session IDs Are Generated -By default, Spring Session uses `UuidSessionIdGenerationStrategy` which, in turn, uses a `java.util.UUID` to generate a session id. +By default, Spring Session uses `UuidSessionIdGenerator` which, in turn, uses a `java.util.UUID` to generate a session id. There might be scenarios where it may be better to include other characters to increase entropy, or you may want to use a different algorithm to generate the session id. -To change this, you can provide a custom `SessionIdGenerationStrategy` bean: +To change this, you can provide a custom `SessionIdGenerator` bean: .Changing How Session IDs Are Generated [tabs] @@ -21,11 +21,11 @@ Java:: [source,java,role="primary"] ---- @Bean -public SessionIdGenerationStrategy sessionIdGenerationStrategy() { - return new MySessionIdGenerationStrategy(); +public SessionIdGenerator sessionIdGenerator() { + return new MySessionIdGenerator(); } -class MySessionIdGenerationStrategy implements SessionIdGenerationStrategy { +class MySessionIdGenerator implements SessionIdGenerator { @Override public String generate() { @@ -36,11 +36,11 @@ class MySessionIdGenerationStrategy implements SessionIdGenerationStrategy { ---- ====== -After exposing your `SessionIdGenerationStrategy` bean, Spring Session will use it to generate session ids. +After exposing your `SessionIdGenerator` bean, Spring Session will use it to generate session ids. -If you are manually configuring your `SessionRepository` bean (instead of using `@EnableRedisHttpSession`, for example), you can set the `SessionIdGenerationStrategy` directly on the `SessionRepository` implementation: +If you are manually configuring your `SessionRepository` bean (instead of using `@EnableRedisHttpSession`, for example), you can set the `SessionIdGenerator` directly on the `SessionRepository` implementation: -.Setting `SessionIdGenerationStrategy` directly into `SessionRepository` implementation +.Setting `SessionIdGenerator` directly into `SessionRepository` implementation [tabs] ====== Java:: @@ -50,7 +50,7 @@ Java:: @Bean public RedisSessionRepository redisSessionRepository(RedisOperations redisOperations) { RedisSessionRepository repository = new RedisSessionRepository(redisOperations) - repository.setSessionIdGenerationStrategy(new MySessionIdGenerationStrategy()); + repository.setSessionIdGenerator(new MySessionIdGenerator()); return repository; } ---- diff --git a/spring-session-docs/modules/ROOT/pages/whats-new.adoc b/spring-session-docs/modules/ROOT/pages/whats-new.adoc index d1d7b2aac..a18e5da04 100644 --- a/spring-session-docs/modules/ROOT/pages/whats-new.adoc +++ b/spring-session-docs/modules/ROOT/pages/whats-new.adoc @@ -1,3 +1,3 @@ = What's New -- xref:configuration/common.adoc#changing-how-session-ids-are-generated[docs] - https://github.com/spring-projects/spring-session/issues/11[gh-11] - Introduce `SessionIdGenerationStrategy` to allow custom session id generation +- xref:configuration/common.adoc#changing-how-session-ids-are-generated[docs] - https://github.com/spring-projects/spring-session/issues/11[gh-11] - Introduce `SessionIdGenerator` to allow custom session id generation diff --git a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java index 0b5109dff..cc0280e47 100644 --- a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java +++ b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepository.java @@ -48,8 +48,8 @@ import org.springframework.session.PrincipalNameIndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.events.AbstractSessionEvent; import org.springframework.session.events.SessionCreatedEvent; import org.springframework.session.events.SessionDeletedEvent; @@ -153,7 +153,7 @@ public class HazelcastIndexedSessionRepository private UUID sessionListenerId; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); /** * Create a new {@link HazelcastIndexedSessionRepository} instance. @@ -249,7 +249,7 @@ public void setSaveMode(SaveMode saveMode) { @Override public HazelcastSession createSession() { - MapSession cached = new MapSession(this.sessionIdGenerationStrategy); + MapSession cached = new MapSession(this.sessionIdGenerator); cached.setMaxInactiveInterval(this.defaultMaxInactiveInterval); HazelcastSession session = new HazelcastSession(cached, true); session.flushImmediateIfNecessary(); @@ -354,13 +354,13 @@ public void entryExpired(EntryEvent event) { } /** - * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * Set the {@link SessionIdGenerator} to use to generate session ids. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @since 3.2 */ - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } /** @@ -419,7 +419,7 @@ public String getId() { @Override public String changeSessionId() { - String newSessionId = HazelcastIndexedSessionRepository.this.sessionIdGenerationStrategy.generate(); + String newSessionId = HazelcastIndexedSessionRepository.this.sessionIdGenerator.generate(); this.delegate.setId(newSessionId); this.sessionIdChanged = true; return newSessionId; diff --git a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfiguration.java b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfiguration.java index 16354a58c..3bda88973 100644 --- a/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfiguration.java +++ b/spring-session-hazelcast/src/main/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfiguration.java @@ -38,8 +38,8 @@ import org.springframework.session.MapSession; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration; import org.springframework.session.hazelcast.HazelcastIndexedSessionRepository; @@ -77,7 +77,7 @@ public class HazelcastHttpSessionConfiguration implements ImportAware { private List> sessionRepositoryCustomizers; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); @Bean public FindByIndexNameSessionRepository sessionRepository() { @@ -162,15 +162,15 @@ private HazelcastIndexedSessionRepository createHazelcastIndexedSessionRepositor sessionRepository.setDefaultMaxInactiveInterval(this.maxInactiveInterval); sessionRepository.setFlushMode(this.flushMode); sessionRepository.setSaveMode(this.saveMode); - sessionRepository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + sessionRepository.setSessionIdGenerator(this.sessionIdGenerator); this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; } @Autowired(required = false) - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; } } diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java index 73215f68e..35ede8048 100644 --- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java +++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java @@ -467,7 +467,7 @@ void saveWithSaveModeAlways() { @Test void createSessionWhenSessionIdGenerationStrategyThenUses() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); HazelcastSession session = this.repository.createSession(); assertThat(session.getId()).isEqualTo("test"); assertThat(session.changeSessionId()).isEqualTo("test"); @@ -475,13 +475,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { @Test void setSessionIdGenerationStrategyWhenNullThenThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) - .withMessage("sessionIdGenerationStrategy cannot be null"); + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) + .withMessage("sessionIdGenerator cannot be null"); } @Test void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); MapSession saved = new MapSession("original"); saved.setAttribute("savedName", "savedValue"); given(this.sessions.get(eq(saved.getId()))).willReturn(saved); diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java index 062930ca4..b241daaad 100644 --- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java +++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java @@ -36,8 +36,8 @@ import org.springframework.session.IndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.hazelcast.HazelcastIndexedSessionRepository; import org.springframework.session.hazelcast.config.annotation.SpringSessionHazelcastInstance; @@ -245,8 +245,7 @@ void registerWhenSessionIdGenerationStrategyBeanThenUses() { registerAndRefresh(DefaultConfiguration.class, SessionIdGenerationStrategyConfiguration.class); HazelcastIndexedSessionRepository sessionRepository = this.context .getBean(HazelcastIndexedSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(TestSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test @@ -254,8 +253,7 @@ void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { registerAndRefresh(DefaultConfiguration.class); HazelcastIndexedSessionRepository sessionRepository = this.context .getBean(HazelcastIndexedSessionRepository.class); - assertThat(sessionRepository).extracting("sessionIdGenerationStrategy") - .isInstanceOf(UuidSessionIdGenerationStrategy.class); + assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); } private void registerAndRefresh(Class... annotatedClasses) { @@ -489,13 +487,13 @@ SessionRepositoryCustomizer sessionRepository static class SessionIdGenerationStrategyConfiguration { @Bean - SessionIdGenerationStrategy sessionIdGenerationStrategy() { - return new TestSessionIdGenerationStrategy(); + SessionIdGenerator sessionIdGenerationStrategy() { + return new TestSessionIdGenerator(); } } - static class TestSessionIdGenerationStrategy implements SessionIdGenerationStrategy { + static class TestSessionIdGenerator implements SessionIdGenerator { @Override public String generate() { diff --git a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcIndexedSessionRepository.java b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcIndexedSessionRepository.java index 5c40be5ca..afee9d832 100644 --- a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcIndexedSessionRepository.java +++ b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/JdbcIndexedSessionRepository.java @@ -62,8 +62,8 @@ import org.springframework.session.PrincipalNameIndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.transaction.support.TransactionOperations; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -254,7 +254,7 @@ public class JdbcIndexedSessionRepository implements private ThreadPoolTaskScheduler taskScheduler; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); /** * Create a new {@link JdbcIndexedSessionRepository} instance which uses the provided @@ -465,7 +465,7 @@ public void setCleanupCron(String cleanupCron) { @Override public JdbcSession createSession() { - MapSession delegate = new MapSession(this.sessionIdGenerationStrategy); + MapSession delegate = new MapSession(this.sessionIdGenerator); delegate.setMaxInactiveInterval(this.defaultMaxInactiveInterval); JdbcSession session = new JdbcSession(delegate, UUID.randomUUID().toString(), true); session.flushIfRequired(); @@ -691,13 +691,13 @@ private Object deserialize(byte[] bytes) { } /** - * Set the {@link SessionIdGenerationStrategy} to use to generate session ids. - * @param sessionIdGenerationStrategy the {@link SessionIdGenerationStrategy} to use + * Set the {@link SessionIdGenerator} to use to generate session ids. + * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @since 3.2 */ - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - Assert.notNull(sessionIdGenerationStrategy, "sessionIdGenerationStrategy cannot be null"); - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; } private enum DeltaValue { @@ -787,7 +787,7 @@ public String getId() { @Override public String changeSessionId() { this.changed = true; - String newSessionId = JdbcIndexedSessionRepository.this.sessionIdGenerationStrategy.generate(); + String newSessionId = JdbcIndexedSessionRepository.this.sessionIdGenerator.generate(); this.delegate.setId(newSessionId); return newSessionId; } diff --git a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java index e937c1151..2e3b286f1 100644 --- a/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java +++ b/spring-session-jdbc/src/main/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfiguration.java @@ -50,8 +50,8 @@ import org.springframework.session.MapSession; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.SessionRepositoryCustomizer; import org.springframework.session.config.annotation.web.http.SpringHttpSessionConfiguration; import org.springframework.session.jdbc.JdbcIndexedSessionRepository; @@ -111,7 +111,7 @@ public class JdbcHttpSessionConfiguration implements BeanClassLoaderAware, Embed private StringValueResolver embeddedValueResolver; - private SessionIdGenerationStrategy sessionIdGenerationStrategy = UuidSessionIdGenerationStrategy.getInstance(); + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); @Bean public JdbcIndexedSessionRepository sessionRepository() { @@ -148,7 +148,7 @@ else if (this.conversionService != null) { else { sessionRepository.setConversionService(createConversionServiceWithBeanClassLoader(this.classLoader)); } - sessionRepository.setSessionIdGenerationStrategy(this.sessionIdGenerationStrategy); + sessionRepository.setSessionIdGenerator(this.sessionIdGenerator); this.sessionRepositoryCustomizers .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -241,8 +241,8 @@ public void setSessionRepositoryCustomizer( } @Autowired(required = false) - public void setSessionIdGenerationStrategy(SessionIdGenerationStrategy sessionIdGenerationStrategy) { - this.sessionIdGenerationStrategy = sessionIdGenerationStrategy; + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; } @Override diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerationStrategy.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerator.java similarity index 79% rename from spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerationStrategy.java rename to spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerator.java index e4872a2df..12657acd9 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerationStrategy.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/FixedSessionIdGenerator.java @@ -16,13 +16,13 @@ package org.springframework.session.jdbc; -import org.springframework.session.SessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; -public class FixedSessionIdGenerationStrategy implements SessionIdGenerationStrategy { +public class FixedSessionIdGenerator implements SessionIdGenerator { private final String id; - public FixedSessionIdGenerationStrategy(String id) { + public FixedSessionIdGenerator(String id) { this.id = id; } diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java index e2d9d51ed..4e8533bcb 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java @@ -265,8 +265,8 @@ void setCleanupCronDisabled() { @Test void setSessionIdGenerationStrategyWhenNullThenException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) - .withMessage("sessionIdGenerationStrategy cannot be null"); + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) + .withMessage("sessionIdGenerator cannot be null"); } @Test @@ -777,7 +777,7 @@ void saveAndFreeTemporaryLob() { @Test void createSessionWhenSessionIdGenerationStrategyThenUses() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); JdbcSession session = this.repository.createSession(); assertThat(session.getId()).isEqualTo("test"); assertThat(session.changeSessionId()).isEqualTo("test"); @@ -785,13 +785,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { @Test void setSessionIdGenerationStrategyWhenNullThenThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerationStrategy(null)) - .withMessage("sessionIdGenerationStrategy cannot be null"); + assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) + .withMessage("sessionIdGenerator cannot be null"); } @Test void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { - this.repository.setSessionIdGenerationStrategy(() -> "test"); + this.repository.setSessionIdGenerator(() -> "test"); Session saved = this.repository.new JdbcSession(new MapSession(), "primaryKey", false); saved.setAttribute("savedName", "savedValue"); given(this.jdbcOperations.query(isA(String.class), isA(PreparedStatementSetter.class), diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java index 8b9892c83..bfdc376c7 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java @@ -43,10 +43,10 @@ import org.springframework.session.IndexResolver; import org.springframework.session.SaveMode; import org.springframework.session.Session; -import org.springframework.session.SessionIdGenerationStrategy; -import org.springframework.session.UuidSessionIdGenerationStrategy; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.config.SessionRepositoryCustomizer; -import org.springframework.session.jdbc.FixedSessionIdGenerationStrategy; +import org.springframework.session.jdbc.FixedSessionIdGenerator; import org.springframework.session.jdbc.JdbcIndexedSessionRepository; import org.springframework.session.jdbc.config.annotation.SpringSessionDataSource; import org.springframework.test.util.ReflectionTestUtils; @@ -325,18 +325,18 @@ void importConfigAndCustomize() { void sessionIdGenerationStrategyWhenCustomBeanThenUses() { registerAndRefresh(DataSourceConfiguration.class, CustomSessionIdGenerationStrategyConfiguration.class); JdbcIndexedSessionRepository sessionRepository = this.context.getBean(JdbcIndexedSessionRepository.class); - SessionIdGenerationStrategy sessionIdGenerationStrategy = (SessionIdGenerationStrategy) ReflectionTestUtils - .getField(sessionRepository, "sessionIdGenerationStrategy"); - assertThat(sessionIdGenerationStrategy).isInstanceOf(FixedSessionIdGenerationStrategy.class); + SessionIdGenerator sessionIdGenerator = (SessionIdGenerator) ReflectionTestUtils.getField(sessionRepository, + "sessionIdGenerator"); + assertThat(sessionIdGenerator).isInstanceOf(FixedSessionIdGenerator.class); } @Test void sessionIdGenerationStrategyWhenNoBeanThenDefault() { registerAndRefresh(DataSourceConfiguration.class, DefaultConfiguration.class); JdbcIndexedSessionRepository sessionRepository = this.context.getBean(JdbcIndexedSessionRepository.class); - SessionIdGenerationStrategy sessionIdGenerationStrategy = (SessionIdGenerationStrategy) ReflectionTestUtils - .getField(sessionRepository, "sessionIdGenerationStrategy"); - assertThat(sessionIdGenerationStrategy).isInstanceOf(UuidSessionIdGenerationStrategy.class); + SessionIdGenerator sessionIdGenerator = (SessionIdGenerator) ReflectionTestUtils.getField(sessionRepository, + "sessionIdGenerator"); + assertThat(sessionIdGenerator).isInstanceOf(UuidSessionIdGenerator.class); } private void registerAndRefresh(Class... annotatedClasses) { @@ -349,8 +349,8 @@ private void registerAndRefresh(Class... annotatedClasses) { static class CustomSessionIdGenerationStrategyConfiguration { @Bean - SessionIdGenerationStrategy sessionIdGenerationStrategy() { - return new FixedSessionIdGenerationStrategy("my-id"); + SessionIdGenerator sessionIdGenerationStrategy() { + return new FixedSessionIdGenerator("my-id"); } } From 21ab473b2aa8e44c86a382af0f548f55724ba228 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Thu, 10 Aug 2023 11:54:42 -0300 Subject: [PATCH 035/579] Do not block when generating redis session id Closes gh-2393 --- .../redis/ReactiveRedisSessionRepository.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java index ea6769c57..84460599a 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java @@ -24,6 +24,7 @@ import org.reactivestreams.Publisher; import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; import org.springframework.core.NestedExceptionUtils; import org.springframework.data.redis.core.ReactiveRedisOperations; @@ -123,12 +124,16 @@ public ReactiveRedisOperations getSessionRedisOperations() { @Override public Mono createSession() { - return Mono.defer(() -> { - MapSession cached = new MapSession(this.sessionIdGenerator); - cached.setMaxInactiveInterval(this.defaultMaxInactiveInterval); - RedisSession session = new RedisSession(cached, true); - return Mono.just(session); - }); + // @formatter:off + return Mono.fromSupplier(() -> this.sessionIdGenerator.generate()) + .subscribeOn(Schedulers.boundedElastic()) + .publishOn(Schedulers.parallel()) + .map((sessionId) -> { + MapSession cached = new MapSession(sessionId); + cached.setMaxInactiveInterval(this.defaultMaxInactiveInterval); + return new RedisSession(cached, true); + }); + // @formatter:on } @Override From b4e9af9ca463512f4240655aaeba141d70bf8353 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Fri, 11 Aug 2023 09:01:00 +0800 Subject: [PATCH 036/579] Avoid blocking on session id generation see https://github.com/spring-projects/spring-session/issues/2393 --- .../session/ReactiveMapSessionRepository.java | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java b/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java index 70fc9edf7..141349f9b 100644 --- a/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java +++ b/spring-session-core/src/main/java/org/springframework/session/ReactiveMapSessionRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -20,6 +20,7 @@ import java.util.Map; import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; import org.springframework.session.events.SessionDeletedEvent; import org.springframework.session.events.SessionExpiredEvent; @@ -37,6 +38,7 @@ *

* * @author Rob Winch + * @author Yanming Zhou * @since 2.0 */ public class ReactiveMapSessionRepository implements ReactiveSessionRepository { @@ -98,11 +100,17 @@ public Mono deleteById(String id) { @Override public Mono createSession() { - return Mono.defer(() -> { - MapSession result = new MapSession(this.sessionIdGenerator); - result.setMaxInactiveInterval(this.defaultMaxInactiveInterval); - return Mono.just(result); - }); + // @formatter:off + return Mono.fromSupplier(() -> this.sessionIdGenerator.generate()) + .subscribeOn(Schedulers.boundedElastic()) + .publishOn(Schedulers.parallel()) + .map((sessionId) -> { + MapSession result = new MapSession(sessionId); + result.setMaxInactiveInterval(this.defaultMaxInactiveInterval); + result.setSessionIdGenerator(this.sessionIdGenerator); + return result; + }); + // @formatter:on } /** From f7662b03b3861827710255b3731b35f47e68e9e9 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Mon, 7 Aug 2023 13:13:44 +0800 Subject: [PATCH 037/579] Continue renaming SessionIdGenerationStrategy to SessionIdGenerator --- .../org/springframework/session/MapSessionTests.java | 4 ++-- .../session/ReactiveMapSessionRepositoryTests.java | 8 ++++---- .../mongo/MongoIndexedSessionRepositoryTest.java | 8 ++++---- .../mongo/ReactiveMongoSessionRepositoryTest.java | 8 ++++---- .../web/http/MongoHttpSessionConfigurationTest.java | 12 ++++++------ .../ReactiveMongoWebSessionConfigurationTest.java | 12 ++++++------ .../redis/ReactiveRedisSessionRepositoryTests.java | 8 ++++---- .../redis/RedisIndexedSessionRepositoryTests.java | 8 ++++---- .../data/redis/RedisSessionRepositoryTests.java | 8 ++++---- .../http/RedisHttpsSessionConfigurationTests.java | 12 ++++++------ .../RedisIndexedHttpSessionConfigurationTests.java | 12 ++++++------ .../HazelcastIndexedSessionRepositoryTests.java | 8 ++++---- .../http/HazelcastHttpSessionConfigurationTests.java | 12 ++++++------ .../jdbc/JdbcIndexedSessionRepositoryTests.java | 10 +++++----- .../web/http/JdbcHttpSessionConfigurationTests.java | 12 ++++++------ 15 files changed, 71 insertions(+), 71 deletions(-) diff --git a/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java b/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java index 8ece096e1..ce6d2cd36 100644 --- a/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/MapSessionTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-2023 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. @@ -44,7 +44,7 @@ void constructorNullSession() { } @Test - void constructorWhenSessionIdGenerationStrategyThenUsesStrategy() { + void constructorWhenSessionIdGeneratorThenUsesStrategy() { MapSession session = new MapSession(new FixedSessionIdGenerator("my-id")); assertThat(session.getId()).isEqualTo("my-id"); } diff --git a/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java b/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java index 96a4d3ae2..7e4933c3c 100644 --- a/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/ReactiveMapSessionRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -153,7 +153,7 @@ void getAttributeNamesAndRemove() { } @Test - void createSessionWhenSessionIdGenerationStrategyThenUses() { + void createSessionWhenSessionIdGeneratorThenUses() { this.repository.setSessionIdGenerator(() -> "test"); MapSession session = this.repository.createSession().block(); assertThat(session.getId()).isEqualTo("test"); @@ -161,13 +161,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { } @Test - void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + void setSessionIdGeneratorWhenNullThenThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) .withMessage("sessionIdGenerator cannot be null"); } @Test - void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.repository.setSessionIdGenerator(() -> "test"); MapSession session = this.repository.createSession().block(); diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java index 05b4bdc46..a9e86ad58 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -212,7 +212,7 @@ void shouldReturnEmptyMapForNotSupportedIndex() { } @Test - void createSessionWhenSessionIdGenerationStrategyThenUses() { + void createSessionWhenSessionIdGeneratorThenUses() { this.repository.setSessionIdGenerator(new FixedSessionIdGenerator("123")); MongoSession session = this.repository.createSession(); assertThat(session.getId()).isEqualTo("123"); @@ -220,12 +220,12 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { } @Test - void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + void setSessionIdGeneratorWhenNullThenThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)); } @Test - void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.repository.setSessionIdGenerator(new FixedSessionIdGenerator("456")); Document sessionDocument = new Document(); diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java index d070fbbf3..9e15d382f 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -212,7 +212,7 @@ void shouldInvokeMethodToCreateIndexesImperatively() { } @Test - void createSessionWhenSessionIdGenerationStrategyThenUses() { + void createSessionWhenSessionIdGeneratorThenUses() { this.repository.setSessionIdGenerator(() -> "test"); this.repository.createSession().as(StepVerifier::create).assertNext((mongoSession) -> { @@ -222,13 +222,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { } @Test - void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + void setSessionIdGeneratorWhenNullThenThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) .withMessage("sessionIdGenerator cannot be null"); } @Test - void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.repository.setSessionIdGenerator(() -> "test"); String sessionId = UUID.randomUUID().toString(); diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java index 1cd48e122..d21c02163 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -203,14 +203,14 @@ void importConfigAndCustomize() { } @Test - void registerWhenSessionIdGenerationStrategyBeanThenUses() { - registerAndRefresh(SessionIdGenerationStrategyConfiguration.class); + void registerWhenSessionIdGeneratorBeanThenUses() { + registerAndRefresh(SessionIdGeneratorConfiguration.class); MongoIndexedSessionRepository sessionRepository = this.context.getBean(MongoIndexedSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test - void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + void registerWhenNoSessionIdGeneratorBeanThenDefault() { registerAndRefresh(DefaultConfiguration.class); MongoIndexedSessionRepository sessionRepository = this.context.getBean(MongoIndexedSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); @@ -369,10 +369,10 @@ SessionRepositoryCustomizer sessionRepositoryCust @Configuration(proxyBeanMethods = false) @EnableMongoHttpSession @Import(MongoConfiguration.class) - static class SessionIdGenerationStrategyConfiguration { + static class SessionIdGeneratorConfiguration { @Bean - SessionIdGenerator sessionIdGenerationStrategy() { + SessionIdGenerator sessionIdGenerator() { return new TestSessionIdGenerator(); } diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java index 6067db9ad..8b46c1231 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -225,14 +225,14 @@ void importConfigAndCustomize() { } @Test - void registerWhenSessionIdGenerationStrategyBeanThenUses() { - registerAndRefresh(GoodConfig.class, SessionIdGenerationStrategyConfiguration.class); + void registerWhenSessionIdGeneratorBeanThenUses() { + registerAndRefresh(GoodConfig.class, SessionIdGeneratorConfiguration.class); ReactiveMongoSessionRepository sessionRepository = this.context.getBean(ReactiveMongoSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test - void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + void registerWhenNoSessionIdGeneratorBeanThenDefault() { registerAndRefresh(GoodConfig.class); ReactiveMongoSessionRepository sessionRepository = this.context.getBean(ReactiveMongoSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); @@ -434,10 +434,10 @@ ReactiveSessionRepositoryCustomizer sessionRepos } @Configuration(proxyBeanMethods = false) - static class SessionIdGenerationStrategyConfiguration { + static class SessionIdGeneratorConfiguration { @Bean - SessionIdGenerator sessionIdGenerationStrategy() { + SessionIdGenerator sessionIdGenerator() { return new TestSessionIdGenerator(); } diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java index 0afea0d35..baa6d14d2 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -439,7 +439,7 @@ void saveWithSaveModeAlways() { } @Test - void createSessionWhenSessionIdGenerationStrategyThenUses() { + void createSessionWhenSessionIdGeneratorThenUses() { this.repository.setSessionIdGenerator(() -> "test"); this.repository.createSession().as(StepVerifier::create).assertNext((redisSession) -> { @@ -449,14 +449,14 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { } @Test - void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + void setSessionIdGeneratorWhenNullThenThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) .withMessage("sessionIdGenerator cannot be null"); } @Test @SuppressWarnings("unchecked") - void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.repository.setSessionIdGenerator(() -> "changed-session-id"); given(this.redisOperations.opsForHash()).willReturn(this.hashOperations); String attribute1 = "attribute1"; diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java index 0b8493e65..f580a543a 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -911,7 +911,7 @@ void saveWithSaveModeAlways() { } @Test - void createSessionWhenSessionIdGenerationStrategyThenUses() { + void createSessionWhenSessionIdGeneratorThenUses() { this.redisRepository.setSessionIdGenerator(() -> "test"); RedisSession session = this.redisRepository.createSession(); assertThat(session.getId()).isEqualTo("test"); @@ -919,13 +919,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { } @Test - void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + void setSessionIdGeneratorWhenNullThenThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> this.redisRepository.setSessionIdGenerator(null)) .withMessage("sessionIdGenerator cannot be null"); } @Test - void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.redisRepository.setSessionIdGenerator(() -> "test"); String attribute1 = "attribute1"; String attribute2 = "attribute2"; diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java index 58e3c607c..6f930b727 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -374,7 +374,7 @@ void getSessionRedisOperations__ShouldReturnRedisOperations() { } @Test - void createSessionWhenSessionIdGenerationStrategyThenUses() { + void createSessionWhenSessionIdGeneratorThenUses() { this.sessionRepository.setSessionIdGenerator(() -> "test"); RedisSessionRepository.RedisSession session = this.sessionRepository.createSession(); assertThat(session.getId()).isEqualTo("test"); @@ -382,13 +382,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { } @Test - void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + void setSessionIdGeneratorWhenNullThenThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> this.sessionRepository.setSessionIdGenerator(null)) .withMessage("sessionIdGenerator cannot be null"); } @Test - void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.sessionRepository.setSessionIdGenerator(() -> "test"); Instant now = Instant.now().truncatedTo(ChronoUnit.MILLIS); given(this.sessionHashOperations.entries(eq(TEST_SESSION_KEY))) diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java index 2de2c4284..b1d273585 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpsSessionConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -209,14 +209,14 @@ void importConfigAndCustomize() { } @Test - void registerWhenSessionIdGenerationStrategyBeanThenUses() { - registerAndRefresh(RedisConfig.class, SessionIdGenerationStrategyConfiguration.class); + void registerWhenSessionIdGeneratorBeanThenUses() { + registerAndRefresh(RedisConfig.class, SessionIdGeneratorConfiguration.class); RedisSessionRepository sessionRepository = this.context.getBean(RedisSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test - void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + void registerWhenNoSessionIdGeneratorBeanThenDefault() { registerAndRefresh(RedisConfig.class, DefaultConfiguration.class); RedisSessionRepository sessionRepository = this.context.getBean(RedisSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); @@ -399,10 +399,10 @@ SessionRepositoryCustomizer sessionRepositoryCustomizer( @Configuration(proxyBeanMethods = false) @EnableRedisHttpSession - static class SessionIdGenerationStrategyConfiguration { + static class SessionIdGeneratorConfiguration { @Bean - SessionIdGenerator sessionIdGenerationStrategy() { + SessionIdGenerator sessionIdGenerator() { return new TestSessionIdGenerator(); } diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java index 2183e3ad0..161f406be 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -243,14 +243,14 @@ void importConfigAndCustomize() { } @Test - void registerWhenSessionIdGenerationStrategyBeanThenUses() { - registerAndRefresh(RedisConfig.class, SessionIdGenerationStrategyConfiguration.class); + void registerWhenSessionIdGeneratorBeanThenUses() { + registerAndRefresh(RedisConfig.class, SessionIdGeneratorConfiguration.class); RedisIndexedSessionRepository sessionRepository = this.context.getBean(RedisIndexedSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test - void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + void registerWhenNoSessionIdGeneratorBeanThenDefault() { registerAndRefresh(RedisConfig.class, DefaultConfiguration.class); RedisIndexedSessionRepository sessionRepository = this.context.getBean(RedisIndexedSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(UuidSessionIdGenerator.class); @@ -462,10 +462,10 @@ SessionRepositoryCustomizer sessionRepositoryCust @Configuration(proxyBeanMethods = false) @EnableRedisIndexedHttpSession - static class SessionIdGenerationStrategyConfiguration { + static class SessionIdGeneratorConfiguration { @Bean - SessionIdGenerator sessionIdGenerationStrategy() { + SessionIdGenerator sessionIdGenerator() { return new TestSessionIdGenerator(); } diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java index 35ede8048..5865ce8cf 100644 --- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java +++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -466,7 +466,7 @@ void saveWithSaveModeAlways() { } @Test - void createSessionWhenSessionIdGenerationStrategyThenUses() { + void createSessionWhenSessionIdGeneratorThenUses() { this.repository.setSessionIdGenerator(() -> "test"); HazelcastSession session = this.repository.createSession(); assertThat(session.getId()).isEqualTo("test"); @@ -474,13 +474,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { } @Test - void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + void setSessionIdGeneratorWhenNullThenThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) .withMessage("sessionIdGenerator cannot be null"); } @Test - void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.repository.setSessionIdGenerator(() -> "test"); MapSession saved = new MapSession("original"); saved.setAttribute("savedName", "savedValue"); diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java index b241daaad..413340e22 100644 --- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java +++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/config/annotation/web/http/HazelcastHttpSessionConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -241,15 +241,15 @@ void importConfigAndCustomize() { } @Test - void registerWhenSessionIdGenerationStrategyBeanThenUses() { - registerAndRefresh(DefaultConfiguration.class, SessionIdGenerationStrategyConfiguration.class); + void registerWhenSessionIdGeneratorBeanThenUses() { + registerAndRefresh(DefaultConfiguration.class, SessionIdGeneratorConfiguration.class); HazelcastIndexedSessionRepository sessionRepository = this.context .getBean(HazelcastIndexedSessionRepository.class); assertThat(sessionRepository).extracting("sessionIdGenerator").isInstanceOf(TestSessionIdGenerator.class); } @Test - void registerWhenNoSessionIdGenerationStrategyBeanThenDefault() { + void registerWhenNoSessionIdGeneratorBeanThenDefault() { registerAndRefresh(DefaultConfiguration.class); HazelcastIndexedSessionRepository sessionRepository = this.context .getBean(HazelcastIndexedSessionRepository.class); @@ -484,10 +484,10 @@ SessionRepositoryCustomizer sessionRepository } @Configuration(proxyBeanMethods = false) - static class SessionIdGenerationStrategyConfiguration { + static class SessionIdGeneratorConfiguration { @Bean - SessionIdGenerator sessionIdGenerationStrategy() { + SessionIdGenerator sessionIdGenerator() { return new TestSessionIdGenerator(); } diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java index 4e8533bcb..159e5982a 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -264,7 +264,7 @@ void setCleanupCronDisabled() { } @Test - void setSessionIdGenerationStrategyWhenNullThenException() { + void setSessionIdGeneratorWhenNullThenException() { assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) .withMessage("sessionIdGenerator cannot be null"); } @@ -776,7 +776,7 @@ void saveAndFreeTemporaryLob() { } @Test - void createSessionWhenSessionIdGenerationStrategyThenUses() { + void createSessionWhenSessionIdGeneratorThenUses() { this.repository.setSessionIdGenerator(() -> "test"); JdbcSession session = this.repository.createSession(); assertThat(session.getId()).isEqualTo("test"); @@ -784,13 +784,13 @@ void createSessionWhenSessionIdGenerationStrategyThenUses() { } @Test - void setSessionIdGenerationStrategyWhenNullThenThrowsException() { + void setSessionIdGeneratorWhenNullThenThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> this.repository.setSessionIdGenerator(null)) .withMessage("sessionIdGenerator cannot be null"); } @Test - void findByIdWhenChangeSessionIdThenUsesSessionIdGenerationStrategy() { + void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.repository.setSessionIdGenerator(() -> "test"); Session saved = this.repository.new JdbcSession(new MapSession(), "primaryKey", false); saved.setAttribute("savedName", "savedValue"); diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java index bfdc376c7..8d1ccead4 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -322,8 +322,8 @@ void importConfigAndCustomize() { } @Test - void sessionIdGenerationStrategyWhenCustomBeanThenUses() { - registerAndRefresh(DataSourceConfiguration.class, CustomSessionIdGenerationStrategyConfiguration.class); + void sessionIdGeneratorWhenCustomBeanThenUses() { + registerAndRefresh(DataSourceConfiguration.class, CustomSessionIdGeneratorConfiguration.class); JdbcIndexedSessionRepository sessionRepository = this.context.getBean(JdbcIndexedSessionRepository.class); SessionIdGenerator sessionIdGenerator = (SessionIdGenerator) ReflectionTestUtils.getField(sessionRepository, "sessionIdGenerator"); @@ -331,7 +331,7 @@ void sessionIdGenerationStrategyWhenCustomBeanThenUses() { } @Test - void sessionIdGenerationStrategyWhenNoBeanThenDefault() { + void sessionIdGeneratorWhenNoBeanThenDefault() { registerAndRefresh(DataSourceConfiguration.class, DefaultConfiguration.class); JdbcIndexedSessionRepository sessionRepository = this.context.getBean(JdbcIndexedSessionRepository.class); SessionIdGenerator sessionIdGenerator = (SessionIdGenerator) ReflectionTestUtils.getField(sessionRepository, @@ -346,10 +346,10 @@ private void registerAndRefresh(Class... annotatedClasses) { @Configuration(proxyBeanMethods = false) @EnableJdbcHttpSession - static class CustomSessionIdGenerationStrategyConfiguration { + static class CustomSessionIdGeneratorConfiguration { @Bean - SessionIdGenerator sessionIdGenerationStrategy() { + SessionIdGenerator sessionIdGenerator() { return new FixedSessionIdGenerator("my-id"); } From b1a1b629147e9f9deab396a862e6cd4817454363 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Thu, 10 Aug 2023 15:51:41 +0800 Subject: [PATCH 038/579] Use spring-boot's @ServiceConnection --- ...ession-sample-boot-mongodb-reactive.gradle | 11 ++--- .../mongodb/examples/MongoDbConfig.java | 37 ++++++++++++++++ ...SpringSessionMongoReactiveApplication.java | 43 +------------------ .../mongodb/examples/AttributeTests.java | 6 +-- ...ion-sample-boot-mongodb-traditional.gradle | 11 ++--- .../SpringSessionMongoTraditionalBoot.java | 43 +------------------ .../examples/config/MongoDbConfig.java | 37 ++++++++++++++++ .../session/mongodb/examples/BootTests.java | 9 +--- 8 files changed, 93 insertions(+), 104 deletions(-) create mode 100644 spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/MongoDbConfig.java create mode 100644 spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/config/MongoDbConfig.java diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/spring-session-sample-boot-mongodb-reactive.gradle b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/spring-session-sample-boot-mongodb-reactive.gradle index cfca69a5b..7cf2b4284 100644 --- a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/spring-session-sample-boot-mongodb-reactive.gradle +++ b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/spring-session-sample-boot-mongodb-reactive.gradle @@ -1,11 +1,12 @@ apply plugin: 'io.spring.convention.spring-sample-boot' dependencies { - implementation project(':spring-session-data-mongodb') - implementation "org.springframework.boot:spring-boot-starter-webflux" - implementation "org.springframework.boot:spring-boot-starter-thymeleaf" - implementation "org.springframework.boot:spring-boot-starter-data-mongodb-reactive" - implementation "org.testcontainers:mongodb" + implementation project(':spring-session-data-mongodb') + implementation "org.springframework.boot:spring-boot-starter-webflux" + implementation "org.springframework.boot:spring-boot-starter-thymeleaf" + implementation "org.springframework.boot:spring-boot-starter-data-mongodb-reactive" + implementation "org.springframework.boot:spring-boot-testcontainers" + implementation "org.testcontainers:mongodb" testImplementation "org.springframework.boot:spring-boot-starter-test" testImplementation "org.seleniumhq.selenium:htmlunit-driver" diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/MongoDbConfig.java b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/MongoDbConfig.java new file mode 100644 index 000000000..14bab6d17 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/MongoDbConfig.java @@ -0,0 +1,37 @@ +/* + * Copyright 2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.mongodb.examples; + +import org.testcontainers.containers.MongoDBContainer; + +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Yanming Zhou + */ +@Configuration(proxyBeanMethods = false) +public class MongoDbConfig { + + @Bean + @ServiceConnection + MongoDBContainer mongoDbContainer() { + return new MongoDBContainer("mongo:5.0.11"); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoReactiveApplication.java b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoReactiveApplication.java index f1c55a26e..fb8fca91b 100644 --- a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoReactiveApplication.java +++ b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoReactiveApplication.java @@ -16,17 +16,8 @@ package org.springframework.session.mongodb.examples; -import java.util.HashMap; -import java.util.Map; - -import org.testcontainers.containers.MongoDBContainer; - import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.core.env.MapPropertySource; import org.springframework.session.data.mongo.config.annotation.web.reactive.EnableMongoWebSession; /** @@ -35,44 +26,14 @@ * * @author Rob Winch * @author Greg Turnquist + * @author Yanming Zhou */ @SpringBootApplication @EnableMongoWebSession public class SpringSessionMongoReactiveApplication { public static void main(String[] args) { - SpringApplication application = new SpringApplication(SpringSessionMongoReactiveApplication.class); - application.addInitializers(new Initializer()); - application.run(args); - } - - /** - * Use Testcontainers to managed MongoDB through Docker. - *

- * - * @see Local - * Development with Testcontainers - */ - static class Initializer implements ApplicationContextInitializer { - - static MongoDBContainer mongo = new MongoDBContainer("mongo:5.0.11"); - - private static Map getProperties() { - mongo.start(); - - HashMap properties = new HashMap<>(); - properties.put("spring.data.mongodb.host", mongo.getHost()); - properties.put("spring.data.mongodb.port", mongo.getFirstMappedPort() + ""); - return properties; - } - - @Override - public void initialize(ConfigurableApplicationContext context) { - ConfigurableEnvironment env = context.getEnvironment(); - env.getPropertySources().addFirst(new MapPropertySource("testcontainers", (Map) getProperties())); - } - + SpringApplication.run(SpringSessionMongoReactiveApplication.class, args); } } diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/test/java/org/springframework/session/mongodb/examples/AttributeTests.java b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/test/java/org/springframework/session/mongodb/examples/AttributeTests.java index 00468e158..b5aed7dcc 100644 --- a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/test/java/org/springframework/session/mongodb/examples/AttributeTests.java +++ b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/test/java/org/springframework/session/mongodb/examples/AttributeTests.java @@ -21,7 +21,6 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.openqa.selenium.WebDriver; import org.openqa.selenium.htmlunit.HtmlUnitDriver; @@ -29,18 +28,15 @@ import org.springframework.boot.test.web.server.LocalServerPort; import org.springframework.session.mongodb.examples.pages.HomePage; import org.springframework.session.mongodb.examples.pages.HomePage.Attribute; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; import static org.assertj.core.api.Assertions.assertThat; /** * @author Eddú Meléndez * @author Rob Winch + * @author Yanming Zhou */ -@ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -@ContextConfiguration(initializers = SpringSessionMongoReactiveApplication.Initializer.class) public class AttributeTests { @LocalServerPort diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/spring-session-sample-boot-mongodb-traditional.gradle b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/spring-session-sample-boot-mongodb-traditional.gradle index d9ea2e902..5e91bbcd7 100644 --- a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/spring-session-sample-boot-mongodb-traditional.gradle +++ b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/spring-session-sample-boot-mongodb-traditional.gradle @@ -1,13 +1,14 @@ apply plugin: 'io.spring.convention.spring-sample-boot' dependencies { - implementation project(':spring-session-data-mongodb') - implementation "org.springframework.boot:spring-boot-starter-web" - implementation "org.springframework.boot:spring-boot-starter-thymeleaf" - implementation "nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect" - implementation "org.thymeleaf.extras:thymeleaf-extras-springsecurity6" + implementation project(':spring-session-data-mongodb') + implementation "org.springframework.boot:spring-boot-starter-web" + implementation "org.springframework.boot:spring-boot-starter-thymeleaf" + implementation "nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect" + implementation "org.thymeleaf.extras:thymeleaf-extras-springsecurity6" implementation "org.springframework.boot:spring-boot-starter-data-mongodb" implementation "org.springframework.boot:spring-boot-starter-security" + implementation "org.springframework.boot:spring-boot-testcontainers" implementation "org.testcontainers:mongodb" diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoTraditionalBoot.java b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoTraditionalBoot.java index a63334ddf..686c97467 100644 --- a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoTraditionalBoot.java +++ b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/SpringSessionMongoTraditionalBoot.java @@ -16,57 +16,18 @@ package org.springframework.session.mongodb.examples; -import java.util.HashMap; -import java.util.Map; - -import org.testcontainers.containers.MongoDBContainer; - import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.ApplicationContextInitializer; -import org.springframework.context.ConfigurableApplicationContext; -import org.springframework.core.env.ConfigurableEnvironment; -import org.springframework.core.env.MapPropertySource; /** * @author Rob Winch + * @author Yanming Zhou */ @SpringBootApplication public class SpringSessionMongoTraditionalBoot { public static void main(String[] args) { - SpringApplication application = new SpringApplication(SpringSessionMongoTraditionalBoot.class); - application.addInitializers(new Initializer()); - application.run(args); - } - - /** - * Use Testcontainers to managed MongoDB through Docker. - *

- * - * @see Local - * Developmenet with Testcontainers - */ - static class Initializer implements ApplicationContextInitializer { - - static MongoDBContainer mongo = new MongoDBContainer("mongo:5.0.11"); - - private static Map getProperties() { - mongo.start(); - - HashMap properties = new HashMap<>(); - properties.put("spring.data.mongodb.host", mongo.getHost()); - properties.put("spring.data.mongodb.port", mongo.getFirstMappedPort() + ""); - return properties; - } - - @Override - public void initialize(ConfigurableApplicationContext context) { - ConfigurableEnvironment env = context.getEnvironment(); - env.getPropertySources().addFirst(new MapPropertySource("testcontainers", (Map) getProperties())); - } - + SpringApplication.run(SpringSessionMongoTraditionalBoot.class, args); } } diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/config/MongoDbConfig.java b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/config/MongoDbConfig.java new file mode 100644 index 000000000..67330bfdb --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/main/java/org/springframework/session/mongodb/examples/config/MongoDbConfig.java @@ -0,0 +1,37 @@ +/* + * Copyright 2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.mongodb.examples.config; + +import org.testcontainers.containers.MongoDBContainer; + +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * @author Yanming Zhou + */ +@Configuration(proxyBeanMethods = false) +public class MongoDbConfig { + + @Bean + @ServiceConnection + MongoDBContainer mongoDbContainer() { + return new MongoDBContainer("mongo:5.0.11"); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/test/java/org/springframework/session/mongodb/examples/BootTests.java b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/test/java/org/springframework/session/mongodb/examples/BootTests.java index c91e193bf..c208098aa 100644 --- a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/test/java/org/springframework/session/mongodb/examples/BootTests.java +++ b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/test/java/org/springframework/session/mongodb/examples/BootTests.java @@ -21,7 +21,6 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; import org.openqa.selenium.By; import org.openqa.selenium.Cookie; import org.openqa.selenium.WebDriver; @@ -30,11 +29,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.session.mongodb.examples.pages.HomePage; import org.springframework.session.mongodb.examples.pages.LoginPage; -import org.springframework.test.context.ContextConfiguration; -import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.htmlunit.webdriver.MockMvcHtmlUnitDriverBuilder; @@ -42,11 +38,10 @@ /** * @author Pool Dolorier + * @author Yanming Zhou */ -@ExtendWith(SpringExtension.class) @AutoConfigureMockMvc -@SpringBootTest(webEnvironment = WebEnvironment.MOCK) -@ContextConfiguration(initializers = SpringSessionMongoTraditionalBoot.Initializer.class) +@SpringBootTest public class BootTests { @Autowired From c625e8a5bc6e987b8b7dfc31675ac32b7d1ac0aa Mon Sep 17 00:00:00 2001 From: limo520 Date: Mon, 25 Sep 2023 11:04:30 +0800 Subject: [PATCH 039/579] Update RedisIndexedSessionRepository javadoc it seems there is a missing ":" in RedisIndexedSessionRepository javadoc. --- .../session/data/redis/RedisIndexedSessionRepository.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java index 7cdbb1b39..70fe7982c 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java @@ -102,7 +102,7 @@ * APPEND spring:session:sessions:expires:33fdd1b6-b496-4b33-9f7d-df96679d32fe "" * EXPIRE spring:session:sessions:expires:33fdd1b6-b496-4b33-9f7d-df96679d32fe 1800 * SADD spring:session:expirations:1439245080000 expires:33fdd1b6-b496-4b33-9f7d-df96679d32fe - * EXPIRE spring:session:expirations1439245080000 2100 + * EXPIRE spring:session:expirations:1439245080000 2100 * * *

Saving a Session

@@ -237,7 +237,7 @@ * *
  * SADD spring:session:expirations:1439245080000 expires:33fdd1b6-b496-4b33-9f7d-df96679d32fe
- * EXPIRE spring:session:expirations1439245080000 2100
+ * EXPIRE spring:session:expirations:1439245080000 2100
  * 
* *

From 5dff8acbf354741d861deb11d1229fdd8d872647 Mon Sep 17 00:00:00 2001 From: 70825 Date: Sat, 2 Sep 2023 09:51:48 +0900 Subject: [PATCH 040/579] Update reference site link --- README.adoc | 2 +- spring-session-docs/modules/ROOT/pages/guides/java-jdbc.adoc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 41badb511..158b80fd8 100644 --- a/README.adoc +++ b/README.adoc @@ -25,7 +25,7 @@ Additional Spring Session modules can be found in the https://github.com/spring- == Getting Started -We recommend you visit the https://docs.spring.io/spring-session/docs/current/reference/html5/#samples[Spring Session Reference] and look through the "Samples and Guides" section to see which one best suits your needs. +We recommend you visit the https://docs.spring.io/spring-session/reference/[Spring Session Reference] and look through the "Samples and Guides" section to see which one best suits your needs. == Samples diff --git a/spring-session-docs/modules/ROOT/pages/guides/java-jdbc.adoc b/spring-session-docs/modules/ROOT/pages/guides/java-jdbc.adoc index 98feb40b9..be5ccc9d0 100644 --- a/spring-session-docs/modules/ROOT/pages/guides/java-jdbc.adoc +++ b/spring-session-docs/modules/ROOT/pages/guides/java-jdbc.adoc @@ -100,7 +100,7 @@ We configure the H2 database to create database tables by using the SQL script t <3> We create a `transactionManager` that manages transactions for previously configured `dataSource`. ==== -For additional information on how to configure data access related concerns, see the https://docs.spring.io/spring/docs/{spring-core-version}/spring-framework-reference/data-access.html[Spring Framework Reference Documentation]. +For additional information on how to configure data access related concerns, see the https://docs.spring.io/spring/docs/{spring-core-version}/reference/html/data-access.html[Spring Framework Reference Documentation]. == Java Servlet Container Initialization From 11ce4b45619e6f0abeeec6b09fc8e43c074105e4 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Wed, 23 Aug 2023 10:39:53 +0800 Subject: [PATCH 041/579] Polishing 1. fix deprecations 2. fix generics 3. use lambda instead of anonymous class 4. mark some fields as final --- .../gradle/maven/PublishLocalPlugin.java | 20 ++--- .../convention/JavadocApiPluginITest.java | 3 +- .../convention/SpringMavenPluginITest.java | 3 +- ...pringSessionBackedSessionRegistryTest.java | 3 +- .../http/OnCommittedResponseWrapperTests.java | 2 +- .../SpringSessionWebSessionStoreTests.java | 2 +- .../WebSocketRegistryListenerTests.java | 6 +- ...sionRepositoryMessageInterceptorTests.java | 2 +- ...bDeleteJacksonSessionVerificationTest.java | 88 ++++++++++--------- .../mongo/MongoDbLogoutVerificationTest.java | 27 +++--- .../session/data/mongo/MongoSession.java | 10 +-- .../RedisSessionExpirationPolicyTests.java | 2 +- .../redis/RedisSessionRepositoryTests.java | 6 +- ...exedHttpSessionConfigurationMockTests.java | 2 +- ...azelcastIndexedSessionRepositoryTests.java | 5 +- .../JdbcIndexedSessionRepositoryTests.java | 1 + .../JdbcHttpSessionConfigurationTests.java | 8 +- .../java/sample/config/WebSecurityConfig.java | 4 +- 18 files changed, 96 insertions(+), 98 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/gradle/maven/PublishLocalPlugin.java b/buildSrc/src/main/java/org/springframework/gradle/maven/PublishLocalPlugin.java index 54f9e4971..34dcaeda6 100644 --- a/buildSrc/src/main/java/org/springframework/gradle/maven/PublishLocalPlugin.java +++ b/buildSrc/src/main/java/org/springframework/gradle/maven/PublishLocalPlugin.java @@ -1,9 +1,7 @@ package org.springframework.gradle.maven; -import org.gradle.api.Action; import org.gradle.api.Plugin; import org.gradle.api.Project; -import org.gradle.api.artifacts.repositories.MavenArtifactRepository; import org.gradle.api.publish.PublishingExtension; import org.gradle.api.publish.maven.plugins.MavenPublishPlugin; @@ -12,18 +10,12 @@ public class PublishLocalPlugin implements Plugin { @Override public void apply(Project project) { - project.getPlugins().withType(MavenPublishPlugin.class).all(new Action() { - @Override - public void execute(MavenPublishPlugin mavenPublish) { - PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class); - publishing.getRepositories().maven(new Action() { - @Override - public void execute(MavenArtifactRepository maven) { - maven.setName("local"); - maven.setUrl(new File(project.getRootProject().getBuildDir(), "publications/repos")); - } - }); - } + project.getPlugins().withType(MavenPublishPlugin.class).all(mavenPublish -> { + PublishingExtension publishing = project.getExtensions().getByType(PublishingExtension.class); + publishing.getRepositories().maven(maven -> { + maven.setName("local"); + maven.setUrl(new File(project.getRootProject().getBuildDir(), "publications/repos")); + }); }); } } diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginITest.java index ae43f3871..30bc5f07a 100644 --- a/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginITest.java +++ b/buildSrc/src/test/java/io/spring/gradle/convention/JavadocApiPluginITest.java @@ -9,6 +9,7 @@ import org.junit.jupiter.api.io.TempDir; import java.io.File; +import java.nio.charset.Charset; import java.nio.file.Path; import static org.assertj.core.api.Assertions.assertThat; @@ -30,7 +31,7 @@ public void multiModuleApi() throws Exception { File allClasses = new File(testKit.getRootDir(), "build/api/allclasses-noframe.html"); File index = new File(testKit.getRootDir(), "build/api/allclasses-index.html"); File listing = allClasses.exists() ? allClasses : index; - String listingText = FileUtils.readFileToString(listing); + String listingText = FileUtils.readFileToString(listing, Charset.defaultCharset()); assertThat(listingText).contains("sample/Api.html"); assertThat(listingText).contains("sample/Impl.html"); assertThat(listingText).doesNotContain("sample/Sample.html"); diff --git a/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java b/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java index 3f0855dd5..ef94edb85 100644 --- a/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java +++ b/buildSrc/src/test/java/io/spring/gradle/convention/SpringMavenPluginITest.java @@ -9,6 +9,7 @@ import org.junit.jupiter.api.io.TempDir; import java.io.File; +import java.nio.charset.Charset; import java.nio.file.Files; import java.nio.file.Path; import java.util.LinkedHashMap; @@ -56,6 +57,6 @@ public void signArchivesWhenInMemory() throws Exception { } public String getSigningKey() throws Exception { - return IOUtils.toString(getClass().getResource("/test-private.pgp")); + return IOUtils.toString(getClass().getResource("/test-private.pgp"), Charset.defaultCharset()); } } diff --git a/spring-session-core/src/test/java/org/springframework/session/security/SpringSessionBackedSessionRegistryTest.java b/spring-session-core/src/test/java/org/springframework/session/security/SpringSessionBackedSessionRegistryTest.java index 35ef46c50..03041464a 100644 --- a/spring-session-core/src/test/java/org/springframework/session/security/SpringSessionBackedSessionRegistryTest.java +++ b/spring-session-core/src/test/java/org/springframework/session/security/SpringSessionBackedSessionRegistryTest.java @@ -30,6 +30,7 @@ import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; +import org.mockito.quality.Strictness; import org.springframework.security.core.AuthenticatedPrincipal; import org.springframework.security.core.Authentication; @@ -154,7 +155,7 @@ void expireNow() { private Session createSession(String sessionId, String userName, Instant lastAccessed) { MapSession session = new MapSession(sessionId); session.setLastAccessedTime(lastAccessed); - Authentication authentication = mock(Authentication.class, withSettings().lenient()); + Authentication authentication = mock(Authentication.class, withSettings().strictness(Strictness.LENIENT)); given(authentication.getName()).willReturn(userName); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(authentication); diff --git a/spring-session-core/src/test/java/org/springframework/session/web/http/OnCommittedResponseWrapperTests.java b/spring-session-core/src/test/java/org/springframework/session/web/http/OnCommittedResponseWrapperTests.java index 953e0551f..7efd19014 100644 --- a/spring-session-core/src/test/java/org/springframework/session/web/http/OnCommittedResponseWrapperTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/web/http/OnCommittedResponseWrapperTests.java @@ -39,7 +39,7 @@ class OnCommittedResponseWrapperTests { private static final String NL = "\r\n"; - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) HttpServletResponse delegate; @Mock diff --git a/spring-session-core/src/test/java/org/springframework/session/web/server/session/SpringSessionWebSessionStoreTests.java b/spring-session-core/src/test/java/org/springframework/session/web/server/session/SpringSessionWebSessionStoreTests.java index 6f14e514b..877e8b263 100644 --- a/spring-session-core/src/test/java/org/springframework/session/web/server/session/SpringSessionWebSessionStoreTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/web/server/session/SpringSessionWebSessionStoreTests.java @@ -47,7 +47,7 @@ @ExtendWith(MockitoExtension.class) class SpringSessionWebSessionStoreTests { - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) private ReactiveSessionRepository sessionRepository; @Mock diff --git a/spring-session-core/src/test/java/org/springframework/session/web/socket/handler/WebSocketRegistryListenerTests.java b/spring-session-core/src/test/java/org/springframework/session/web/socket/handler/WebSocketRegistryListenerTests.java index ec4ed1947..5c5d93f25 100644 --- a/spring-session-core/src/test/java/org/springframework/session/web/socket/handler/WebSocketRegistryListenerTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/web/socket/handler/WebSocketRegistryListenerTests.java @@ -48,13 +48,13 @@ @ExtendWith(MockitoExtension.class) class WebSocketRegistryListenerTests { - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) private WebSocketSession wsSession; - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) private WebSocketSession wsSession2; - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) private Message message; @Mock diff --git a/spring-session-core/src/test/java/org/springframework/session/web/socket/server/SessionRepositoryMessageInterceptorTests.java b/spring-session-core/src/test/java/org/springframework/session/web/socket/server/SessionRepositoryMessageInterceptorTests.java index ae576207a..5334039ac 100644 --- a/spring-session-core/src/test/java/org/springframework/session/web/socket/server/SessionRepositoryMessageInterceptorTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/web/socket/server/SessionRepositoryMessageInterceptorTests.java @@ -55,7 +55,7 @@ @ExtendWith(MockitoExtension.class) class SessionRepositoryMessageInterceptorTests { - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) SessionRepository sessionRepository; @Mock diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbDeleteJacksonSessionVerificationTest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbDeleteJacksonSessionVerificationTest.java index 8e3973405..1ee791ef8 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbDeleteJacksonSessionVerificationTest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbDeleteJacksonSessionVerificationTest.java @@ -36,6 +36,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; import org.springframework.security.config.web.server.ServerHttpSecurity; import org.springframework.security.core.userdetails.MapReactiveUserDetailsService; @@ -72,57 +73,62 @@ void setUp() { void logoutShouldDeleteOldSessionFromMongoDB() { // 1. Login and capture the SESSION cookie value. - + // @formatter:off FluxExchangeResult loginResult = this.client.post().uri("/login") - .contentType(MediaType.APPLICATION_FORM_URLENCODED) // - .body(BodyInserters // - .fromFormData("username", "admin") // - .with("password", "password")) // - .exchange() // + .contentType(MediaType.APPLICATION_FORM_URLENCODED) + .body(BodyInserters + .fromFormData("username", "admin") + .with("password", "password")) + .exchange() .returnResult(String.class); + // @formatter:on AssertionsForClassTypes.assertThat(loginResult.getResponseHeaders().getLocation()).isEqualTo(URI.create("/")); String originalSessionId = loginResult.getResponseCookies().getFirst("SESSION").getValue(); // 2. Fetch a protected resource using the SESSION cookie. - - this.client.get().uri("/hello") // - .cookie("SESSION", originalSessionId) // - .exchange() // - .expectStatus().isOk() // - .returnResult(String.class).getResponseBody() // - .as(StepVerifier::create) // - .expectNext("HelloWorld") // + // @formatter:off + this.client.get().uri("/hello") + .cookie("SESSION", originalSessionId) + .exchange() + .expectStatus().isOk() + .returnResult(String.class).getResponseBody() + .as(StepVerifier::create) + .expectNext("HelloWorld") .verifyComplete(); + // @formatter:on // 3. Logout using the SESSION cookie, and capture the new SESSION cookie. - - String newSessionId = this.client.post().uri("/logout") // - .cookie("SESSION", originalSessionId) // - .exchange() // - .expectStatus().isFound() // + // @formatter:off + String newSessionId = this.client.post().uri("/logout") + .cookie("SESSION", originalSessionId) + .exchange() + .expectStatus().isFound() .returnResult(String.class).getResponseCookies().getFirst("SESSION").getValue(); + // @formatter:on AssertionsForClassTypes.assertThat(newSessionId).isNotEqualTo(originalSessionId); // 4. Verify the new SESSION cookie is not yet authorized. - - this.client.get().uri("/hello") // - .cookie("SESSION", newSessionId) // - .exchange() // - .expectStatus().isFound() // + // @formatter:off + this.client.get().uri("/hello") + .cookie("SESSION", newSessionId) + .exchange() + .expectStatus().isFound() .expectHeader() .value(HttpHeaders.LOCATION, (value) -> AssertionsForClassTypes.assertThat(value).isEqualTo("/login")); + // @formatter:on // 5. Verify the original SESSION cookie no longer works. - - this.client.get().uri("/hello") // - .cookie("SESSION", originalSessionId) // - .exchange() // - .expectStatus().isFound() // + // @formatter:off + this.client.get().uri("/hello") + .cookie("SESSION", originalSessionId) + .exchange() + .expectStatus().isFound() .expectHeader() .value(HttpHeaders.LOCATION, (value) -> AssertionsForClassTypes.assertThat(value).isEqualTo("/login")); + // @formatter:on } @RestController @@ -141,24 +147,24 @@ static class SecurityConfig { @Bean SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { - return http // - .logout()// - /**/.and() // - .formLogin() // - /**/.and() // - .csrf().disable() // - .authorizeExchange() // - .anyExchange().authenticated() // - /**/.and() // + // @formatter:off + return http + .logout(Customizer.withDefaults()) + .formLogin(Customizer.withDefaults()) + .csrf((csrf) -> csrf.disable()) + .authorizeExchange((ae) -> ae.anyExchange().authenticated()) .build(); + // @formatter:on } @Bean MapReactiveUserDetailsService userDetailsService() { - return new MapReactiveUserDetailsService(User.withUsername("admin") // - .password("{noop}password") // - .roles("USER,ADMIN") // + // @formatter:off + return new MapReactiveUserDetailsService(User.withUsername("admin") + .password("{noop}password") + .roles("USER,ADMIN") .build()); + // @formatter:on } @Bean diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbLogoutVerificationTest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbLogoutVerificationTest.java index 17fb4eac9..49de55f19 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbLogoutVerificationTest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbLogoutVerificationTest.java @@ -36,6 +36,7 @@ import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; +import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; import org.springframework.security.config.web.server.ServerHttpSecurity; import org.springframework.security.core.userdetails.MapReactiveUserDetailsService; @@ -141,26 +142,24 @@ static class SecurityConfig { @Bean SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) { - - return http // - .logout()// - /**/.and() // - .formLogin() // - /**/.and() // - .csrf().disable() // - .authorizeExchange() // - .anyExchange().authenticated() // - /**/.and() // + // @formatter:off + return http + .logout(Customizer.withDefaults()) + .formLogin(Customizer.withDefaults()) + .csrf((csrf) -> csrf.disable()) + .authorizeExchange((ae) -> ae.anyExchange().authenticated()) .build(); + // @formatter:on } @Bean MapReactiveUserDetailsService userDetailsService() { - - return new MapReactiveUserDetailsService(User.withUsername("admin") // - .password("{noop}password") // - .roles("USER,ADMIN") // + // @formatter:off + return new MapReactiveUserDetailsService(User.withUsername("admin") + .password("{noop}password") + .roles("USER,ADMIN") .build()); + // @formatter:on } } diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java index 25ee1c4db..d3bb813e8 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java @@ -48,15 +48,14 @@ class MongoSession implements Session { * NOTE: This was originally stored in unicode format. Delomboking the code caused it * to get converted to another encoding, which isn't supported on all systems, so we * migrated back to unicode. The same character is being represented ensuring binary - * compatibility. - * - * See https://www.compart.com/en/unicode/U+F607 + * compatibility. See https://www.compart.com/en/unicode/U+F607 */ private static final char DOT_COVER_CHAR = '\uF607'; private String id; - private String originalSessionId; + private final String originalSessionId; private long createdMillis = System.currentTimeMillis(); @@ -66,7 +65,7 @@ class MongoSession implements Session { private Date expireAt; - private Map attrs = new HashMap<>(); + private final Map attrs = new HashMap<>(); private transient SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); @@ -135,6 +134,7 @@ public String changeSessionId() { @Override @Nullable + @SuppressWarnings("unchecked") public T getAttribute(String attributeName) { return (T) this.attrs.get(coverDot(attributeName)); } diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionExpirationPolicyTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionExpirationPolicyTests.java index af4719684..2249d49db 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionExpirationPolicyTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionExpirationPolicyTests.java @@ -49,7 +49,7 @@ class RedisSessionExpirationPolicyTests { // Wed Apr 15 10:27:32 CDT 2015 private static final Long ONE_MINUTE_AGO = 1429111652346L; - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) RedisOperations sessionRedisOperations; @Mock diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java index 6f930b727..9e1de8e10 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java @@ -59,7 +59,7 @@ class RedisSessionRepositoryTests { private static final String TEST_SESSION_KEY = getSessionKey(TEST_SESSION_ID); - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) private RedisOperations sessionRedisOperations; @Mock @@ -311,7 +311,6 @@ void save_SessionNotExists_ShouldThrowException() { } @Test - @SuppressWarnings("unchecked") void findById_SessionExists_ShouldReturnSession() { Instant now = Instant.now().truncatedTo(ChronoUnit.MILLIS); given(this.sessionHashOperations.entries(eq(TEST_SESSION_KEY))) @@ -334,7 +333,6 @@ void findById_SessionExists_ShouldReturnSession() { } @Test - @SuppressWarnings("unchecked") void findById_SessionExistsAndIsExpired_ShouldReturnNull() { given(this.sessionHashOperations.entries(eq(TEST_SESSION_KEY))) .willReturn(mapOf(RedisSessionMapper.CREATION_TIME_KEY, Instant.EPOCH.toEpochMilli(), @@ -410,7 +408,7 @@ private static Instant getExpiry(RedisSession session) { .plusSeconds(session.getMaxInactiveInterval().getSeconds()); } - private static Map mapOf(Object... objects) { + private static Map mapOf(Object... objects) { Map result = new HashMap<>(); if (objects != null) { for (int i = 0; i < objects.length; i += 2) { diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationMockTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationMockTests.java index 7e2ca4df5..7794120f9 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationMockTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfigurationMockTests.java @@ -37,7 +37,7 @@ @ExtendWith(MockitoExtension.class) class RedisIndexedHttpSessionConfigurationMockTests { - @Mock(lenient = true) + @Mock(strictness = Mock.Strictness.LENIENT) RedisConnectionFactory factory; @Mock diff --git a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java index 5865ce8cf..243dcaef6 100644 --- a/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java +++ b/spring-session-hazelcast/src/test/java/org/springframework/session/hazelcast/HazelcastIndexedSessionRepositoryTests.java @@ -61,14 +61,15 @@ * @author Vedran Pavic * @author Aleksandar Stojsavljevic */ +@SuppressWarnings("unchecked") class HazelcastIndexedSessionRepositoryTests { private static final String SPRING_SECURITY_CONTEXT = "SPRING_SECURITY_CONTEXT"; - private HazelcastInstance hazelcastInstance = mock(HazelcastInstance.class); + private final HazelcastInstance hazelcastInstance = mock(HazelcastInstance.class); @SuppressWarnings("unchecked") - private IMap sessions = mock(IMap.class); + private final IMap sessions = mock(IMap.class); private HazelcastIndexedSessionRepository repository; diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java index 159e5982a..e9e086c1f 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/JdbcIndexedSessionRepositoryTests.java @@ -790,6 +790,7 @@ void setSessionIdGeneratorWhenNullThenThrowsException() { } @Test + @SuppressWarnings("unchecked") void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { this.repository.setSessionIdGenerator(() -> "test"); Session saved = this.repository.new JdbcSession(new MapSession(), "primaryKey", false); diff --git a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java index 8d1ccead4..f8dadf5dd 100644 --- a/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java +++ b/spring-session-jdbc/src/test/java/org/springframework/session/jdbc/config/annotation/web/http/JdbcHttpSessionConfigurationTests.java @@ -72,13 +72,11 @@ class JdbcHttpSessionConfigurationTests { private static final String CLEANUP_CRON_EXPRESSION = "0 0 * * * *"; - private AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); + private final AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); @AfterEach void closeContext() { - if (this.context != null) { - this.context.close(); - } + this.context.close(); } @Test @@ -407,7 +405,7 @@ static class CustomMaxInactiveIntervalInSecondsAnnotationConfiguration { static class CustomMaxInactiveIntervalInSecondsSetterConfiguration extends JdbcHttpSessionConfiguration { CustomMaxInactiveIntervalInSecondsSetterConfiguration() { - setMaxInactiveIntervalInSeconds(MAX_INACTIVE_INTERVAL_IN_SECONDS); + setMaxInactiveInterval(Duration.ofSeconds(MAX_INACTIVE_INTERVAL_IN_SECONDS)); } } diff --git a/spring-session-samples/spring-session-sample-boot-websocket/src/main/java/sample/config/WebSecurityConfig.java b/spring-session-samples/spring-session-sample-boot-websocket/src/main/java/sample/config/WebSecurityConfig.java index 1c767a8c1..81871ec15 100644 --- a/spring-session-samples/spring-session-sample-boot-websocket/src/main/java/sample/config/WebSecurityConfig.java +++ b/spring-session-samples/spring-session-sample-boot-websocket/src/main/java/sample/config/WebSecurityConfig.java @@ -21,7 +21,7 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; -import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; import org.springframework.security.core.userdetails.UserDetailsService; @@ -29,7 +29,7 @@ import org.springframework.security.web.SecurityFilterChain; @Configuration -@EnableGlobalMethodSecurity(prePostEnabled = true) +@EnableMethodSecurity public class WebSecurityConfig { // @formatter:off From 24390d824be13dc71877cff3856738261e609196 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Wed, 4 Oct 2023 10:29:30 -0300 Subject: [PATCH 042/579] Upgrade mockito to 5.5.0 Closes gh-2462 --- gradle/dependency-management.gradle | 2 +- spring-session-core/spring-session-core.gradle | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 0fd1d7b4b..548818e82 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -3,7 +3,7 @@ dependencyManagement { mavenBom "io.projectreactor:reactor-bom:$reactorVersion" mavenBom 'com.fasterxml.jackson:jackson-bom:2.15.2' mavenBom 'org.junit:junit-bom:5.10.0-RC1' - mavenBom 'org.mockito:mockito-bom:4.11.0' + mavenBom 'org.mockito:mockito-bom:5.5.0' mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' mavenBom 'org.springframework.security:spring-security-bom:6.2.0-M1' diff --git a/spring-session-core/spring-session-core.gradle b/spring-session-core/spring-session-core.gradle index d3b11a2bf..cf558e0d8 100644 --- a/spring-session-core/spring-session-core.gradle +++ b/spring-session-core/spring-session-core.gradle @@ -19,7 +19,6 @@ dependencies { testImplementation "io.projectreactor:reactor-test" testImplementation "org.mockito:mockito-core" testImplementation "org.mockito:mockito-junit-jupiter" - testImplementation "org.mockito:mockito-inline" testImplementation "edu.umd.cs.mtc:multithreadedtc" testImplementation "org.springframework:spring-test" testImplementation "org.assertj:assertj-core" From 3fe23375ded7413820f0c990960dfd8c5d5d22c9 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 25 Sep 2023 08:23:48 -0300 Subject: [PATCH 043/579] Allow Customizing Redis Session Mapper Closes gh-2021 --- ...veRedisSessionRepositoryKeyMissITests.java | 150 +++++++++++++++++ ...IndexedSessionRepositoryKeyMissITests.java | 158 ++++++++++++++++++ .../RedisSessionRepositoryKeyMissITests.java | 157 +++++++++++++++++ .../redis/ReactiveRedisSessionRepository.java | 27 ++- .../redis/RedisIndexedSessionRepository.java | 26 ++- .../data/redis/RedisSessionMapper.java | 22 +-- .../data/redis/RedisSessionRepository.java | 20 ++- .../data/redis/RedisSessionMapperTests.java | 30 ++-- .../ROOT/pages/configuration/redis.adoc | 136 +++++++++++++++ .../modules/ROOT/pages/whats-new.adoc | 1 + 10 files changed, 687 insertions(+), 40 deletions(-) create mode 100644 spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryKeyMissITests.java create mode 100644 spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryKeyMissITests.java create mode 100644 spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisSessionRepositoryKeyMissITests.java diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryKeyMissITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryKeyMissITests.java new file mode 100644 index 000000000..9b5dc26cc --- /dev/null +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryKeyMissITests.java @@ -0,0 +1,150 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Instant; +import java.util.Map; +import java.util.function.BiFunction; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import reactor.core.publisher.Mono; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.core.ReactiveHashOperations; +import org.springframework.data.redis.core.ReactiveRedisOperations; +import org.springframework.session.MapSession; +import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; +import org.springframework.session.data.redis.ReactiveRedisSessionRepository.RedisSession; +import org.springframework.session.data.redis.config.annotation.web.server.EnableRedisWebSession; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.util.ReflectionTestUtils; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.mockito.BDDMockito.willAnswer; +import static org.mockito.Mockito.spy; + +/** + * Key miss error tests for {@link ReactiveRedisSessionRepository} + * + * @author Marcus da Coregio + * @see Related + * GitHub Issue + */ +@ExtendWith(SpringExtension.class) +class ReactiveRedisSessionRepositoryKeyMissITests extends AbstractRedisITests { + + private ReactiveRedisSessionRepository sessionRepository; + + private ReactiveRedisOperations spyOperations; + + AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); + + @Test + void findByIdWhenSessionDeletedWhileSavingDeltaThenThrowIllegalStateException() { + this.context.register(Config.class); + refreshAndPrepareFields(); + RedisSession session = createAndSaveSession(Instant.now()); + session.setAttribute("new", "value"); + + ReactiveHashOperations opsForHash = spy(this.spyOperations.opsForHash()); + given(this.spyOperations.opsForHash()).willReturn(opsForHash); + willAnswer((invocation) -> this.sessionRepository.deleteById(session.getId()) + .then((Mono) invocation.callRealMethod())).given(opsForHash).putAll(any(), any()); + + this.sessionRepository.save(session).block(); + assertThatIllegalStateException().isThrownBy(() -> this.sessionRepository.findById(session.getId()).block()) + .withMessage("creationTime key must not be null"); + } + + @Test + void findByIdWhenSessionDeletedWhileSavingDeltaAndSafeMapperThenSessionIsNull() { + this.context.register(RedisSessionMapperConfig.class); + refreshAndPrepareFields(); + RedisSession session = createAndSaveSession(Instant.now()); + session.setAttribute("new", "value"); + + ReactiveHashOperations opsForHash = spy(this.spyOperations.opsForHash()); + given(this.spyOperations.opsForHash()).willReturn(opsForHash); + willAnswer((invocation) -> this.sessionRepository.deleteById(session.getId()) + .then((Mono) invocation.callRealMethod())).given(opsForHash).putAll(any(), any()); + + this.sessionRepository.save(session).block(); + assertThat(this.sessionRepository.findById(session.getId()).block()).isNull(); + } + + @SuppressWarnings("unchecked") + private void refreshAndPrepareFields() { + this.context.refresh(); + this.sessionRepository = this.context.getBean(ReactiveRedisSessionRepository.class); + ReactiveRedisOperations redisOperations = (ReactiveRedisOperations) ReflectionTestUtils + .getField(this.sessionRepository, "sessionRedisOperations"); + this.spyOperations = spy(redisOperations); + ReflectionTestUtils.setField(this.sessionRepository, "sessionRedisOperations", this.spyOperations); + } + + private RedisSession createAndSaveSession(Instant lastAccessedTime) { + RedisSession session = this.sessionRepository.createSession().block(); + session.setLastAccessedTime(lastAccessedTime); + session.setAttribute("attribute1", "value1"); + this.sessionRepository.save(session).block(); + return this.sessionRepository.findById(session.getId()).block(); + } + + @Configuration + @EnableRedisWebSession + static class Config extends BaseConfig { + + } + + @Configuration + @EnableRedisWebSession + static class RedisSessionMapperConfig extends BaseConfig { + + @Bean + ReactiveSessionRepositoryCustomizer redisSessionRepositoryCustomizer() { + return (redisSessionRepository) -> redisSessionRepository + .setRedisSessionMapper(new SafeRedisSessionMapper(redisSessionRepository)); + } + + } + + static class SafeRedisSessionMapper implements BiFunction, Mono> { + + private final RedisSessionMapper delegate = new RedisSessionMapper(); + + private final ReactiveRedisSessionRepository sessionRepository; + + SafeRedisSessionMapper(ReactiveRedisSessionRepository sessionRepository) { + this.sessionRepository = sessionRepository; + } + + @Override + public Mono apply(String sessionId, Map map) { + return Mono.fromSupplier(() -> this.delegate.apply(sessionId, map)).onErrorResume( + IllegalStateException.class, + (ex) -> this.sessionRepository.deleteById(sessionId).then(Mono.empty())); + } + + } + +} diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryKeyMissITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryKeyMissITests.java new file mode 100644 index 000000000..774c3d244 --- /dev/null +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryKeyMissITests.java @@ -0,0 +1,158 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Instant; +import java.util.Map; +import java.util.function.BiFunction; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.core.BoundHashOperations; +import org.springframework.data.redis.core.RedisOperations; +import org.springframework.session.MapSession; +import org.springframework.session.config.SessionRepositoryCustomizer; +import org.springframework.session.data.redis.RedisIndexedSessionRepository.RedisSession; +import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisIndexedHttpSession; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.util.ReflectionTestUtils; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.BDDMockito.given; +import static org.mockito.BDDMockito.willAnswer; +import static org.mockito.Mockito.spy; + +/** + * Key miss error tests for {@link RedisIndexedSessionRepository} + * + * @author Marcus da Coregio + * @see Related + * GitHub Issue + */ +@ExtendWith(SpringExtension.class) +class RedisIndexedSessionRepositoryKeyMissITests extends AbstractRedisITests { + + private RedisIndexedSessionRepository sessionRepository; + + private RedisOperations spyOperations; + + AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); + + @Test + void findByIdWhenSessionDeletedWhileSavingDeltaThenThrowIllegalStateException() { + this.context.register(Config.class); + refreshAndPrepareFields(); + RedisSession session = createAndSaveSession(Instant.now()); + session.setAttribute("new", "value"); + + BoundHashOperations opsForHash = spy(this.spyOperations.boundHashOps(anyString())); + given(this.spyOperations.boundHashOps(anyString())).willReturn(opsForHash); + willAnswer((invocation) -> { + this.sessionRepository.deleteById(session.getId()); + return invocation.callRealMethod(); + }).given(opsForHash).putAll(any()); + + this.sessionRepository.save(session); + assertThatIllegalStateException().isThrownBy(() -> this.sessionRepository.findById(session.getId())) + .withMessage("creationTime key must not be null"); + } + + @Test + void findByIdWhenSessionDeletedWhileSavingDeltaAndSafeMapperThenSessionIsNull() { + this.context.register(RedisSessionMapperConfig.class); + refreshAndPrepareFields(); + RedisSession session = createAndSaveSession(Instant.now()); + session.setAttribute("new", "value"); + + BoundHashOperations opsForHash = spy(this.spyOperations.boundHashOps(anyString())); + given(this.spyOperations.boundHashOps(anyString())).willReturn(opsForHash); + willAnswer((invocation) -> { + this.sessionRepository.deleteById(session.getId()); + return invocation.callRealMethod(); + }).given(opsForHash).putAll(any()); + + this.sessionRepository.save(session); + assertThat(this.sessionRepository.findById(session.getId())).isNull(); + } + + @SuppressWarnings("unchecked") + private void refreshAndPrepareFields() { + this.context.refresh(); + this.sessionRepository = this.context.getBean(RedisIndexedSessionRepository.class); + RedisOperations redisOperations = (RedisOperations) ReflectionTestUtils + .getField(this.sessionRepository, "sessionRedisOperations"); + this.spyOperations = spy(redisOperations); + ReflectionTestUtils.setField(this.sessionRepository, "sessionRedisOperations", this.spyOperations); + } + + private RedisSession createAndSaveSession(Instant lastAccessedTime) { + RedisSession session = this.sessionRepository.createSession(); + session.setLastAccessedTime(lastAccessedTime); + session.setAttribute("attribute1", "value1"); + this.sessionRepository.save(session); + return this.sessionRepository.findById(session.getId()); + } + + @Configuration + @EnableRedisIndexedHttpSession + static class Config extends BaseConfig { + + } + + @Configuration + @EnableRedisIndexedHttpSession + static class RedisSessionMapperConfig extends BaseConfig { + + @Bean + SessionRepositoryCustomizer redisSessionRepositoryCustomizer() { + return (redisSessionRepository) -> redisSessionRepository.setRedisSessionMapper( + new SafeRedisSessionMapper(redisSessionRepository.getSessionRedisOperations())); + } + + } + + static class SafeRedisSessionMapper implements BiFunction, MapSession> { + + private final RedisSessionMapper delegate = new RedisSessionMapper(); + + private final RedisOperations redisOperations; + + SafeRedisSessionMapper(RedisOperations redisOperations) { + this.redisOperations = redisOperations; + } + + @Override + public MapSession apply(String sessionId, Map map) { + try { + return this.delegate.apply(sessionId, map); + } + catch (IllegalStateException ex) { + this.redisOperations.delete("spring:session:sessions:" + sessionId); + return null; + } + } + + } + +} diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisSessionRepositoryKeyMissITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisSessionRepositoryKeyMissITests.java new file mode 100644 index 000000000..f636d6205 --- /dev/null +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisSessionRepositoryKeyMissITests.java @@ -0,0 +1,157 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Instant; +import java.util.Map; +import java.util.function.BiFunction; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.core.HashOperations; +import org.springframework.data.redis.core.RedisOperations; +import org.springframework.session.MapSession; +import org.springframework.session.config.SessionRepositoryCustomizer; +import org.springframework.session.data.redis.RedisSessionRepository.RedisSession; +import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.util.ReflectionTestUtils; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.mockito.BDDMockito.willAnswer; +import static org.mockito.Mockito.spy; + +/** + * Key miss error tests for {@link RedisSessionRepository} + * + * @author Marcus da Coregio + * @see Related + * GitHub Issue + */ +@ExtendWith(SpringExtension.class) +class RedisSessionRepositoryKeyMissITests extends AbstractRedisITests { + + private RedisSessionRepository sessionRepository; + + private RedisOperations spyOperations; + + AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); + + @Test + void findByIdWhenSessionDeletedWhileSavingDeltaThenThrowIllegalStateException() { + this.context.register(Config.class); + refreshAndPrepareFields(); + RedisSession session = createAndSaveSession(Instant.now()); + session.setAttribute("new", "value"); + + HashOperations opsForHash = spy(this.spyOperations.opsForHash()); + given(this.spyOperations.opsForHash()).willReturn(opsForHash); + willAnswer((invocation) -> { + this.sessionRepository.deleteById(session.getId()); + return invocation.callRealMethod(); + }).given(opsForHash).putAll(any(), any()); + + this.sessionRepository.save(session); + assertThatIllegalStateException().isThrownBy(() -> this.sessionRepository.findById(session.getId())) + .withMessage("creationTime key must not be null"); + } + + @Test + void findByIdWhenSessionDeletedWhileSavingDeltaAndSafeMapperThenSessionIsNull() { + this.context.register(RedisSessionMapperConfig.class); + refreshAndPrepareFields(); + RedisSession session = createAndSaveSession(Instant.now()); + session.setAttribute("new", "value"); + + HashOperations opsForHash = spy(this.spyOperations.opsForHash()); + given(this.spyOperations.opsForHash()).willReturn(opsForHash); + willAnswer((invocation) -> { + this.sessionRepository.deleteById(session.getId()); + return invocation.callRealMethod(); + }).given(opsForHash).putAll(any(), any()); + + this.sessionRepository.save(session); + assertThat(this.sessionRepository.findById(session.getId())).isNull(); + } + + @SuppressWarnings("unchecked") + private void refreshAndPrepareFields() { + this.context.refresh(); + this.sessionRepository = this.context.getBean(RedisSessionRepository.class); + RedisOperations redisOperations = (RedisOperations) ReflectionTestUtils + .getField(this.sessionRepository, "sessionRedisOperations"); + this.spyOperations = spy(redisOperations); + ReflectionTestUtils.setField(this.sessionRepository, "sessionRedisOperations", this.spyOperations); + } + + private RedisSession createAndSaveSession(Instant lastAccessedTime) { + RedisSession session = this.sessionRepository.createSession(); + session.setLastAccessedTime(lastAccessedTime); + session.setAttribute("attribute1", "value1"); + this.sessionRepository.save(session); + return this.sessionRepository.findById(session.getId()); + } + + @Configuration + @EnableRedisHttpSession + static class Config extends BaseConfig { + + } + + @Configuration + @EnableRedisHttpSession + static class RedisSessionMapperConfig extends BaseConfig { + + @Bean + SessionRepositoryCustomizer redisSessionRepositoryCustomizer() { + return (redisSessionRepository) -> redisSessionRepository + .setRedisSessionMapper(new SafeRedisSessionMapper(redisSessionRepository)); + } + + } + + static class SafeRedisSessionMapper implements BiFunction, MapSession> { + + private final RedisSessionMapper delegate = new RedisSessionMapper(); + + private final RedisSessionRepository sessionRepository; + + SafeRedisSessionMapper(RedisSessionRepository sessionRepository) { + this.sessionRepository = sessionRepository; + } + + @Override + public MapSession apply(String sessionId, Map map) { + try { + return this.delegate.apply(sessionId, map); + } + catch (IllegalStateException ex) { + this.sessionRepository.deleteById(sessionId); + return null; + } + } + + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java index 84460599a..a24db32d8 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionRepository.java @@ -21,6 +21,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; +import java.util.function.BiFunction; import org.reactivestreams.Publisher; import reactor.core.publisher.Mono; @@ -66,6 +67,8 @@ public class ReactiveRedisSessionRepository private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); + private BiFunction, Mono> redisSessionMapper = new RedisSessionMapperAdapter(); + /** * Create a new {@link ReactiveRedisSessionRepository} instance. * @param sessionRedisOperations the {@link ReactiveRedisOperations} to use for @@ -154,7 +157,7 @@ public Mono findById(String id) { return this.sessionRedisOperations.opsForHash().entries(sessionKey) .collectMap((e) -> e.getKey().toString(), Map.Entry::getValue) .filter((map) -> !map.isEmpty()) - .map(new RedisSessionMapper(id)) + .flatMap((map) -> this.redisSessionMapper.apply(id, map)) .filter((session) -> !session.isExpired()) .map((session) -> new RedisSession(session, false)) .switchIfEmpty(Mono.defer(() -> deleteById(id).then(Mono.empty()))); @@ -186,6 +189,16 @@ public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { this.sessionIdGenerator = sessionIdGenerator; } + /** + * Set the {@link BiFunction} used to convert a {@link Map} to a {@link MapSession}. + * @param redisSessionMapper the mapper to use, cannot be null + * @since 3.2 + */ + public void setRedisSessionMapper(BiFunction, Mono> redisSessionMapper) { + Assert.notNull(redisSessionMapper, "redisSessionMapper cannot be null"); + this.redisSessionMapper = redisSessionMapper; + } + /** * A custom implementation of {@link Session} that uses a {@link MapSession} as the * basis for its mapping. It keeps track of any attributes that have changed. When @@ -349,4 +362,16 @@ private Mono saveChangeSessionId() { } + private static final class RedisSessionMapperAdapter + implements BiFunction, Mono> { + + private final RedisSessionMapper mapper = new RedisSessionMapper(); + + @Override + public Mono apply(String sessionId, Map map) { + return Mono.fromSupplier(() -> this.mapper.apply(sessionId, map)); + } + + } + } diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java index 70fe7982c..9b08c4824 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java @@ -23,6 +23,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; +import java.util.function.BiFunction; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -326,6 +327,8 @@ public class RedisIndexedSessionRepository private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); + private BiFunction, MapSession> redisSessionMapper = new RedisSessionMapper(); + /** * Creates a new instance. For an example, refer to the class level javadoc. * @param sessionRedisOperations the {@link RedisOperations} to use for managing the @@ -523,8 +526,8 @@ private RedisSession getSession(String id, boolean allowExpired) { if ((entries == null) || entries.isEmpty()) { return null; } - MapSession loaded = new RedisSessionMapper(id).apply(entries); - if (!allowExpired && loaded.isExpired()) { + MapSession loaded = this.redisSessionMapper.apply(id, entries); + if (loaded == null || (!allowExpired && loaded.isExpired())) { return null; } RedisSession result = new RedisSession(loaded, false); @@ -568,9 +571,11 @@ public void onMessage(Message message, byte[] pattern) { String sessionId = channel.substring(channel.lastIndexOf(":") + 1); @SuppressWarnings("unchecked") Map entries = (Map) this.defaultSerializer.deserialize(message.getBody()); - MapSession loaded = new RedisSessionMapper(sessionId).apply(entries); - RedisSession session = new RedisSession(loaded, false); - handleCreated(session); + MapSession loaded = this.redisSessionMapper.apply(sessionId, entries); + if (loaded != null) { + RedisSession session = new RedisSession(loaded, false); + handleCreated(session); + } return; } @@ -730,6 +735,17 @@ public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { this.sessionIdGenerator = sessionIdGenerator; } + /** + * Set the {@link BiFunction} used to map {@link MapSession} to a + * {@link ReactiveRedisSessionRepository.RedisSession}. + * @param redisSessionMapper the mapper to use, cannot be null + * @since 3.2 + */ + public void setRedisSessionMapper(BiFunction, MapSession> redisSessionMapper) { + Assert.notNull(redisSessionMapper, "redisSessionMapper cannot be null"); + this.redisSessionMapper = redisSessionMapper; + } + /** * A custom implementation of {@link Session} that uses a {@link MapSession} as the * basis for its mapping. It keeps track of any attributes that have changed. When diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionMapper.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionMapper.java index 476d03d38..ab2f926c8 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionMapper.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionMapper.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-2023 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. @@ -19,6 +19,7 @@ import java.time.Duration; import java.time.Instant; import java.util.Map; +import java.util.function.BiFunction; import java.util.function.Function; import org.springframework.session.MapSession; @@ -30,9 +31,10 @@ * {@link MapSession}. * * @author Vedran Pavic + * @author Marcus da Coregio * @since 2.2.0 */ -final class RedisSessionMapper implements Function, MapSession> { +public final class RedisSessionMapper implements BiFunction, MapSession> { /** * The key in the hash representing {@link Session#getCreationTime()}. @@ -56,17 +58,15 @@ final class RedisSessionMapper implements Function, MapSessi */ static final String ATTRIBUTE_PREFIX = "sessionAttr:"; - private final String sessionId; - - RedisSessionMapper(String sessionId) { - Assert.hasText(sessionId, "sessionId must not be empty"); - this.sessionId = sessionId; + private static void handleMissingKey(String key) { + throw new IllegalStateException(key + " key must not be null"); } @Override - public MapSession apply(Map map) { + public MapSession apply(String sessionId, Map map) { + Assert.hasText(sessionId, "sessionId must not be empty"); Assert.notEmpty(map, "map must not be empty"); - MapSession session = new MapSession(this.sessionId); + MapSession session = new MapSession(sessionId); Long creationTime = (Long) map.get(CREATION_TIME_KEY); if (creationTime == null) { handleMissingKey(CREATION_TIME_KEY); @@ -90,8 +90,4 @@ public MapSession apply(Map map) { return session; } - private static void handleMissingKey(String key) { - throw new IllegalStateException(key + " key must not be null"); - } - } diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java index a94629a2a..e14c5cbab 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionRepository.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2022 the original author or authors. + * Copyright 2014-2023 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. @@ -21,6 +21,7 @@ import java.util.HashMap; import java.util.Map; import java.util.Set; +import java.util.function.BiFunction; import org.springframework.data.redis.core.RedisOperations; import org.springframework.session.FlushMode; @@ -60,6 +61,8 @@ public class RedisSessionRepository implements SessionRepository, MapSession> redisSessionMapper = new RedisSessionMapper(); + /** * Create a new {@link RedisSessionRepository} instance. * @param sessionRedisOperations the {@link RedisOperations} to use for managing @@ -136,8 +139,8 @@ public RedisSession findById(String sessionId) { if (entries.isEmpty()) { return null; } - MapSession session = new RedisSessionMapper(sessionId).apply(entries); - if (session.isExpired()) { + MapSession session = this.redisSessionMapper.apply(sessionId, entries); + if (session == null || session.isExpired()) { deleteById(sessionId); return null; } @@ -176,6 +179,17 @@ public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { this.sessionIdGenerator = sessionIdGenerator; } + /** + * Set the {@link BiFunction} used to map {@link MapSession} to a + * {@link ReactiveRedisSessionRepository.RedisSession}. + * @param redisSessionMapper the mapper to use, cannot be null + * @since 3.2 + */ + public void setRedisSessionMapper(BiFunction, MapSession> redisSessionMapper) { + Assert.notNull(redisSessionMapper, "redisSessionMapper cannot be null"); + this.redisSessionMapper = redisSessionMapper; + } + /** * An internal {@link Session} implementation used by this {@link SessionRepository}. */ diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionMapperTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionMapperTests.java index 3e345c590..2042bc162 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionMapperTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionMapperTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2019 the original author or authors. + * Copyright 2014-2023 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. @@ -22,7 +22,6 @@ import java.util.HashMap; import java.util.Map; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.session.MapSession; @@ -38,34 +37,29 @@ */ class RedisSessionMapperTests { - private RedisSessionMapper mapper; - - @BeforeEach - void setUp() { - this.mapper = new RedisSessionMapper("id"); - } + private RedisSessionMapper mapper = new RedisSessionMapper(); @Test - void constructor_NullId_ShouldThrowException() { - assertThatIllegalArgumentException().isThrownBy(() -> new RedisSessionMapper(null)) + void apply_NullId_ShouldThrowException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.mapper.apply(null, Collections.emptyMap())) .withMessage("sessionId must not be empty"); } @Test - void constructor_EmptyId_ShouldThrowException() { - assertThatIllegalArgumentException().isThrownBy(() -> new RedisSessionMapper(" ")) + void apply_EmptyId_ShouldThrowException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.mapper.apply(" ", Collections.emptyMap())) .withMessage("sessionId must not be empty"); } @Test void apply_NullMap_ShouldThrowException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.mapper.apply(null)) + assertThatIllegalArgumentException().isThrownBy(() -> this.mapper.apply("1234", null)) .withMessage("map must not be empty"); } @Test void apply_EmptyMap_ShouldThrowException() { - assertThatIllegalArgumentException().isThrownBy(() -> this.mapper.apply(Collections.emptyMap())) + assertThatIllegalArgumentException().isThrownBy(() -> this.mapper.apply("1234", Collections.emptyMap())) .withMessage("map must not be empty"); } @@ -74,7 +68,7 @@ void apply_MapWithoutCreationTime_ShouldThrowException() { Map sessionMap = new HashMap<>(); sessionMap.put(RedisSessionMapper.LAST_ACCESSED_TIME_KEY, 0L); sessionMap.put(RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, 1800); - assertThatIllegalStateException().isThrownBy(() -> this.mapper.apply(sessionMap)) + assertThatIllegalStateException().isThrownBy(() -> this.mapper.apply("id", sessionMap)) .withMessage(RedisSessionMapper.CREATION_TIME_KEY + " key must not be null"); } @@ -83,7 +77,7 @@ void apply_MapWithoutLastAccessedTime_ShouldThrowException() { Map sessionMap = new HashMap<>(); sessionMap.put(RedisSessionMapper.CREATION_TIME_KEY, 0L); sessionMap.put(RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, 1800); - assertThatIllegalStateException().isThrownBy(() -> this.mapper.apply(sessionMap)) + assertThatIllegalStateException().isThrownBy(() -> this.mapper.apply("id", sessionMap)) .withMessage(RedisSessionMapper.LAST_ACCESSED_TIME_KEY + " key must not be null"); } @@ -92,7 +86,7 @@ void apply_MapWithoutMaxInactiveInterval_ShouldThrowException() { Map sessionMap = new HashMap<>(); sessionMap.put(RedisSessionMapper.CREATION_TIME_KEY, 0L); sessionMap.put(RedisSessionMapper.LAST_ACCESSED_TIME_KEY, 0L); - assertThatIllegalStateException().isThrownBy(() -> this.mapper.apply(sessionMap)) + assertThatIllegalStateException().isThrownBy(() -> this.mapper.apply("id", sessionMap)) .withMessage(RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY + " key must not be null"); } @@ -104,7 +98,7 @@ void apply_ValidMap_ShouldReturnSession() { sessionMap.put(RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, 1800); sessionMap.put(RedisSessionMapper.ATTRIBUTE_PREFIX + "existing", "value"); sessionMap.put(RedisSessionMapper.ATTRIBUTE_PREFIX + "missing", null); - MapSession session = this.mapper.apply(sessionMap); + MapSession session = this.mapper.apply("id", sessionMap); assertThat(session.getId()).isEqualTo("id"); assertThat(session.getCreationTime()).isEqualTo(Instant.ofEpochMilli(0)); assertThat(session.getLastAccessedTime()).isEqualTo(Instant.ofEpochMilli(0)); diff --git a/spring-session-docs/modules/ROOT/pages/configuration/redis.adoc b/spring-session-docs/modules/ROOT/pages/configuration/redis.adoc index c24740620..f29194d9d 100644 --- a/spring-session-docs/modules/ROOT/pages/configuration/redis.adoc +++ b/spring-session-docs/modules/ROOT/pages/configuration/redis.adoc @@ -9,6 +9,7 @@ Now that you have your application configured, you might want to start customizi - I want to <>. - I want to <>. - I want to <> +- I want to <> [[serializing-session-using-json]] == Serializing the Session using JSON @@ -269,3 +270,138 @@ public void removeSession(Principal principal, String sessionIdToDelete) { ==== In the example above, you can use the `getSessions` method to find all sessions of a specific user, and the `removeSession` method to remove a specific session of a user. + +[[configuring-redis-session-mapper]] +== Configuring Redis Session Mapper + + +Spring Session Redis retrieves session information from Redis and stores it in a `Map`. +This map needs to undergo a mapping process to be transformed into a `MapSession` object, which is then utilized within `RedisSession`. + +The default mapper used for this purpose is called `RedisSessionMapper`. +If the session map doesn't contain the minimum necessary keys to construct the session, like `creationTime`, this mapper will throw an exception. +One possible scenario for the absence of required keys is when the session key is deleted concurrently, usually due to expiration, while the save process is in progress. +This occurs because the https://redis.io/commands/hset/[HSET command] is employed to set fields within the key, and if the key doesn't exist, this command will create it. + +If you want to customize the mapping process, you can create your implementation of `BiFunction, MapSession>` and set it into the session repository. +The following example shows how to delegate the mapping process to the default mapper, but if an exception is thrown, the session is deleted from Redis: + +[tabs] +====== +RedisSessionRepository:: ++ +[source,java,role="primary"] +---- +@Configuration +@EnableRedisHttpSession +public class SessionConfig { + + @Bean + SessionRepositoryCustomizer redisSessionRepositoryCustomizer() { + return (redisSessionRepository) -> redisSessionRepository + .setRedisSessionMapper(new SafeRedisSessionMapper(redisSessionRepository)); + } + + static class SafeRedisSessionMapper implements BiFunction, MapSession> { + + private final RedisSessionMapper delegate = new RedisSessionMapper(); + + private final RedisSessionRepository sessionRepository; + + SafeRedisSessionMapper(RedisSessionRepository sessionRepository) { + this.sessionRepository = sessionRepository; + } + + @Override + public MapSession apply(String sessionId, Map map) { + try { + return this.delegate.apply(sessionId, map); + } + catch (IllegalStateException ex) { + this.sessionRepository.deleteById(sessionId); + return null; + } + } + + } + +} +---- + +RedisIndexedSessionRepository:: ++ +[source,java,role="secondary"] +---- +@Configuration +@EnableRedisIndexedHttpSession +public class SessionConfig { + + @Bean + SessionRepositoryCustomizer redisSessionRepositoryCustomizer() { + return (redisSessionRepository) -> redisSessionRepository.setRedisSessionMapper( + new SafeRedisSessionMapper(redisSessionRepository.getSessionRedisOperations())); + } + + static class SafeRedisSessionMapper implements BiFunction, MapSession> { + + private final RedisSessionMapper delegate = new RedisSessionMapper(); + + private final RedisOperations redisOperations; + + SafeRedisSessionMapper(RedisOperations redisOperations) { + this.redisOperations = redisOperations; + } + + @Override + public MapSession apply(String sessionId, Map map) { + try { + return this.delegate.apply(sessionId, map); + } + catch (IllegalStateException ex) { + // if you use a different redis namespace, change the key accordingly + this.redisOperations.delete("spring:session:sessions:" + sessionId); // we do not invoke RedisIndexedSessionRepository#deleteById to avoid an infinite loop because the method also invokes this mapper + return null; + } + } + + } + +} +---- + +ReactiveRedisSessionRepository:: ++ +[source,java,role="tertiary"] +---- +@Configuration +@EnableRedisWebSession +public class SessionConfig { + + @Bean + ReactiveSessionRepositoryCustomizer redisSessionRepositoryCustomizer() { + return (redisSessionRepository) -> redisSessionRepository + .setRedisSessionMapper(new SafeRedisSessionMapper(redisSessionRepository)); + } + + static class SafeRedisSessionMapper implements BiFunction, Mono> { + + private final RedisSessionMapper delegate = new RedisSessionMapper(); + + private final ReactiveRedisSessionRepository sessionRepository; + + SafeRedisSessionMapper(ReactiveRedisSessionRepository sessionRepository) { + this.sessionRepository = sessionRepository; + } + + @Override + public Mono apply(String sessionId, Map map) { + return Mono.fromSupplier(() -> this.delegate.apply(sessionId, map)) + .onErrorResume(IllegalStateException.class, + (ex) -> this.sessionRepository.deleteById(sessionId).then(Mono.empty())); + } + + } + +} +---- +====== diff --git a/spring-session-docs/modules/ROOT/pages/whats-new.adoc b/spring-session-docs/modules/ROOT/pages/whats-new.adoc index a18e5da04..ea07f330e 100644 --- a/spring-session-docs/modules/ROOT/pages/whats-new.adoc +++ b/spring-session-docs/modules/ROOT/pages/whats-new.adoc @@ -1,3 +1,4 @@ = What's New - xref:configuration/common.adoc#changing-how-session-ids-are-generated[docs] - https://github.com/spring-projects/spring-session/issues/11[gh-11] - Introduce `SessionIdGenerator` to allow custom session id generation +- xref:configuration/redis.adoc#configuring-redis-session-mapper[docs] - https://github.com/spring-projects/spring-session/issues/2021[gh-2021] - Allow safe deserialization of Redis sessions From c90133890d8331b13edbd1136b6d6438d4d80c31 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 16 Oct 2023 12:01:04 -0300 Subject: [PATCH 044/579] Fix tests Issue gh-2464 --- .../session/data/redis/ReactiveRedisSessionRepositoryITests.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryITests.java index 086febad0..241e8d4d6 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisSessionRepositoryITests.java @@ -281,6 +281,7 @@ void saveWhenPutAllIsDelayedThenExpireShouldBeSet() { assertThat(expireDuration).isNotEqualTo(Duration.ZERO); reset(spy); + ReflectionTestUtils.setField(this.repository, "sessionRedisOperations", this.sessionRedisOperations); } @Configuration From 31ff682e53e24ad517528287dca9a983b1e6b813 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 16 Oct 2023 14:47:06 -0300 Subject: [PATCH 045/579] Update io.projectreactor:reactor-bom to 2023.0.0-RC1 Closes gh-2485 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 28e79ca14..9a2381f80 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,4 +2,4 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryEr org.gradle.parallel=true version=3.2.0-SNAPSHOT springBootVersion=3.1.1 -reactorVersion=2023.0.0-M1 +reactorVersion=2023.0.0-RC1 From 0e3fc5619577c67db86cddcdffaf06e8bed9dd88 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 16 Oct 2023 14:47:37 -0300 Subject: [PATCH 046/579] Update org.junit:junit-bom to 5.10.0 Closes gh-2486 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 548818e82..4e7aae27b 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -2,7 +2,7 @@ dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:$reactorVersion" mavenBom 'com.fasterxml.jackson:jackson-bom:2.15.2' - mavenBom 'org.junit:junit-bom:5.10.0-RC1' + mavenBom 'org.junit:junit-bom:5.10.0' mavenBom 'org.mockito:mockito-bom:5.5.0' mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' From a8a4c503683e2451e01dd28c21e1e0cf41d04870 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 16 Oct 2023 14:47:50 -0300 Subject: [PATCH 047/579] Update org.springframework:spring-framework-bom to 6.1.0-RC1 Closes gh-2487 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 4e7aae27b..081f06b46 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -4,7 +4,7 @@ dependencyManagement { mavenBom 'com.fasterxml.jackson:jackson-bom:2.15.2' mavenBom 'org.junit:junit-bom:5.10.0' mavenBom 'org.mockito:mockito-bom:5.5.0' - mavenBom 'org.springframework:spring-framework-bom:6.1.0-M2' + mavenBom 'org.springframework:spring-framework-bom:6.1.0-RC1' mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' mavenBom 'org.springframework.security:spring-security-bom:6.2.0-M1' mavenBom 'org.testcontainers:testcontainers-bom:1.18.3' From 9ddec75112afa8c440d5b19c58077280ebec2134 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 16 Oct 2023 14:48:07 -0300 Subject: [PATCH 048/579] Update org.springframework.data:spring-data-bom to 2023.1.0-RC1 Closes gh-2488 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index 081f06b46..e241a9047 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -5,7 +5,7 @@ dependencyManagement { mavenBom 'org.junit:junit-bom:5.10.0' mavenBom 'org.mockito:mockito-bom:5.5.0' mavenBom 'org.springframework:spring-framework-bom:6.1.0-RC1' - mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-M1' + mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-RC1' mavenBom 'org.springframework.security:spring-security-bom:6.2.0-M1' mavenBom 'org.testcontainers:testcontainers-bom:1.18.3' } From 3074c0121e5a0a15b6f4b6a16f13d724ce3628e1 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 16 Oct 2023 14:48:19 -0300 Subject: [PATCH 049/579] Update org.springframework.security:spring-security-bom to 6.2.0-RC1 Closes gh-2489 --- gradle/dependency-management.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependency-management.gradle b/gradle/dependency-management.gradle index e241a9047..643a6d439 100644 --- a/gradle/dependency-management.gradle +++ b/gradle/dependency-management.gradle @@ -6,7 +6,7 @@ dependencyManagement { mavenBom 'org.mockito:mockito-bom:5.5.0' mavenBom 'org.springframework:spring-framework-bom:6.1.0-RC1' mavenBom 'org.springframework.data:spring-data-bom:2023.1.0-RC1' - mavenBom 'org.springframework.security:spring-security-bom:6.2.0-M1' + mavenBom 'org.springframework.security:spring-security-bom:6.2.0-RC1' mavenBom 'org.testcontainers:testcontainers-bom:1.18.3' } From 26e7995b114020526bd322ad7e310f7b09e3523d Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Mon, 16 Oct 2023 15:10:50 -0300 Subject: [PATCH 050/579] Implement StompEndpointRegistry#setPreserveReceiveOrder Issue gh-2487 --- .../AbstractSessionWebSocketMessageBrokerConfigurer.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spring-session-core/src/main/java/org/springframework/session/web/socket/config/annotation/AbstractSessionWebSocketMessageBrokerConfigurer.java b/spring-session-core/src/main/java/org/springframework/session/web/socket/config/annotation/AbstractSessionWebSocketMessageBrokerConfigurer.java index 484cb00e3..ebc5de364 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/socket/config/annotation/AbstractSessionWebSocketMessageBrokerConfigurer.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/socket/config/annotation/AbstractSessionWebSocketMessageBrokerConfigurer.java @@ -163,6 +163,11 @@ public WebMvcStompEndpointRegistry setErrorHandler(StompSubProtocolErrorHandler return this.registry.setErrorHandler(errorHandler); } + @Override + public WebMvcStompEndpointRegistry setPreserveReceiveOrder(boolean preserveReceiveOrder) { + return this.registry.setPreserveReceiveOrder(preserveReceiveOrder); + } + } } From 9f5901427bee922d49ba5615bf9694e5f7a9bbdf Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 17 Oct 2023 08:54:36 -0300 Subject: [PATCH 051/579] Release 3.2.0-RC1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 9a2381f80..a904e4b70 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.0-SNAPSHOT +version=3.2.0-RC1 springBootVersion=3.1.1 reactorVersion=2023.0.0-RC1 From 502b8696328632c564ea0c9f18220bf722003dfd Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Tue, 17 Oct 2023 09:45:37 -0300 Subject: [PATCH 052/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a904e4b70..9a2381f80 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.0-RC1 +version=3.2.0-SNAPSHOT springBootVersion=3.1.1 reactorVersion=2023.0.0-RC1 From d1a415519032e3754621ea32cbc382eb80b48f02 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Wed, 18 Oct 2023 11:32:12 -0300 Subject: [PATCH 053/579] Improve mocking on tests --- .../data/redis/RedisIndexedSessionRepositoryITests.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java index 089d3204d..d7851add2 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java @@ -693,9 +693,8 @@ void changeSessionIdSaveConcurrently() { @Test @SuppressWarnings("unchecked") void saveChangeSessionIdWhenFailedRenameOperationExceptionContainsMoreDetailsThenIgnoreError() { - RedisOperations sessionRedisOperations = (RedisOperations) ReflectionTestUtils - .getField(this.repository, "sessionRedisOperations"); - RedisOperations spyOperations = spy(sessionRedisOperations); + RedisOperations sessionRedisOperations = this.repository.getSessionRedisOperations(); + RedisOperations spyOperations = spy(sessionRedisOperations); ReflectionTestUtils.setField(this.repository, "sessionRedisOperations", spyOperations); RedisSession toSave = this.repository.createSession(); @@ -714,6 +713,7 @@ void saveChangeSessionIdWhenFailedRenameOperationExceptionContainsMoreDetailsThe assertThat(this.repository.findById(sessionId)).isNull(); assertThat(this.repository.findById(newSessionId)).isNull(); reset(spyOperations); + ReflectionTestUtils.setField(this.repository, "sessionRedisOperations", sessionRedisOperations); } private String getSecurityName() { From bf5f04f40c606e540821b4bd43d553ceced7e595 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Wed, 18 Oct 2023 13:31:13 -0300 Subject: [PATCH 054/579] Move tests to dynamic configuration tests --- ...ndexedSessionRepositoryDynamicITests.java} | 29 +++++++++++++++- .../RedisIndexedSessionRepositoryITests.java | 34 ------------------- 2 files changed, 28 insertions(+), 35 deletions(-) rename spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/{RedisIndexedSessionRepositoryKeyMissITests.java => RedisIndexedSessionRepositoryDynamicITests.java} (83%) diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryKeyMissITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryDynamicITests.java similarity index 83% rename from spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryKeyMissITests.java rename to spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryDynamicITests.java index 774c3d244..9226467de 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryKeyMissITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryDynamicITests.java @@ -20,11 +20,13 @@ import java.util.Map; import java.util.function.BiFunction; +import io.lettuce.core.RedisCommandExecutionException; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.RedisSystemException; import org.springframework.data.redis.core.BoundHashOperations; import org.springframework.data.redis.core.RedisOperations; import org.springframework.session.MapSession; @@ -41,6 +43,7 @@ import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.BDDMockito.given; import static org.mockito.BDDMockito.willAnswer; +import static org.mockito.BDDMockito.willThrow; import static org.mockito.Mockito.spy; /** @@ -51,7 +54,7 @@ * GitHub Issue */ @ExtendWith(SpringExtension.class) -class RedisIndexedSessionRepositoryKeyMissITests extends AbstractRedisITests { +class RedisIndexedSessionRepositoryDynamicITests extends AbstractRedisITests { private RedisIndexedSessionRepository sessionRepository; @@ -96,6 +99,30 @@ void findByIdWhenSessionDeletedWhileSavingDeltaAndSafeMapperThenSessionIsNull() assertThat(this.sessionRepository.findById(session.getId())).isNull(); } + // gh-1743 + @Test + @SuppressWarnings("unchecked") + void saveChangeSessionIdWhenFailedRenameOperationExceptionContainsMoreDetailsThenIgnoreError() { + this.context.register(Config.class); + refreshAndPrepareFields(); + + RedisSession toSave = this.sessionRepository.createSession(); + String sessionId = toSave.getId(); + + this.sessionRepository.save(toSave); + RedisSession session = this.sessionRepository.findById(sessionId); + this.sessionRepository.deleteById(sessionId); + String newSessionId = session.changeSessionId(); + + RedisSystemException redisSystemException = new RedisSystemException(null, + new RedisCommandExecutionException("ERR no such key. channel: [id: 0xec125091,...")); + willThrow(redisSystemException).given(this.spyOperations).rename(any(), any()); + + this.sessionRepository.save(session); + assertThat(this.sessionRepository.findById(sessionId)).isNull(); + assertThat(this.sessionRepository.findById(newSessionId)).isNull(); + } + @SuppressWarnings("unchecked") private void refreshAndPrepareFields() { this.context.refresh(); diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java index d7851add2..5eca65983 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java @@ -20,7 +20,6 @@ import java.util.Map; import java.util.UUID; -import io.lettuce.core.RedisCommandExecutionException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -28,7 +27,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import org.springframework.data.redis.RedisSystemException; import org.springframework.data.redis.connection.DefaultMessage; import org.springframework.data.redis.core.RedisOperations; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; @@ -47,13 +45,8 @@ import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.test.util.ReflectionTestUtils; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.BDDMockito.willThrow; -import static org.mockito.Mockito.reset; -import static org.mockito.Mockito.spy; /** * Integration tests for {@link RedisIndexedSessionRepository}. @@ -689,33 +682,6 @@ void changeSessionIdSaveConcurrently() { assertThat(this.repository.findById(copy2.getId())).isNull(); } - // gh-1743 - @Test - @SuppressWarnings("unchecked") - void saveChangeSessionIdWhenFailedRenameOperationExceptionContainsMoreDetailsThenIgnoreError() { - RedisOperations sessionRedisOperations = this.repository.getSessionRedisOperations(); - RedisOperations spyOperations = spy(sessionRedisOperations); - ReflectionTestUtils.setField(this.repository, "sessionRedisOperations", spyOperations); - - RedisSession toSave = this.repository.createSession(); - String sessionId = toSave.getId(); - - this.repository.save(toSave); - RedisIndexedSessionRepository.RedisSession session = this.repository.findById(sessionId); - this.repository.deleteById(sessionId); - String newSessionId = session.changeSessionId(); - - RedisSystemException redisSystemException = new RedisSystemException(null, - new RedisCommandExecutionException("ERR no such key. channel: [id: 0xec125091,...")); - willThrow(redisSystemException).given(spyOperations).rename(any(), any()); - - this.repository.save(session); - assertThat(this.repository.findById(sessionId)).isNull(); - assertThat(this.repository.findById(newSessionId)).isNull(); - reset(spyOperations); - ReflectionTestUtils.setField(this.repository, "sessionRedisOperations", sessionRedisOperations); - } - private String getSecurityName() { return this.context.getAuthentication().getName(); } From 917c82edd2acf868ecf605900bb3e304e57cab53 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Wed, 18 Oct 2023 14:05:32 -0300 Subject: [PATCH 055/579] Configure dependabot.yml Closes gh-2493 --- .github/dependabot.yml | 58 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..e4e4fa219 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,58 @@ +version: 2 + +registries: + spring-milestones: + type: maven-repository + url: https://repo.spring.io/milestone + +updates: + + - package-ecosystem: "gradle" + target-branch: "main" + directory: "/" + schedule: + interval: "daily" + time: "03:00" + timezone: "Etc/UTC" + labels: [ "type: dependency-upgrade" ] + registries: + - "spring-milestones" + ignore: + - dependency-name: "org.junit:junit-bom" + update-types: [ "version-update:semver-major" ] + - dependency-name: "org.mockito:mockito-bom" + update-types: [ "version-update:semver-major" ] + - dependency-name: "*" + update-types: [ "version-update:semver-major", "version-update:semver-minor" ] + + - package-ecosystem: "gradle" + target-branch: "3.1.x" + directory: "/" + schedule: + interval: "daily" + time: "03:00" + timezone: "Etc/UTC" + labels: [ "type: dependency-upgrade" ] + ignore: + - dependency-name: "org.junit:junit-bom" + update-types: [ "version-update:semver-major" ] + - dependency-name: "org.mockito:mockito-bom" + update-types: [ "version-update:semver-major" ] + - dependency-name: "*" + update-types: [ "version-update:semver-major", "version-update:semver-minor" ] + + - package-ecosystem: "gradle" + target-branch: "3.0.x" + directory: "/" + schedule: + interval: "daily" + time: "03:00" + timezone: "Etc/UTC" + labels: [ "type: dependency-upgrade" ] + ignore: + - dependency-name: "org.junit:junit-bom" + update-types: [ "version-update:semver-major" ] + - dependency-name: "org.mockito:mockito-bom" + update-types: [ "version-update:semver-major" ] + - dependency-name: "*" + update-types: [ "version-update:semver-major", "version-update:semver-minor" ] From 67a6bd21238b8da850b506b58b0d16f4da08156d Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Wed, 18 Oct 2023 14:59:43 -0300 Subject: [PATCH 056/579] Add target milestone to dependabot Issue gh-2493 --- .github/dependabot.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e4e4fa219..cf225bf71 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,6 +9,7 @@ updates: - package-ecosystem: "gradle" target-branch: "main" + milestone: 152 directory: "/" schedule: interval: "daily" @@ -27,6 +28,7 @@ updates: - package-ecosystem: "gradle" target-branch: "3.1.x" + milestone: 151 directory: "/" schedule: interval: "daily" @@ -43,6 +45,7 @@ updates: - package-ecosystem: "gradle" target-branch: "3.0.x" + milestone: 150 directory: "/" schedule: interval: "daily" From ba1fee491fa455642085a06b4326222449a15fc3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 17:06:08 +0000 Subject: [PATCH 057/579] Bump com.fasterxml.jackson:jackson-bom from 2.15.2 to 2.15.3 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.15.2 to 2.15.3. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.15.2...jackson-bom-2.15.3) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6f4a9f26c..ab4dd98f6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,7 +16,7 @@ org-testcontainers = "1.18.3" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.2" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.2" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.220" From c852f15b699faabae49a43946dded8087b415b71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 17:07:44 +0000 Subject: [PATCH 058/579] Bump org-springframework-boot from 3.1.1 to 3.1.4 Bumps `org-springframework-boot` from 3.1.1 to 3.1.4. Updates `org.springframework.boot:spring-boot-devtools` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-actuator` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-data-jpa` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-data-mongodb` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-data-mongodb-reactive` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-data-redis` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-security` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-test` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-thymeleaf` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-validation` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-web` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-webflux` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-starter-websocket` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) Updates `org.springframework.boot:spring-boot-testcontainers` from 3.1.1 to 3.1.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-devtools dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-actuator dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-jpa dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-mongodb dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-mongodb-reactive dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-redis dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-security dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-test dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-thymeleaf dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-validation dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-web dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-webflux dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-websocket dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-testcontainers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ab4dd98f6..e5eff96d8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ org-mockito = "5.5.0" org-mongodb = "4.11.0" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.7" -org-springframework-boot = "3.1.1" +org-springframework-boot = "3.1.4" org-testcontainers = "1.18.3" [libraries] From a45e7e9e639cfb32f65ad80f8453ab60de17fd44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 17:07:52 +0000 Subject: [PATCH 059/579] Bump org.springframework.boot.aot from 3.1.1 to 3.1.4 Bumps [org.springframework.boot.aot](https://github.com/spring-projects/spring-boot) from 3.1.1 to 3.1.4. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) --- updated-dependencies: - dependency-name: org.springframework.boot.aot dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e5eff96d8..7736c4306 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -127,4 +127,4 @@ nl-littlerobots-version-catalog-update = "nl.littlerobots.version-catalog-update org-antora = "org.antora:1.0.0" org-gretty = "org.gretty:4.1.0" org-springframework-boot = "org.springframework.boot:3.1.1" -org-springframework-boot-aot = "org.springframework.boot.aot:3.1.1" +org-springframework-boot-aot = "org.springframework.boot.aot:3.1.4" From b078431d9df0320aed330db2359024697c93d6f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 17:08:04 +0000 Subject: [PATCH 060/579] Bump com.hazelcast:hazelcast from 5.3.1 to 5.3.2 Bumps [com.hazelcast:hazelcast](https://github.com/hazelcast/hazelcast) from 5.3.1 to 5.3.2. - [Release notes](https://github.com/hazelcast/hazelcast/releases) - [Commits](https://github.com/hazelcast/hazelcast/compare/v5.3.1...v5.3.2) --- updated-dependencies: - dependency-name: com.hazelcast:hazelcast dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7736c4306..b9addf694 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.2" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.220" -com-hazelcast = "com.hazelcast:hazelcast:5.3.1" +com-hazelcast = "com.hazelcast:hazelcast:5.3.2" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.8.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.1.jre17" From 29513dbdfde09aa333fc4eabac47b4b1052ed946 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 04:00:36 +0000 Subject: [PATCH 061/579] Bump com.microsoft.sqlserver:mssql-jdbc Bumps [com.microsoft.sqlserver:mssql-jdbc](https://github.com/Microsoft/mssql-jdbc) from 11.2.1.jre17 to 11.2.3.jre17. - [Release notes](https://github.com/Microsoft/mssql-jdbc/releases) - [Changelog](https://github.com/microsoft/mssql-jdbc/blob/main/CHANGELOG.md) - [Commits](https://github.com/Microsoft/mssql-jdbc/commits) --- updated-dependencies: - dependency-name: com.microsoft.sqlserver:mssql-jdbc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b9addf694..2a85ee768 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ com-h2database-h2 = "com.h2database:h2:2.2.220" com-hazelcast = "com.hazelcast:hazelcast:5.3.2" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.8.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" -com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.1.jre17" +com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" From 4eea50d97c87b5f87d9cb376bcf67778549f1158 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 04:00:32 +0000 Subject: [PATCH 062/579] Bump com.google.code.gson:gson from 2.8.8 to 2.8.9 Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.8.8 to 2.8.9. - [Release notes](https://github.com/google/gson/releases) - [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md) - [Commits](https://github.com/google/gson/compare/gson-parent-2.8.8...gson-parent-2.8.9) --- updated-dependencies: - dependency-name: com.google.code.gson:gson dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 6e67e50eb..b0cedaad8 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -61,7 +61,7 @@ configurations { } dependencies { - implementation 'com.google.code.gson:gson:2.8.8' + implementation 'com.google.code.gson:gson:2.8.9' implementation 'net.sourceforge.saxon:saxon:9.1.0.8' implementation 'org.yaml:snakeyaml:1.30' implementation localGroovy() From c7dda59e6ea01f2c03e38de8116a674ffb67c8ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 04:00:28 +0000 Subject: [PATCH 063/579] Bump org.springframework.boot from 3.1.1 to 3.1.4 Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.1.1 to 3.1.4. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.1...v3.1.4) --- updated-dependencies: - dependency-name: org.springframework.boot dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2a85ee768..bcd7d7fdf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -126,5 +126,5 @@ io-spring-antora-generate-antora-yml = "io.spring.antora.generate-antora-yml:0.0 nl-littlerobots-version-catalog-update = "nl.littlerobots.version-catalog-update:0.8.1" org-antora = "org.antora:1.0.0" org-gretty = "org.gretty:4.1.0" -org-springframework-boot = "org.springframework.boot:3.1.1" +org-springframework-boot = "org.springframework.boot:3.1.4" org-springframework-boot-aot = "org.springframework.boot.aot:3.1.4" From 1e9b98d3d8f2e58279449608fe4925594eec44ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Oct 2023 04:00:22 +0000 Subject: [PATCH 064/579] Bump org.springframework.security:spring-security-config Bumps [org.springframework.security:spring-security-config](https://github.com/spring-projects/spring-security) from 6.2.0-RC1 to 6.2.0-RC2. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.0-RC1...6.2.0-RC2) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-config dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bcd7d7fdf..e922a90cb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -88,7 +88,7 @@ org-springframework-boot-spring-boot-starter-websocket = { module = "org.springf org-springframework-boot-spring-boot-testcontainers = { module = "org.springframework.boot:spring-boot-testcontainers", version.ref = "org-springframework-boot" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0-RC1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0-RC1" -org-springframework-security-spring-security-config = "org.springframework.security:spring-security-config:6.2.0-RC1" +org-springframework-security-spring-security-config = "org.springframework.security:spring-security-config:6.2.0-RC2" org-springframework-security-spring-security-core = "org.springframework.security:spring-security-core:6.2.0-RC1" org-springframework-security-spring-security-data = "org.springframework.security:spring-security-data:6.1.1" org-springframework-security-spring-security-messaging = "org.springframework.security:spring-security-messaging:6.1.1" From 09439614128f50366e97d9150daf9abb52f19d3b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Oct 2023 18:28:03 +0000 Subject: [PATCH 065/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.15.2 to 2.15.3 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.15.2 to 2.15.3. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e922a90cb..b368f5567 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ org-testcontainers = "1.18.3" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.2" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.220" com-hazelcast = "com.hazelcast:hazelcast:5.3.2" From 4b5c653a8d9925db8314fa01c277c0f1bddf0613 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Oct 2023 03:57:52 +0000 Subject: [PATCH 066/579] Bump org-springframework-boot from 3.1.4 to 3.1.5 Bumps `org-springframework-boot` from 3.1.4 to 3.1.5. Updates `org.springframework.boot:spring-boot-devtools` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-actuator` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-data-jpa` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-data-mongodb` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-data-mongodb-reactive` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-data-redis` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-security` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-test` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-thymeleaf` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-validation` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-web` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-webflux` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-starter-websocket` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) Updates `org.springframework.boot:spring-boot-testcontainers` from 3.1.4 to 3.1.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-devtools dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-actuator dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-jpa dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-mongodb dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-mongodb-reactive dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-redis dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-security dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-test dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-thymeleaf dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-validation dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-web dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-webflux dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-websocket dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-testcontainers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index eb3569485..6b6b6bac9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ org-mockito = "5.5.0" org-mongodb = "4.11.0" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.7" -org-springframework-boot = "3.1.4" +org-springframework-boot = "3.1.5" org-testcontainers = "1.18.3" [libraries] From 41aaab76fc0312a6ef6aa354d5c6861b9dcf7697 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Oct 2023 03:56:36 +0000 Subject: [PATCH 067/579] Bump ch-qos-logback from 1.4.8 to 1.4.11 Bumps `ch-qos-logback` from 1.4.8 to 1.4.11. Updates `ch.qos.logback:logback-classic` from 1.4.8 to 1.4.11 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.8...v_1.4.11) Updates `ch.qos.logback:logback-core` from 1.4.8 to 1.4.11 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.8...v_1.4.11) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6b6b6bac9..349798afe 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.4.8" +ch-qos-logback = "1.4.11" io-projectreactor = "3.6.0-RC1" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" From 5963ff619162eee14b9fa9f916d2652f781f76f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Oct 2023 03:56:29 +0000 Subject: [PATCH 068/579] Bump org.thymeleaf.extras:thymeleaf-extras-springsecurity6 Bumps org.thymeleaf.extras:thymeleaf-extras-springsecurity6 from 3.1.1.RELEASE to 3.1.2.RELEASE. --- updated-dependencies: - dependency-name: org.thymeleaf.extras:thymeleaf-extras-springsecurity6 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 349798afe..bc3402a23 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -113,7 +113,7 @@ org-testcontainers-mssqlserver = { module = "org.testcontainers:mssqlserver", ve org-testcontainers-mysql = { module = "org.testcontainers:mysql", version.ref = "org-testcontainers" } org-testcontainers-oracle-xe = { module = "org.testcontainers:oracle-xe", version.ref = "org-testcontainers" } org-testcontainers-postgresql = { module = "org.testcontainers:postgresql", version.ref = "org-testcontainers" } -org-thymeleaf-extras-thymeleaf-extras-springsecurity6 = "org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.1.RELEASE" +org-thymeleaf-extras-thymeleaf-extras-springsecurity6 = "org.thymeleaf.extras:thymeleaf-extras-springsecurity6:3.1.2.RELEASE" org-webjars-bootstrap = "org.webjars:bootstrap:2.3.2" org-webjars-html5shiv = "org.webjars:html5shiv:3.7.3-1" org-webjars-knockout = "org.webjars:knockout:3.5.1" From dd00dcbf7bd055849b731e3f7e3960d7919a64f3 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Thu, 26 Oct 2023 08:42:58 -0300 Subject: [PATCH 069/579] Remove unused dependencies from version catalog --- gradle/libs.versions.toml | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 38e590de1..4f62222e7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -89,22 +89,7 @@ org-springframework-boot-spring-boot-starter-websocket = { module = "org.springf org-springframework-boot-spring-boot-testcontainers = { module = "org.springframework.boot:spring-boot-testcontainers", version.ref = "org-springframework-boot" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0-RC1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0-RC1" -org-springframework-security-spring-security-config = "org.springframework.security:spring-security-config:6.2.0-RC2" -org-springframework-security-spring-security-core = "org.springframework.security:spring-security-core:6.2.0-RC1" -org-springframework-security-spring-security-data = "org.springframework.security:spring-security-data:6.1.1" -org-springframework-security-spring-security-messaging = "org.springframework.security:spring-security-messaging:6.1.1" -org-springframework-security-spring-security-test = "org.springframework.security:spring-security-test:6.2.0-RC1" -org-springframework-security-spring-security-web = "org.springframework.security:spring-security-web:6.2.0-RC1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0-RC1" -org-springframework-spring-context = "org.springframework:spring-context:6.1.0-RC1" -org-springframework-spring-jcl = "org.springframework:spring-jcl:6.1.0-RC1" -org-springframework-spring-jdbc = "org.springframework:spring-jdbc:6.1.0-RC1" -org-springframework-spring-messaging = "org.springframework:spring-messaging:6.1.0-RC1" -org-springframework-spring-test = "org.springframework:spring-test:6.1.0-RC1" -org-springframework-spring-web = "org.springframework:spring-web:6.1.0-RC1" -org-springframework-spring-webflux = "org.springframework:spring-webflux:6.1.0-RC1" -org-springframework-spring-webmvc = "org.springframework:spring-webmvc:6.1.0-RC1" -org-springframework-spring-websocket = "org.springframework:spring-websocket:6.1.0-RC1" org-springframework-springloaded = "org.springframework:springloaded:1.2.8.RELEASE" org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } org-testcontainers-db2 = { module = "org.testcontainers:db2", version.ref = "org-testcontainers" } From 161207b98dbde32c0bd9faee687dfb752ecd6b3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 04:03:31 +0000 Subject: [PATCH 070/579] Bump org.apache.httpcomponents:httpclient from 4.5.13 to 4.5.14 Bumps org.apache.httpcomponents:httpclient from 4.5.13 to 4.5.14. --- updated-dependencies: - dependency-name: org.apache.httpcomponents:httpclient dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4f62222e7..fe640c626 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -42,7 +42,7 @@ nz-net-ultraq-thymeleaf-thymeleaf-layout-dialect = "nz.net.ultraq.thymeleaf:thym com-squareup-okhttp3-okhttp = "com.squareup.okhttp3:okhttp:3.14.9" org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org-apache-derby" } org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } -org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.13" +org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.1" org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.19" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" From 59ada150d6c0ea05f2317899b31bad0a45b4bc69 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 04:03:29 +0000 Subject: [PATCH 071/579] Bump com.github.spullara.mustache.java:compiler from 0.9.10 to 0.9.11 Bumps [com.github.spullara.mustache.java:compiler](https://github.com/spullara/mustache.java) from 0.9.10 to 0.9.11. - [Commits](https://github.com/spullara/mustache.java/compare/0.9.10...mustache.java-0.9.11) --- updated-dependencies: - dependency-name: com.github.spullara.mustache.java:compiler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index aeb3cf970..ba4ee99ef 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -66,7 +66,7 @@ dependencies { implementation 'io.projectreactor:reactor-core:3.4.11' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' - implementation 'com.github.spullara.mustache.java:compiler:0.9.10' + implementation 'com.github.spullara.mustache.java:compiler:0.9.11' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.39' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' From 518463a2133411c319b28e1cdfb94482f15fae93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 04:03:24 +0000 Subject: [PATCH 072/579] Bump org.springframework.boot from 3.1.4 to 3.1.5 Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.1.4 to 3.1.5. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.4...v3.1.5) --- updated-dependencies: - dependency-name: org.springframework.boot dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fe640c626..bcf2e2455 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -112,5 +112,5 @@ io-spring-antora-generate-antora-yml = "io.spring.antora.generate-antora-yml:0.0 nl-littlerobots-version-catalog-update = "nl.littlerobots.version-catalog-update:0.8.1" org-antora = "org.antora:1.0.0" org-gretty = "org.gretty:4.1.0" -org-springframework-boot = "org.springframework.boot:3.1.4" -org-springframework-boot-aot = "org.springframework.boot.aot:3.1.4" +org-springframework-boot = "org.springframework.boot:3.1.5" +org-springframework-boot-aot = "org.springframework.boot.aot:3.1.5" From 84106650a39447971ad78c82079d93590e1c6724 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 24 Oct 2023 04:03:16 +0000 Subject: [PATCH 073/579] Bump io.spring.gradle:dependency-management-plugin Bumps [io.spring.gradle:dependency-management-plugin](https://github.com/spring-gradle-plugins/dependency-management-plugin) from 1.0.10.RELEASE to 1.0.15.RELEASE. - [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases) - [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.0.10.RELEASE...v1.0.15.RELEASE) --- updated-dependencies: - dependency-name: io.spring.gradle:dependency-management-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index ba4ee99ef..aed339858 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -62,7 +62,7 @@ dependencies { implementation localGroovy() implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' - implementation 'io.spring.gradle:dependency-management-plugin:1.0.10.RELEASE' + implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' implementation 'io.projectreactor:reactor-core:3.4.11' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' From 3608d8aa54cf7bd97424a33804935fced56bfae5 Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Thu, 26 Oct 2023 14:51:47 -0300 Subject: [PATCH 074/579] Log a warning if custom DefaultCookieSerializer does not have rememberMeRequestAttribute set Closes gh-2568 --- .../http/SpringHttpSessionConfiguration.java | 19 ++++++++++-- .../web/http/DefaultCookieSerializer.java | 10 ++++++ .../SpringHttpSessionConfigurationTests.java | 31 +++++++++++++++++++ 3 files changed, 57 insertions(+), 3 deletions(-) diff --git a/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.java b/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.java index b684ec337..bd952987a 100644 --- a/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.java +++ b/spring-session-core/src/main/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.java @@ -108,9 +108,7 @@ public class SpringHttpSessionConfiguration implements InitializingBean, Applica @Override public void afterPropertiesSet() { - CookieSerializer cookieSerializer = (this.cookieSerializer != null) ? this.cookieSerializer - : createDefaultCookieSerializer(); - this.defaultHttpSessionIdResolver.setCookieSerializer(cookieSerializer); + this.defaultHttpSessionIdResolver.setCookieSerializer(getCookieSerializer()); } @Bean @@ -154,6 +152,21 @@ public void setHttpSessionListeners(List listeners) { this.httpSessionListeners = listeners; } + private CookieSerializer getCookieSerializer() { + if (this.cookieSerializer != null) { + if (this.cookieSerializer instanceof DefaultCookieSerializer defaultCookieSerializer + && this.usesSpringSessionRememberMeServices + && defaultCookieSerializer.getRememberMeRequestAttribute() == null) { + this.logger.warn("Spring Session Remember Me support is enabled " + + "and the DefaultCookieSerializer is provided explicitly. " + + "The DefaultCookieSerializer must be configured with " + + "setRememberMeRequestAttribute(String) in order to support Remember Me."); + } + return this.cookieSerializer; + } + return createDefaultCookieSerializer(); + } + private CookieSerializer createDefaultCookieSerializer() { DefaultCookieSerializer cookieSerializer = new DefaultCookieSerializer(); if (this.servletContext != null) { diff --git a/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java b/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java index 6c97919c2..7b350ac38 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java @@ -434,4 +434,14 @@ private String getCookiePath(HttpServletRequest request) { return this.cookiePath; } + /** + * Gets the name of the request attribute that is checked to see if the cookie should + * be written with {@link Integer#MAX_VALUE}. + * @return the remember me request attribute + * @since 3.2 + */ + public String getRememberMeRequestAttribute() { + return this.rememberMeRequestAttribute; + } + } diff --git a/spring-session-core/src/test/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfigurationTests.java b/spring-session-core/src/test/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfigurationTests.java index c9b8abd1a..cb04e0551 100644 --- a/spring-session-core/src/test/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfigurationTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/config/annotation/web/http/SpringHttpSessionConfigurationTests.java @@ -19,8 +19,11 @@ import java.util.concurrent.ConcurrentHashMap; import jakarta.servlet.ServletContext; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; +import org.mockito.MockedStatic; import org.springframework.beans.factory.UnsatisfiedDependencyException; import org.springframework.context.annotation.AnnotationConfigApplicationContext; @@ -38,6 +41,10 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.mockStatic; +import static org.mockito.Mockito.verify; /** * Tests for {@link SpringHttpSessionConfiguration}. @@ -110,6 +117,19 @@ void rememberMeServicesConfiguration() { .isEqualTo(SpringSessionRememberMeServices.REMEMBER_ME_LOGIN_ATTR); } + @Test + void rememberMeServicesAndCustomDefaultCookieSerializerThenWarnIfRememberMeRequestAttributeNotSet() { + try (MockedStatic logFactoryMockedStatic = mockStatic(LogFactory.class)) { + Log logMock = mock(); + logFactoryMockedStatic.when(() -> LogFactory.getLog(any(Class.class))).thenReturn(logMock); + registerAndRefresh(RememberMeServicesConfiguration.class, CustomDefaultCookieSerializerConfiguration.class); + verify(logMock).warn("Spring Session Remember Me support is enabled " + + "and the DefaultCookieSerializer is provided explicitly. " + + "The DefaultCookieSerializer must be configured with " + + "setRememberMeRequestAttribute(String) in order to support Remember Me."); + } + } + @Configuration @EnableSpringHttpSession static class EmptyConfiguration { @@ -158,4 +178,15 @@ SpringSessionRememberMeServices rememberMeServices() { } + @Configuration + @EnableSpringHttpSession + static class CustomDefaultCookieSerializerConfiguration { + + @Bean + DefaultCookieSerializer defaultCookieSerializer() { + return new DefaultCookieSerializer(); + } + + } + } From 5aead137b3a71e7c8c6d68c154a1d6a210d142ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 03:16:06 +0000 Subject: [PATCH 075/579] Bump io.spring.nohttp:nohttp-checkstyle from 0.0.3.RELEASE to 0.0.11 Bumps [io.spring.nohttp:nohttp-checkstyle](https://github.com/spring-projects/spring-security) from 0.0.3.RELEASE to 0.0.11. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/commits) --- updated-dependencies: - dependency-name: io.spring.nohttp:nohttp-checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bcf2e2455..9dcd35ee5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -32,7 +32,7 @@ io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.0-RC1" io-projectreactor-reactor-core = { module = "io.projectreactor:reactor-core", version.ref = "io-projectreactor" } io-projectreactor-reactor-test = { module = "io.projectreactor:reactor-test", version.ref = "io-projectreactor" } io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.39" -io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.3.RELEASE" +io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } From d4c47bcfa92d4cad3945e185db09e99babc13e9a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 03:16:00 +0000 Subject: [PATCH 076/579] Bump org-slf4j from 2.0.7 to 2.0.9 Bumps `org-slf4j` from 2.0.7 to 2.0.9. Updates `org.slf4j:jcl-over-slf4j` from 2.0.7 to 2.0.9 Updates `org.slf4j:log4j-over-slf4j` from 2.0.7 to 2.0.9 Updates `org.slf4j:slf4j-api` from 2.0.7 to 2.0.9 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9dcd35ee5..fa578d359 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-junit-jupiter = "5.10.0" org-mockito = "5.5.0" org-mongodb = "4.11.0" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.7" +org-slf4j = "2.0.9" org-springframework-boot = "3.1.5" org-testcontainers = "1.18.3" From 5896a2911700266409a05bf02966df837b71071b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 03:15:54 +0000 Subject: [PATCH 077/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.0-RC1 to 6.2.0-RC2. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.0-RC1...6.2.0-RC2) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fa578d359..01ec3d61d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -88,7 +88,7 @@ org-springframework-boot-spring-boot-starter-webflux = { module = "org.springfra org-springframework-boot-spring-boot-starter-websocket = { module = "org.springframework.boot:spring-boot-starter-websocket", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-testcontainers = { module = "org.springframework.boot:spring-boot-testcontainers", version.ref = "org-springframework-boot" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0-RC1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0-RC1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0-RC2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0-RC1" org-springframework-springloaded = "org.springframework:springloaded:1.2.8.RELEASE" org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 4aa398425fdd8292b3b7e290c20c4b75b344a1ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 03:15:47 +0000 Subject: [PATCH 078/579] Bump org-codehaus-groovy from 3.0.17 to 3.0.19 Bumps `org-codehaus-groovy` from 3.0.17 to 3.0.19. Updates `org.codehaus.groovy:groovy-cli-commons` from 3.0.17 to 3.0.19 - [Commits](https://github.com/apache/groovy/commits) Updates `org.codehaus.groovy:groovy-json` from 3.0.17 to 3.0.19 - [Commits](https://github.com/apache/groovy/commits) --- updated-dependencies: - dependency-name: org.codehaus.groovy:groovy-cli-commons dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.codehaus.groovy:groovy-json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 01ec3d61d..437e7bcdf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ ch-qos-logback = "1.4.11" io-projectreactor = "3.6.0-RC1" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" -org-codehaus-groovy = "3.0.17" +org-codehaus-groovy = "3.0.19" org-gretty = "4.1.0" org-junit-jupiter = "5.10.0" org-mockito = "5.5.0" From 28951801ae79ada2ee2bb7c9a5c34a96fe46a6d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Oct 2023 03:15:40 +0000 Subject: [PATCH 079/579] Bump org.gretty from 4.1.0 to 4.1.1 Bumps org.gretty from 4.1.0 to 4.1.1. --- updated-dependencies: - dependency-name: org.gretty dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 437e7bcdf..d3c28aa82 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -111,6 +111,6 @@ org-webjars-webjars-locator-core = "org.webjars:webjars-locator-core:0.52" io-spring-antora-generate-antora-yml = "io.spring.antora.generate-antora-yml:0.0.1" nl-littlerobots-version-catalog-update = "nl.littlerobots.version-catalog-update:0.8.1" org-antora = "org.antora:1.0.0" -org-gretty = "org.gretty:4.1.0" +org-gretty = "org.gretty:4.1.1" org-springframework-boot = "org.springframework.boot:3.1.5" org-springframework-boot-aot = "org.springframework.boot.aot:3.1.5" From 647b4ccbc28fdead12cefb07263ee7a821568be7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 04:07:37 +0000 Subject: [PATCH 080/579] Bump org.aspectj:aspectjweaver from 1.9.19 to 1.9.20.1 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.19 to 1.9.20.1. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d3c28aa82..11c1ee382 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.1" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.19" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.20.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-codehaus-groovy-groovy-cli-commons = { module = "org.codehaus.groovy:groovy-cli-commons", version.ref = "org-codehaus-groovy" } org-codehaus-groovy-groovy-json = { module = "org.codehaus.groovy:groovy-json", version.ref = "org-codehaus-groovy" } From 3ee9ccb9e0e136e0bb1db4438d70296f2de5f338 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 04:07:28 +0000 Subject: [PATCH 081/579] Bump io-projectreactor from 3.4.11 to 3.4.33 Bumps `io-projectreactor` from 3.4.11 to 3.4.33. Updates `io.projectreactor:reactor-core` from 3.4.11 to 3.4.33 - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.11...v3.4.33) Updates `io.projectreactor:reactor-test` from 3.6.0-RC1 to 3.4.33 - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.0-RC1...v3.4.33) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: io.projectreactor:reactor-test dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index aed339858..2189572e9 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.11' + implementation 'io.projectreactor:reactor-core:3.4.33' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 11c1ee382..d8205b9a2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] ch-qos-logback = "1.4.11" -io-projectreactor = "3.6.0-RC1" +io-projectreactor = "3.4.33" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From cc361d20681957223bfbaef346520d63e59d2797 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 04:07:14 +0000 Subject: [PATCH 082/579] Bump io.lettuce:lettuce-core from 6.2.5.RELEASE to 6.2.6.RELEASE Bumps [io.lettuce:lettuce-core](https://github.com/lettuce-io/lettuce-core) from 6.2.5.RELEASE to 6.2.6.RELEASE. - [Release notes](https://github.com/lettuce-io/lettuce-core/releases) - [Changelog](https://github.com/lettuce-io/lettuce-core/blob/6.2.6.RELEASE/RELEASE-NOTES.md) - [Commits](https://github.com/lettuce-io/lettuce-core/compare/6.2.5.RELEASE...6.2.6.RELEASE) --- updated-dependencies: - dependency-name: io.lettuce:lettuce-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d8205b9a2..665ea9709 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3. com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" -io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.5.RELEASE" +io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.6.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.0-RC1" io-projectreactor-reactor-core = { module = "io.projectreactor:reactor-core", version.ref = "io-projectreactor" } io-projectreactor-reactor-test = { module = "io.projectreactor:reactor-test", version.ref = "io-projectreactor" } From 94a4edab703eff3bfb694803f91cf7f752f22758 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Oct 2023 04:07:07 +0000 Subject: [PATCH 083/579] Bump org.junit:junit-bom from 5.8.1 to 5.8.2 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.8.1 to 5.8.2. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.8.1...r5.8.2) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 2189572e9..505b4ddc4 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -75,7 +75,7 @@ dependencies { implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1' implementation libs.com.squareup.okhttp3.okhttp - testImplementation platform('org.junit:junit-bom:5.8.1') + testImplementation platform('org.junit:junit-bom:5.8.2') testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 665ea9709..1e031c97d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -54,7 +54,7 @@ org-gretty-gretty-runner-tomcat10 = { module = "org.gretty:gretty-runner-tomcat1 org-gretty-gretty-starter = { module = "org.gretty:gretty-starter", version.ref = "org-gretty" } org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" -org-junit-junit-bom = "org.junit:junit-bom:5.10.0" +org-junit-junit-bom = "org.junit:junit-bom:5.8.2" org-junit-jupiter-junit-jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "org-junit-jupiter" } org-junit-jupiter-junit-jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "org-junit-jupiter" } org-junit-jupiter-junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "org-junit-jupiter" } From dfdb680a67ac22aec6deda107f224b7a543e903b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Oct 2023 12:19:09 +0000 Subject: [PATCH 084/579] Bump org.apache.logging.log4j:log4j-core from 2.17.1 to 2.17.2 Bumps org.apache.logging.log4j:log4j-core from 2.17.1 to 2.17.2. --- updated-dependencies: - dependency-name: org.apache.logging.log4j:log4j-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1e031c97d..d0595d353 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,7 +43,7 @@ com-squareup-okhttp3-okhttp = "com.squareup.okhttp3:okhttp:3.14.9" org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org-apache-derby" } org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" -org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.1" +org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.20.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-codehaus-groovy-groovy-cli-commons = { module = "org.codehaus.groovy:groovy-cli-commons", version.ref = "org-codehaus-groovy" } From 98e75bf16e95e184294f0cc3d4f3508060f5f1b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 03:16:24 +0000 Subject: [PATCH 085/579] Bump com.gradle.enterprise from 3.12.3 to 3.12.6 Bumps com.gradle.enterprise from 3.12.3 to 3.12.6. --- updated-dependencies: - dependency-name: com.gradle.enterprise dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 0f195a97f..766c1882b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.enterprise" version "3.12.3" + id "com.gradle.enterprise" version "3.12.6" id "io.spring.ge.conventions" version "0.0.7" } From 5827602a6523c2e18032581c0e785aedb0118369 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 03:16:22 +0000 Subject: [PATCH 086/579] Bump org-gretty from 4.1.0 to 4.1.1 Bumps `org-gretty` from 4.1.0 to 4.1.1. Updates `org.gretty:gretty-runner-jetty11` from 4.1.0 to 4.1.1 - [Release notes](https://github.com/gretty-gradle-plugin/gretty/releases) - [Changelog](https://github.com/gretty-gradle-plugin/gretty/blob/master/changes.md) - [Commits](https://github.com/gretty-gradle-plugin/gretty/compare/v4.1.0...v4.1.1) Updates `org.gretty:gretty-runner-tomcat10` from 4.1.0 to 4.1.1 - [Release notes](https://github.com/gretty-gradle-plugin/gretty/releases) - [Changelog](https://github.com/gretty-gradle-plugin/gretty/blob/master/changes.md) - [Commits](https://github.com/gretty-gradle-plugin/gretty/compare/v4.1.0...v4.1.1) Updates `org.gretty:gretty-starter` from 4.1.0 to 4.1.1 - [Release notes](https://github.com/gretty-gradle-plugin/gretty/releases) - [Changelog](https://github.com/gretty-gradle-plugin/gretty/blob/master/changes.md) - [Commits](https://github.com/gretty-gradle-plugin/gretty/compare/v4.1.0...v4.1.1) --- updated-dependencies: - dependency-name: org.gretty:gretty-runner-jetty11 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.gretty:gretty-runner-tomcat10 dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.gretty:gretty-starter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d0595d353..3eb58c7e5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,7 +4,7 @@ io-projectreactor = "3.4.33" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" -org-gretty = "4.1.0" +org-gretty = "4.1.1" org-junit-jupiter = "5.10.0" org-mockito = "5.5.0" org-mongodb = "4.11.0" From 415926e305796f7e9d884f7d9d51e5a784e292db Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 03:16:01 +0000 Subject: [PATCH 087/579] Bump com.h2database:h2 from 2.2.220 to 2.2.224 Bumps [com.h2database:h2](https://github.com/h2database/h2database) from 2.2.220 to 2.2.224. - [Release notes](https://github.com/h2database/h2database/releases) - [Commits](https://github.com/h2database/h2database/compare/version-2.2.220...version-2.2.224) --- updated-dependencies: - dependency-name: com.h2database:h2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3eb58c7e5..2b3ba92ab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version. com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" -com-h2database-h2 = "com.h2database:h2:2.2.220" +com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.3.2" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.8.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" From b4addf79c4e348afedfc2c37fd497b32b555c1e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 03:15:58 +0000 Subject: [PATCH 088/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps org.jfrog.buildinfo:build-info-extractor-gradle from 4.29.0 to 4.29.4. --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 505b4ddc4..cc205ea34 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.29.0' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.29.4' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1' implementation libs.com.squareup.okhttp3.okhttp From 7c56158f940ac3ab2bdc40e55c6736a384656f43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Nov 2023 11:49:43 +0000 Subject: [PATCH 089/579] Bump com.hazelcast:hazelcast from 5.3.2 to 5.3.5 Bumps [com.hazelcast:hazelcast](https://github.com/hazelcast/hazelcast) from 5.3.2 to 5.3.5. - [Release notes](https://github.com/hazelcast/hazelcast/releases) - [Commits](https://github.com/hazelcast/hazelcast/compare/v5.3.2...v5.3.5) --- updated-dependencies: - dependency-name: com.hazelcast:hazelcast dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2b3ba92ab..5e183da4f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" -com-hazelcast = "com.hazelcast:hazelcast:5.3.2" +com-hazelcast = "com.hazelcast:hazelcast:5.3.5" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.8.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" From 339013aecddb82d9b86c6451e7e2645e08b614c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Nov 2023 03:21:57 +0000 Subject: [PATCH 090/579] Bump io.spring.ge.conventions from 0.0.7 to 0.0.14 Bumps [io.spring.ge.conventions](https://github.com/spring-io/gradle-enterprise-conventions) from 0.0.7 to 0.0.14. - [Release notes](https://github.com/spring-io/gradle-enterprise-conventions/releases) - [Commits](https://github.com/spring-io/gradle-enterprise-conventions/compare/v0.0.7...v0.0.14) --- updated-dependencies: - dependency-name: io.spring.ge.conventions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 766c1882b..1427c6f35 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,7 +7,7 @@ pluginManagement { plugins { id "com.gradle.enterprise" version "3.12.6" - id "io.spring.ge.conventions" version "0.0.7" + id "io.spring.ge.conventions" version "0.0.14" } rootProject.name = 'spring-session-build' From 999211fb78ed9aa31c70f651cf9778c03b8e31d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Nov 2023 03:21:39 +0000 Subject: [PATCH 091/579] Bump org.springframework:spring-framework-bom Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.0-RC1 to 6.1.0-RC2. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.0-RC1...v6.1.0-RC2) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5e183da4f..7152d2945 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -89,7 +89,7 @@ org-springframework-boot-spring-boot-starter-websocket = { module = "org.springf org-springframework-boot-spring-boot-testcontainers = { module = "org.springframework.boot:spring-boot-testcontainers", version.ref = "org-springframework-boot" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0-RC1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0-RC2" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0-RC1" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0-RC2" org-springframework-springloaded = "org.springframework:springloaded:1.2.8.RELEASE" org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } org-testcontainers-db2 = { module = "org.testcontainers:db2", version.ref = "org-testcontainers" } From f17ddfe578d6c0f2fccc67b2bf3a924fb97d2848 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Nov 2023 03:59:15 +0000 Subject: [PATCH 092/579] Bump org-junit-jupiter from 5.10.0 to 5.10.1 Bumps `org-junit-jupiter` from 5.10.0 to 5.10.1. Updates `org.junit.jupiter:junit-jupiter-api` from 5.10.0 to 5.10.1 - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1) Updates `org.junit.jupiter:junit-jupiter-engine` from 5.10.0 to 5.10.1 - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1) Updates `org.junit.jupiter:junit-jupiter-params` from 5.10.0 to 5.10.1 - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.0...r5.10.1) --- updated-dependencies: - dependency-name: org.junit.jupiter:junit-jupiter-api dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.junit.jupiter:junit-jupiter-engine dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.junit.jupiter:junit-jupiter-params dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7152d2945..561a24e03 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" -org-junit-jupiter = "5.10.0" +org-junit-jupiter = "5.10.1" org-mockito = "5.5.0" org-mongodb = "4.11.0" org-seleniumhq-selenium = "4.8.3" From d44fb6f47bb1a47b3a8146a4ca6430e139fb9110 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Nov 2023 03:45:14 +0000 Subject: [PATCH 093/579] Bump com.hazelcast:hazelcast from 5.3.5 to 5.3.6 Bumps [com.hazelcast:hazelcast](https://github.com/hazelcast/hazelcast) from 5.3.5 to 5.3.6. - [Release notes](https://github.com/hazelcast/hazelcast/releases) - [Commits](https://github.com/hazelcast/hazelcast/compare/v5.3.5...v5.3.6) --- updated-dependencies: - dependency-name: com.hazelcast:hazelcast dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 561a24e03..7754e55ad 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" -com-hazelcast = "com.hazelcast:hazelcast:5.3.5" +com-hazelcast = "com.hazelcast:hazelcast:5.3.6" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.8.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" From a176aa810e9dc905e6fadcbdbbbaf8320edad52d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Nov 2023 03:25:33 +0000 Subject: [PATCH 094/579] Bump org-mongodb from 4.11.0 to 4.11.1 Bumps `org-mongodb` from 4.11.0 to 4.11.1. Updates `org.mongodb:mongodb-driver-core` from 4.11.0 to 4.11.1 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.0...r4.11.1) Updates `org.mongodb:mongodb-driver-reactivestreams` from 4.11.0 to 4.11.1 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.0...r4.11.1) Updates `org.mongodb:mongodb-driver-sync` from 4.11.0 to 4.11.1 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.0...r4.11.1) --- updated-dependencies: - dependency-name: org.mongodb:mongodb-driver-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-reactivestreams dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-sync dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7754e55ad..d8a32d6b7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-junit-jupiter = "5.10.1" org-mockito = "5.5.0" -org-mongodb = "4.11.0" +org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.9" org-springframework-boot = "3.1.5" From 8869a79a6a95e3637968d4fa13cd71eec388e68c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 03:44:14 +0000 Subject: [PATCH 095/579] Bump io.projectreactor:reactor-bom from 2023.0.0-RC1 to 2023.0.0 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.0-RC1 to 2023.0.0. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.0-RC1...2023.0.0) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d8a32d6b7..862c8be52 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,7 +28,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.6.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.0-RC1" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.0" io-projectreactor-reactor-core = { module = "io.projectreactor:reactor-core", version.ref = "io-projectreactor" } io-projectreactor-reactor-test = { module = "io.projectreactor:reactor-test", version.ref = "io-projectreactor" } io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.39" From 0b22fa66dc3fc0f6b8d40f8d5da5220845d8afdf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Nov 2023 03:43:48 +0000 Subject: [PATCH 096/579] Bump io-projectreactor from 3.4.33 to 3.4.34 Bumps `io-projectreactor` from 3.4.33 to 3.4.34. Updates `io.projectreactor:reactor-core` from 3.4.33 to 3.4.34 - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.33...v3.4.34) Updates `io.projectreactor:reactor-test` from 3.4.33 to 3.4.34 - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.33...v3.4.34) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: io.projectreactor:reactor-test dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index cc205ea34..7001604eb 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.33' + implementation 'io.projectreactor:reactor-core:3.4.34' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 862c8be52..022049b62 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] ch-qos-logback = "1.4.11" -io-projectreactor = "3.4.33" +io-projectreactor = "3.4.34" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 7742cabf517108ae9ff18ae56320e4f9d97130f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Nov 2023 11:51:37 +0000 Subject: [PATCH 097/579] Bump io.lettuce:lettuce-core from 6.2.6.RELEASE to 6.2.7.RELEASE Bumps [io.lettuce:lettuce-core](https://github.com/lettuce-io/lettuce-core) from 6.2.6.RELEASE to 6.2.7.RELEASE. - [Release notes](https://github.com/lettuce-io/lettuce-core/releases) - [Changelog](https://github.com/lettuce-io/lettuce-core/blob/6.2.7.RELEASE/RELEASE-NOTES.md) - [Commits](https://github.com/lettuce-io/lettuce-core/compare/6.2.6.RELEASE...6.2.7.RELEASE) --- updated-dependencies: - dependency-name: io.lettuce:lettuce-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 022049b62..74487ccfe 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3. com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" -io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.6.RELEASE" +io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.0" io-projectreactor-reactor-core = { module = "io.projectreactor:reactor-core", version.ref = "io-projectreactor" } io-projectreactor-reactor-test = { module = "io.projectreactor:reactor-test", version.ref = "io-projectreactor" } From d4d4ce36de6cdb62b4e95157190d6e1daf971d52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 03:25:28 +0000 Subject: [PATCH 098/579] Bump io.spring.javaformat:spring-javaformat-checkstyle Bumps [io.spring.javaformat:spring-javaformat-checkstyle](https://github.com/spring-io/spring-javaformat) from 0.0.39 to 0.0.40. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.39...v0.0.40) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 74487ccfe..cb839d205 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -31,7 +31,7 @@ io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.0" io-projectreactor-reactor-core = { module = "io.projectreactor:reactor-core", version.ref = "io-projectreactor" } io-projectreactor-reactor-test = { module = "io.projectreactor:reactor-test", version.ref = "io-projectreactor" } -io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.39" +io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.40" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" From 97466ad54111f73f59b0446c1a62282f18a0de8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 03:25:16 +0000 Subject: [PATCH 099/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.39 to 0.0.40. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.39...v0.0.40) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 7001604eb..befa980ca 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.39' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.40' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From 4aa4b23c2fa9375d3570355358e1e23a3e5b97b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Nov 2023 03:25:03 +0000 Subject: [PATCH 100/579] Bump org.springframework:spring-framework-bom from 6.1.0-RC2 to 6.1.0 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.0-RC2 to 6.1.0. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.0-RC2...v6.1.0) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cb839d205..2fa88bed2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -89,7 +89,7 @@ org-springframework-boot-spring-boot-starter-websocket = { module = "org.springf org-springframework-boot-spring-boot-testcontainers = { module = "org.springframework.boot:spring-boot-testcontainers", version.ref = "org-springframework-boot" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0-RC1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0-RC2" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0-RC2" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0" org-springframework-springloaded = "org.springframework:springloaded:1.2.8.RELEASE" org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } org-testcontainers-db2 = { module = "org.testcontainers:db2", version.ref = "org-testcontainers" } From 3213a91ef583c2fa631d38e6163820a6e973aa48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 03:26:44 +0000 Subject: [PATCH 101/579] Bump org.springframework.data:spring-data-bom Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.0-RC1 to 2023.1.0. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.0-RC1...2023.1.0) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2fa88bed2..ac3071ea5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -87,7 +87,7 @@ org-springframework-boot-spring-boot-starter-web = { module = "org.springframewo org-springframework-boot-spring-boot-starter-webflux = { module = "org.springframework.boot:spring-boot-starter-webflux", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-starter-websocket = { module = "org.springframework.boot:spring-boot-starter-websocket", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-testcontainers = { module = "org.springframework.boot:spring-boot-testcontainers", version.ref = "org-springframework-boot" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0-RC1" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0-RC2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0" org-springframework-springloaded = "org.springframework:springloaded:1.2.8.RELEASE" From 63beef5c1c1a8c9e44258bfc82756e709862e241 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Nov 2023 03:26:51 +0000 Subject: [PATCH 102/579] Bump com.ibm.db2:jcc from 11.5.8.0 to 11.5.9.0 Bumps com.ibm.db2:jcc from 11.5.8.0 to 11.5.9.0. --- updated-dependencies: - dependency-name: com.ibm.db2:jcc dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ac3071ea5..de9f3d8a5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackso com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.3.6" -com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.8.0" +com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.9.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" From f00aa4994c0dfea52ab0164f6f8f47d211db3817 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Nov 2023 04:04:52 +0000 Subject: [PATCH 103/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.0-RC2 to 6.2.0. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.0-RC2...6.2.0) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index de9f3d8a5..aa1ae8516 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -88,7 +88,7 @@ org-springframework-boot-spring-boot-starter-webflux = { module = "org.springfra org-springframework-boot-spring-boot-starter-websocket = { module = "org.springframework.boot:spring-boot-starter-websocket", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-testcontainers = { module = "org.springframework.boot:spring-boot-testcontainers", version.ref = "org-springframework-boot" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0-RC2" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0" org-springframework-springloaded = "org.springframework:springloaded:1.2.8.RELEASE" org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 41e7a4c2b2882125f3a74c9ec40a09771e2d42c3 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 21 Nov 2023 08:38:51 -0300 Subject: [PATCH 104/579] Release 3.2.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 9a2381f80..2ce23a1dd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.0-SNAPSHOT +version=3.2.0 springBootVersion=3.1.1 reactorVersion=2023.0.0-RC1 From 32c845e9522aa763edceb4eb64e64496894cb9f4 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 21 Nov 2023 09:32:31 -0300 Subject: [PATCH 105/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2ce23a1dd..53df60638 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.0 +version=3.2.1-SNAPSHOT springBootVersion=3.1.1 reactorVersion=2023.0.0-RC1 From 942380279798155da2d9616e2369b1ae518f9adc Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 21 Nov 2023 09:46:17 -0300 Subject: [PATCH 106/579] Remove unused property --- gradle.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 53df60638..2952e9f7a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,4 +2,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryEr org.gradle.parallel=true version=3.2.1-SNAPSHOT springBootVersion=3.1.1 -reactorVersion=2023.0.0-RC1 From 3f1d47b827e0f27a1a2d31d9c45d65568b57d626 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Nov 2023 03:17:53 +0000 Subject: [PATCH 107/579] Bump org.springframework.boot from 3.1.5 to 3.1.6 Bumps [org.springframework.boot](https://github.com/spring-projects/spring-boot) from 3.1.5 to 3.1.6. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) --- updated-dependencies: - dependency-name: org.springframework.boot dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index aa1ae8516..8514b5d33 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -112,5 +112,5 @@ io-spring-antora-generate-antora-yml = "io.spring.antora.generate-antora-yml:0.0 nl-littlerobots-version-catalog-update = "nl.littlerobots.version-catalog-update:0.8.1" org-antora = "org.antora:1.0.0" org-gretty = "org.gretty:4.1.1" -org-springframework-boot = "org.springframework.boot:3.1.5" -org-springframework-boot-aot = "org.springframework.boot.aot:3.1.5" +org-springframework-boot = "org.springframework.boot:3.1.6" +org-springframework-boot-aot = "org.springframework.boot.aot:3.1.6" From 0545c6df4b6d024caaa401a6554b7248f9b87219 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Nov 2023 03:17:29 +0000 Subject: [PATCH 108/579] Bump org.springframework:spring-framework-bom from 6.1.0 to 6.1.1 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.0...v6.1.1) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8514b5d33..b970db85e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -89,7 +89,7 @@ org-springframework-boot-spring-boot-starter-websocket = { module = "org.springf org-springframework-boot-spring-boot-testcontainers = { module = "org.springframework.boot:spring-boot-testcontainers", version.ref = "org-springframework-boot" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.0" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.1" org-springframework-springloaded = "org.springframework:springloaded:1.2.8.RELEASE" org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } org-testcontainers-db2 = { module = "org.testcontainers:db2", version.ref = "org-testcontainers" } From a293407304ee0dc16d01debe3be3731dc97491c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Nov 2023 03:17:17 +0000 Subject: [PATCH 109/579] Bump org-springframework-boot from 3.1.5 to 3.1.6 Bumps `org-springframework-boot` from 3.1.5 to 3.1.6. Updates `org.springframework.boot:spring-boot-devtools` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-actuator` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-data-jpa` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-data-mongodb` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-data-mongodb-reactive` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-data-redis` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-security` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-test` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-thymeleaf` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-validation` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-web` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-webflux` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-starter-websocket` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) Updates `org.springframework.boot:spring-boot-testcontainers` from 3.1.5 to 3.1.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.1.5...v3.1.6) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-devtools dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-actuator dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-jpa dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-mongodb dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-mongodb-reactive dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-data-redis dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-security dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-test dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-thymeleaf dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-validation dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-web dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-webflux dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-starter-websocket dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-testcontainers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b970db85e..600a902f9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ org-mockito = "5.5.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.9" -org-springframework-boot = "3.1.5" +org-springframework-boot = "3.1.6" org-testcontainers = "1.18.3" [libraries] From f4b6f090229e091eb91d12962c6ae1647056d4a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Nov 2023 03:11:06 +0000 Subject: [PATCH 110/579] Bump ch-qos-logback from 1.4.11 to 1.4.13 Bumps `ch-qos-logback` from 1.4.11 to 1.4.13. Updates `ch.qos.logback:logback-classic` from 1.4.11 to 1.4.13 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.11...v_1.4.13) Updates `ch.qos.logback:logback-core` from 1.4.11 to 1.4.13 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.11...v_1.4.13) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9a2e71bee..5a9a2a037 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.4.11" +ch-qos-logback = "1.4.13" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 2877d9a95ab3f8b66b64e00d4b569d61b6e1c90d Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Thu, 7 Dec 2023 10:45:40 -0300 Subject: [PATCH 111/579] Prepare for 3.3 Closes gh-2670 --- .github/dependabot.yml | 19 +++++++++++++++++++ gradle.properties | 2 +- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index cf225bf71..60996b1e0 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,6 +9,25 @@ updates: - package-ecosystem: "gradle" target-branch: "main" + milestone: 154 + directory: "/" + schedule: + interval: "daily" + time: "03:00" + timezone: "Etc/UTC" + labels: [ "type: dependency-upgrade" ] + registries: + - "spring-milestones" + ignore: + - dependency-name: "org.junit:junit-bom" + update-types: [ "version-update:semver-major" ] + - dependency-name: "org.mockito:mockito-bom" + update-types: [ "version-update:semver-major" ] + - dependency-name: "*" + update-types: [ "version-update:semver-major", "version-update:semver-minor" ] + + - package-ecosystem: "gradle" + target-branch: "3.2.x" milestone: 152 directory: "/" schedule: diff --git a/gradle.properties b/gradle.properties index 004368a22..8f16aac4b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.1-SNAPSHOT +version=3.3.0-SNAPSHOT From a3956942beca247b85c5c39fdee84b52dc508099 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 12 Dec 2023 09:46:40 -0300 Subject: [PATCH 112/579] Use 3.3.x for main_branch Issue gh-2670 --- git/hooks/prepare-forward-merge | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git/hooks/prepare-forward-merge b/git/hooks/prepare-forward-merge index 659c4152b..dfc548995 100755 --- a/git/hooks/prepare-forward-merge +++ b/git/hooks/prepare-forward-merge @@ -4,7 +4,7 @@ require 'net/http' require 'yaml' require 'logger' -$main_branch = "3.2.x" +$main_branch = "3.3.x" $log = Logger.new(STDOUT) $log.level = Logger::WARN From 06274815cb91a03177fef5e56d845bd5ecb4db64 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 12 Dec 2023 09:47:45 -0300 Subject: [PATCH 113/579] Remove 3.0.x from Dependabot --- .github/dependabot.yml | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 60996b1e0..9d2f9a6c9 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -61,20 +61,3 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "*" update-types: [ "version-update:semver-major", "version-update:semver-minor" ] - - - package-ecosystem: "gradle" - target-branch: "3.0.x" - milestone: 150 - directory: "/" - schedule: - interval: "daily" - time: "03:00" - timezone: "Etc/UTC" - labels: [ "type: dependency-upgrade" ] - ignore: - - dependency-name: "org.junit:junit-bom" - update-types: [ "version-update:semver-major" ] - - dependency-name: "org.mockito:mockito-bom" - update-types: [ "version-update:semver-major" ] - - dependency-name: "*" - update-types: [ "version-update:semver-major", "version-update:semver-minor" ] From 702406d86725114b97c82c9fa5606e653b777479 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 03:38:06 +0000 Subject: [PATCH 114/579] Bump org.aspectj:aspectjweaver from 1.9.20.1 to 1.9.21 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.20.1 to 1.9.21. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5a9a2a037..40ceb61e4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.20.1" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From 6098d3e18aa3e463f3a633bd04ee307b253d1298 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 12:49:06 +0000 Subject: [PATCH 115/579] Bump io.projectreactor:reactor-bom from 2023.0.0 to 2023.0.1 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.0 to 2023.0.1. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.0...2023.0.1) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 40ceb61e4..42a0fed20 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.0" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.1" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.40" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From eeb0573c415371eaedfece5307a52ee470969184 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 13:46:20 +0000 Subject: [PATCH 116/579] Bump ch-qos-logback from 1.4.13 to 1.4.14 Bumps `ch-qos-logback` from 1.4.13 to 1.4.14. Updates `ch.qos.logback:logback-classic` from 1.4.13 to 1.4.14 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.13...v_1.4.14) Updates `ch.qos.logback:logback-core` from 1.4.13 to 1.4.14 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.13...v_1.4.14) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 42a0fed20..f79eb913a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.4.13" +ch-qos-logback = "1.4.14" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From ca660620f23edccd7a0163d32f5960419ed591e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Dec 2023 12:48:31 +0000 Subject: [PATCH 117/579] Bump io.projectreactor:reactor-bom from 2023.0.0 to 2023.0.1 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.0 to 2023.0.1. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.0...2023.0.1) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5a9a2a037..519fcbb36 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.0" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.1" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.40" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From ac1eaea1af1bf52a108ade3b70f7b1ddad02b710 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Dec 2023 03:46:41 +0000 Subject: [PATCH 118/579] Bump org.aspectj:aspectjweaver from 1.9.20.1 to 1.9.21 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.20.1 to 1.9.21. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 519fcbb36..42a0fed20 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.20.1" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From 552a619d8f27f0670c4197d478a57249403d6cd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Dec 2023 03:53:00 +0000 Subject: [PATCH 119/579] Bump ch-qos-logback from 1.4.13 to 1.4.14 Bumps `ch-qos-logback` from 1.4.13 to 1.4.14. Updates `ch.qos.logback:logback-classic` from 1.4.13 to 1.4.14 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.13...v_1.4.14) Updates `ch.qos.logback:logback-core` from 1.4.13 to 1.4.14 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.13...v_1.4.14) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 42a0fed20..f79eb913a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.4.13" +ch-qos-logback = "1.4.14" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From ae806e4eb51ea4fb58c77725300c26daebf224df Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Fri, 15 Dec 2023 10:31:35 -0300 Subject: [PATCH 120/579] Include GitHub Actions in Dependabot version updates Closes gh-2685 --- .github/dependabot.yml | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 9d2f9a6c9..b57b52e0a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -61,3 +61,29 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "*" update-types: [ "version-update:semver-major", "version-update:semver-minor" ] + + # GitHub Actions + + - package-ecosystem: github-actions + target-branch: "main" + milestone: 154 + directory: "/" + schedule: + interval: weekly + - package-ecosystem: github-actions + target-branch: "3.2.x" + milestone: 152 + directory: "/" + schedule: + interval: weekly + - package-ecosystem: github-actions + target-branch: "3.1.x" + milestone: 151 + directory: "/" + schedule: + interval: weekly + - package-ecosystem: github-actions + target-branch: "docs-build" + directory: "/" + schedule: + interval: weekly From 52ab7b057f70ea22a1a1c7aca8ed498749d467df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 13:32:21 +0000 Subject: [PATCH 121/579] Bump actions/setup-java from 3 to 4 Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/continuous-integration-workflow.yml | 6 +++--- .github/workflows/pr-build-workflow.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 2d6ce386e..6c318010b 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -27,7 +27,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up JDK ${{ matrix.jdk }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -55,7 +55,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' @@ -85,7 +85,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' diff --git a/.github/workflows/pr-build-workflow.yml b/.github/workflows/pr-build-workflow.yml index 23f5fd10f..dd64be99d 100644 --- a/.github/workflows/pr-build-workflow.yml +++ b/.github/workflows/pr-build-workflow.yml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up JDK ${{ matrix.jdk }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' From 00e5bbd6e17d641167d30a347c0d98687a4308fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 13:32:16 +0000 Subject: [PATCH 122/579] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/continuous-integration-workflow.yml | 6 +++--- .github/workflows/deploy-docs.yml | 2 +- .github/workflows/gradle-wrapper-validation.yml | 2 +- .github/workflows/pr-build-workflow.yml | 2 +- .github/workflows/rebuild-search-index.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 6c318010b..f15cf196c 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -25,7 +25,7 @@ jobs: jdk: [17] fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.jdk }} uses: actions/setup-java@v4 with: @@ -53,7 +53,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'spring-projects/spring-session' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK uses: actions/setup-java@v4 with: @@ -83,7 +83,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'spring-projects/spring-session' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK uses: actions/setup-java@v4 with: diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 24af311b5..25381d0f8 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -17,7 +17,7 @@ jobs: if: github.repository_owner == 'spring-projects' steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: docs-build fetch-depth: 1 diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 8bfd0dcf5..b63fdf355 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -6,5 +6,5 @@ jobs: name: "Validation" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/pr-build-workflow.yml b/.github/workflows/pr-build-workflow.yml index dd64be99d..120222b7b 100644 --- a/.github/workflows/pr-build-workflow.yml +++ b/.github/workflows/pr-build-workflow.yml @@ -12,7 +12,7 @@ jobs: jdk: [17] fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.jdk }} uses: actions/setup-java@v4 with: diff --git a/.github/workflows/rebuild-search-index.yml b/.github/workflows/rebuild-search-index.yml index 960328e92..6638a9e6b 100644 --- a/.github/workflows/rebuild-search-index.yml +++ b/.github/workflows/rebuild-search-index.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: docs-build fetch-depth: 1 From adc1c149ee1e2a70252835bd6d981e0828156083 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 03:51:21 +0000 Subject: [PATCH 123/579] Bump org.springframework:spring-framework-bom from 6.1.1 to 6.1.2 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.1 to 6.1.2. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.1...v6.1.2) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f79eb913a..f0ded6dcc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.1" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From ada92d8512ee0c52bf31cfc605ef9e7921590d6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 13:32:36 +0000 Subject: [PATCH 124/579] Bump actions/setup-java from 3 to 4 Bumps [actions/setup-java](https://github.com/actions/setup-java) from 3 to 4. - [Release notes](https://github.com/actions/setup-java/releases) - [Commits](https://github.com/actions/setup-java/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-java dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/continuous-integration-workflow.yml | 6 +++--- .github/workflows/pr-build-workflow.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 2d6ce386e..6c318010b 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -27,7 +27,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up JDK ${{ matrix.jdk }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' @@ -55,7 +55,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' @@ -85,7 +85,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up JDK - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: '17' distribution: 'temurin' diff --git a/.github/workflows/pr-build-workflow.yml b/.github/workflows/pr-build-workflow.yml index 23f5fd10f..dd64be99d 100644 --- a/.github/workflows/pr-build-workflow.yml +++ b/.github/workflows/pr-build-workflow.yml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up JDK ${{ matrix.jdk }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: java-version: ${{ matrix.jdk }} distribution: 'temurin' From 3601827f7423d50522292d23a3143c8772bf71a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 13:32:30 +0000 Subject: [PATCH 125/579] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/continuous-integration-workflow.yml | 6 +++--- .github/workflows/deploy-docs.yml | 2 +- .github/workflows/gradle-wrapper-validation.yml | 2 +- .github/workflows/pr-build-workflow.yml | 2 +- .github/workflows/rebuild-search-index.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/continuous-integration-workflow.yml b/.github/workflows/continuous-integration-workflow.yml index 6c318010b..f15cf196c 100644 --- a/.github/workflows/continuous-integration-workflow.yml +++ b/.github/workflows/continuous-integration-workflow.yml @@ -25,7 +25,7 @@ jobs: jdk: [17] fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.jdk }} uses: actions/setup-java@v4 with: @@ -53,7 +53,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'spring-projects/spring-session' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK uses: actions/setup-java@v4 with: @@ -83,7 +83,7 @@ jobs: runs-on: ubuntu-latest if: github.repository == 'spring-projects/spring-session' steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK uses: actions/setup-java@v4 with: diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 24af311b5..25381d0f8 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -17,7 +17,7 @@ jobs: if: github.repository_owner == 'spring-projects' steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: docs-build fetch-depth: 1 diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 8bfd0dcf5..b63fdf355 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -6,5 +6,5 @@ jobs: name: "Validation" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: gradle/wrapper-validation-action@v1 diff --git a/.github/workflows/pr-build-workflow.yml b/.github/workflows/pr-build-workflow.yml index dd64be99d..120222b7b 100644 --- a/.github/workflows/pr-build-workflow.yml +++ b/.github/workflows/pr-build-workflow.yml @@ -12,7 +12,7 @@ jobs: jdk: [17] fail-fast: false steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.jdk }} uses: actions/setup-java@v4 with: diff --git a/.github/workflows/rebuild-search-index.yml b/.github/workflows/rebuild-search-index.yml index 960328e92..6638a9e6b 100644 --- a/.github/workflows/rebuild-search-index.yml +++ b/.github/workflows/rebuild-search-index.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: ref: docs-build fetch-depth: 1 From d0bbe607c3acda3b342af3ceec28ee14c23639c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Dec 2023 03:50:16 +0000 Subject: [PATCH 126/579] Bump org.springframework:spring-framework-bom from 6.1.1 to 6.1.2 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.1 to 6.1.2. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.1...v6.1.2) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f79eb913a..f0ded6dcc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.1" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 688c641adc5139c2d2bbfc8c75340021da86c791 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Dec 2023 03:14:41 +0000 Subject: [PATCH 127/579] Bump org.springframework.data:spring-data-bom from 2023.1.0 to 2023.1.1 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.0 to 2023.1.1. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.0...2023.1.1) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f0ded6dcc..2de122beb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 0cdf6c6f6aace792198bdfd2c0092a46c2de0c04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 11:22:35 +0000 Subject: [PATCH 128/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.0...6.2.1) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2de122beb..07b5ce880 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 60eb54dc8def17c66a86d6508764b9ef2260db2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 03:15:59 +0000 Subject: [PATCH 129/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.0...6.2.1) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f0ded6dcc..7beccea08 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.0" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 94aecf4f4e518988fd97ed11d55c73308a4f38cc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Dec 2023 11:24:10 +0000 Subject: [PATCH 130/579] Bump org.springframework.data:spring-data-bom from 2023.1.0 to 2023.1.1 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.0 to 2023.1.1. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.0...2023.1.1) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7beccea08..07b5ce880 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.0" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From d9b9f09fe8d39bafdb0267f7a8ba2053075c6517 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 19 Dec 2023 08:28:51 -0300 Subject: [PATCH 131/579] Release 3.2.1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 004368a22..e8a73a618 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.1-SNAPSHOT +version=3.2.1 From 13a16cec0157bb40fa3918db306a421c0c02f574 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 19 Dec 2023 08:56:48 -0300 Subject: [PATCH 132/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e8a73a618..77cb1d2fd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.1 +version=3.2.2-SNAPSHOT From 52ae2ed783ab2a92c1f3763c046d25bcfcbf0766 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Dec 2023 03:39:08 +0000 Subject: [PATCH 133/579] Bump org-springframework-boot from 3.2.0 to 3.2.1 Bumps `org-springframework-boot` from 3.2.0 to 3.2.1. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.0 to 3.2.1 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.0...v3.2.1) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.0 to 3.2.1 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.0...v3.2.1) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 07b5ce880..4f1c13f7f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.9" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.0" +org-springframework-boot = "3.2.1" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 30493184272134df6d05d13553af2312bef9a1d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Dec 2023 03:39:07 +0000 Subject: [PATCH 134/579] Bump org-springframework-boot from 3.2.0 to 3.2.1 Bumps `org-springframework-boot` from 3.2.0 to 3.2.1. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.0 to 3.2.1 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.0...v3.2.1) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.0 to 3.2.1 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.0...v3.2.1) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 07b5ce880..4f1c13f7f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.9" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.0" +org-springframework-boot = "3.2.1" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From e65da12d82f877bd54f9f9b5adc7632fdff753da Mon Sep 17 00:00:00 2001 From: Marcus Da Coregio Date: Thu, 3 Aug 2023 11:50:34 -0300 Subject: [PATCH 135/579] Add ReactiveRedisIndexedSessionRepository Closes gh-2700 --- gradle/libs.versions.toml | 1 + .../session/PrincipalNameIndexResolver.java | 9 + ...ctiveFindByIndexNameSessionRepository.java | 60 ++ .../spring-session-data-redis.gradle | 4 +- .../data/redis/AbstractRedisITests.java | 13 +- ...dSessionRepositoryConfigurationITests.java | 184 ++++ ...veRedisIndexedSessionRepositoryITests.java | 728 ++++++++++++++++ ...ReactiveRedisIndexedSessionRepository.java | 788 ++++++++++++++++++ .../redis/ReactiveRedisSessionIndexer.java | 152 ++++ ...etReactiveRedisSessionExpirationStore.java | 98 +++ .../config/ConfigureReactiveRedisAction.java | 39 + ...ureNotifyKeyspaceEventsReactiveAction.java | 88 ++ .../AbstractRedisWebSessionConfiguration.java | 148 ++++ .../server/EnableRedisIndexedWebSession.java | 89 ++ .../RedisIndexedWebSessionConfiguration.java | 205 +++++ .../ReactiveRedisSessionIndexerTests.java | 197 +++++ ...ctiveRedisSessionExpirationStoreTests.java | 91 ++ .../spring-session-dependencies.gradle | 1 + spring-session-docs/modules/ROOT/nav.adoc | 4 +- .../configuration/reactive-redis-indexed.adoc | 227 +++++ ...-sample-boot-reactive-redis-indexed.gradle | 21 + .../java/com/example/IndexController.java | 43 + .../main/java/com/example/SecurityConfig.java | 60 ++ .../main/java/com/example/SessionConfig.java | 26 + ...leBootReactiveRedisIndexedApplication.java | 29 + .../src/main/resources/application.properties | 1 + .../src/main/resources/templates/index.html | 16 + .../src/test/java/com/example/BasePage.java | 41 + .../src/test/java/com/example/HomePage.java | 96 +++ .../src/test/java/com/example/LoginPage.java | 66 ++ ...edisIndexedApplicationTestApplication.java | 31 + ...tReactiveRedisIndexedApplicationTests.java | 58 ++ .../com/example/TestcontainersConfig.java | 35 + .../java/sample/config/SessionConfig.java | 5 + 34 files changed, 3646 insertions(+), 8 deletions(-) create mode 100644 spring-session-core/src/main/java/org/springframework/session/ReactiveFindByIndexNameSessionRepository.java create mode 100644 spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepositoryConfigurationITests.java create mode 100644 spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepositoryITests.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionIndexer.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/SortedSetReactiveRedisSessionExpirationStore.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/ConfigureReactiveRedisAction.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/ConfigureNotifyKeyspaceEventsReactiveAction.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/AbstractRedisWebSessionConfiguration.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/EnableRedisIndexedWebSession.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisIndexedWebSessionConfiguration.java create mode 100644 spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionIndexerTests.java create mode 100644 spring-session-data-redis/src/test/java/org/springframework/session/data/redis/SortedSetReactiveRedisSessionExpirationStoreTests.java create mode 100644 spring-session-docs/modules/ROOT/pages/configuration/reactive-redis-indexed.adoc create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/spring-session-sample-boot-reactive-redis-indexed.gradle create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/IndexController.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SecurityConfig.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SessionConfig.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplication.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/resources/application.properties create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/resources/templates/index.html create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/BasePage.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/HomePage.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/LoginPage.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplicationTestApplication.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplicationTests.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/TestcontainersConfig.java diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4f1c13f7f..8aaa2c2c8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -63,5 +63,6 @@ org-springframework-spring-framework-bom = "org.springframework:spring-framework org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } +org-awaitility-awaitility = "org.awaitility:awaitility:4.2.0" [plugins] diff --git a/spring-session-core/src/main/java/org/springframework/session/PrincipalNameIndexResolver.java b/spring-session-core/src/main/java/org/springframework/session/PrincipalNameIndexResolver.java index f4d7e87b6..3d79d86cb 100644 --- a/spring-session-core/src/main/java/org/springframework/session/PrincipalNameIndexResolver.java +++ b/spring-session-core/src/main/java/org/springframework/session/PrincipalNameIndexResolver.java @@ -38,6 +38,15 @@ public PrincipalNameIndexResolver() { super(FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME); } + /** + * Create a new instance specifying the name of the index to be resolved. + * @param indexName the name of the index to be resolved + * @since 3.3 + */ + public PrincipalNameIndexResolver(String indexName) { + super(indexName); + } + public String resolveIndexValueFor(S session) { String principalName = session.getAttribute(getIndexName()); if (principalName != null) { diff --git a/spring-session-core/src/main/java/org/springframework/session/ReactiveFindByIndexNameSessionRepository.java b/spring-session-core/src/main/java/org/springframework/session/ReactiveFindByIndexNameSessionRepository.java new file mode 100644 index 000000000..d5b3ab24b --- /dev/null +++ b/spring-session-core/src/main/java/org/springframework/session/ReactiveFindByIndexNameSessionRepository.java @@ -0,0 +1,60 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session; + +import java.util.Map; + +import reactor.core.publisher.Mono; + +/** + * Allow finding sessions by the specified index name and index value. + * + * @param the type of Session being managed by this + * {@link ReactiveFindByIndexNameSessionRepository} + * @author Marcus da Coregio + * @since 3.3 + */ +public interface ReactiveFindByIndexNameSessionRepository { + + /** + * A session index that contains the current principal name (i.e. username). + *

+ * It is the responsibility of the developer to ensure the index is populated since + * Spring Session is not aware of the authentication mechanism being used. + */ + String PRINCIPAL_NAME_INDEX_NAME = "PRINCIPAL_NAME_INDEX_NAME"; + + /** + * Find a {@link Map} of the session id to the {@link Session} of all sessions that + * contain the specified index name index value. + * @param indexName the name of the index (i.e. {@link #PRINCIPAL_NAME_INDEX_NAME}) + * @param indexValue the value of the index to search for. + * @return a {@code Map} (never {@code null}) of the session id to the {@code Session} + */ + Mono> findByIndexNameAndIndexValue(String indexName, String indexValue); + + /** + * A shortcut for {@link #findByIndexNameAndIndexValue(String, String)} that uses + * {@link #PRINCIPAL_NAME_INDEX_NAME} for the index name. + * @param principalName the principal name + * @return a {@code Map} (never {@code null}) of the session id to the {@code Session} + */ + default Mono> findByPrincipalName(String principalName) { + return findByIndexNameAndIndexValue(PRINCIPAL_NAME_INDEX_NAME, principalName); + } + +} diff --git a/spring-session-data-redis/spring-session-data-redis.gradle b/spring-session-data-redis/spring-session-data-redis.gradle index 8fc071a2d..fa027249b 100644 --- a/spring-session-data-redis/spring-session-data-redis.gradle +++ b/spring-session-data-redis/spring-session-data-redis.gradle @@ -21,8 +21,10 @@ dependencies { testImplementation "org.springframework:spring-web" testImplementation "org.springframework.security:spring-security-core" testImplementation "org.junit.jupiter:junit-jupiter-api" + testImplementation "org.awaitility:awaitility" + testImplementation "io.lettuce:lettuce-core" testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine" - integrationTestCompile "io.lettuce:lettuce-core" integrationTestCompile "org.testcontainers:testcontainers" + integrationTestCompile "com.redis:testcontainers-redis:1.7.0" } diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java index f5616ac05..b4d9a2aa8 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/AbstractRedisITests.java @@ -16,7 +16,7 @@ package org.springframework.session.data.redis; -import org.testcontainers.containers.GenericContainer; +import com.redis.testcontainers.RedisContainer; import org.springframework.context.annotation.Bean; import org.springframework.data.redis.connection.RedisStandaloneConfiguration; @@ -34,16 +34,17 @@ public abstract class AbstractRedisITests { protected static class BaseConfig { @Bean - public GenericContainer redisContainer() { - GenericContainer redisContainer = new GenericContainer(DOCKER_IMAGE).withExposedPorts(6379); + public RedisContainer redisContainer() { + RedisContainer redisContainer = new RedisContainer( + RedisContainer.DEFAULT_IMAGE_NAME.withTag(RedisContainer.DEFAULT_TAG)); redisContainer.start(); return redisContainer; } @Bean - public LettuceConnectionFactory redisConnectionFactory() { - RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(redisContainer().getHost(), - redisContainer().getFirstMappedPort()); + public LettuceConnectionFactory redisConnectionFactory(RedisContainer redisContainer) { + RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration(redisContainer.getHost(), + redisContainer.getFirstMappedPort()); return new LettuceConnectionFactory(configuration); } diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepositoryConfigurationITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepositoryConfigurationITests.java new file mode 100644 index 000000000..11aa3c959 --- /dev/null +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepositoryConfigurationITests.java @@ -0,0 +1,184 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Duration; +import java.time.Instant; +import java.time.temporal.ChronoUnit; +import java.util.Comparator; +import java.util.UUID; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.core.ReactiveRedisOperations; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.session.Session; +import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; +import org.springframework.session.data.SessionEventRegistry; +import org.springframework.session.data.redis.ReactiveRedisIndexedSessionRepository.RedisSession; +import org.springframework.session.data.redis.config.ConfigureReactiveRedisAction; +import org.springframework.session.data.redis.config.annotation.web.server.EnableRedisIndexedWebSession; +import org.springframework.session.events.SessionCreatedEvent; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.awaitility.Awaitility.await; + +@ExtendWith(SpringExtension.class) +class ReactiveRedisIndexedSessionRepositoryConfigurationITests { + + ReactiveRedisIndexedSessionRepository repository; + + ReactiveRedisOperations sessionRedisOperations; + + AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); + + SecurityContext securityContext; + + @BeforeEach + void setup() { + this.securityContext = SecurityContextHolder.createEmptyContext(); + this.securityContext.setAuthentication(new UsernamePasswordAuthenticationToken("username-" + UUID.randomUUID(), + "na", AuthorityUtils.createAuthorityList("ROLE_USER"))); + } + + @Test + void cleanUpTaskWhenSessionIsExpiredThenAllRelatedKeysAreDeleted() { + registerConfig(OneSecCleanUpIntervalConfig.class); + RedisSession session = this.repository.createSession().block(); + session.setAttribute("SPRING_SECURITY_CONTEXT", this.securityContext); + this.repository.save(session).block(); + await().atMost(Duration.ofSeconds(3)).untilAsserted(() -> { + assertThat(this.repository.findById(session.getId()).block()).isNull(); + Boolean hasSessionKey = this.sessionRedisOperations.hasKey("spring:session:sessions:" + session.getId()) + .block(); + Boolean hasSessionIndexesKey = this.sessionRedisOperations + .hasKey("spring:session:sessions:" + session.getId() + ":idx") + .block(); + Boolean hasPrincipalIndexKey = this.sessionRedisOperations + .hasKey("spring:session:sessions:index:" + + ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME + ":" + + this.securityContext.getAuthentication().getName()) + .block(); + Long expirationsSize = this.sessionRedisOperations.opsForZSet() + .size("spring:session:sessions:expirations") + .block(); + assertThat(hasSessionKey).isFalse(); + assertThat(hasSessionIndexesKey).isFalse(); + assertThat(hasPrincipalIndexKey).isFalse(); + assertThat(expirationsSize).isZero(); + }); + } + + @Test + void onSessionCreatedWhenUsingJsonSerializerThenEventDeserializedCorrectly() throws InterruptedException { + registerConfig(SessionEventRegistryJsonSerializerConfig.class); + RedisSession session = this.repository.createSession().block(); + this.repository.save(session).block(); + SessionEventRegistry registry = this.context.getBean(SessionEventRegistry.class); + SessionCreatedEvent event = registry.getEvent(session.getId()); + Session eventSession = event.getSession(); + assertThat(eventSession).usingRecursiveComparison() + .withComparatorForFields(new InstantComparator(), "cached.creationTime", "cached.lastAccessedTime") + .isEqualTo(session); + } + + @Test + void sessionExpiredWhenNoCleanUpTaskAndNoKeyspaceEventsThenNoCleanup() { + registerConfig(DisableCleanupTaskAndNoKeyspaceEventsConfig.class); + RedisSession session = this.repository.createSession().block(); + this.repository.save(session).block(); + await().during(Duration.ofSeconds(3)).untilAsserted(() -> { + Boolean exists = this.sessionRedisOperations.hasKey("spring:session:sessions:" + session.getId()).block(); + assertThat(exists).isTrue(); + }); + } + + private void registerConfig(Class clazz) { + this.context.register(clazz); + this.context.refresh(); + this.repository = this.context.getBean(ReactiveRedisIndexedSessionRepository.class); + this.sessionRedisOperations = this.repository.getSessionRedisOperations(); + } + + static class InstantComparator implements Comparator { + + @Override + public int compare(Instant o1, Instant o2) { + return o1.truncatedTo(ChronoUnit.SECONDS).compareTo(o2.truncatedTo(ChronoUnit.SECONDS)); + } + + } + + @Configuration(proxyBeanMethods = false) + @EnableRedisIndexedWebSession(maxInactiveIntervalInSeconds = 1) + @Import(AbstractRedisITests.BaseConfig.class) + static class OneSecCleanUpIntervalConfig { + + @Bean + ReactiveSessionRepositoryCustomizer customizer() { + return (sessionRepository) -> sessionRepository.setCleanupInterval(Duration.ofSeconds(1)); + } + + } + + @Configuration(proxyBeanMethods = false) + @EnableRedisIndexedWebSession + @Import(AbstractRedisITests.BaseConfig.class) + static class SessionEventRegistryJsonSerializerConfig { + + @Bean + SessionEventRegistry sessionEventRegistry() { + return new SessionEventRegistry(); + } + + @Bean + RedisSerializer springSessionDefaultRedisSerializer() { + return RedisSerializer.json(); + } + + } + + @Configuration(proxyBeanMethods = false) + @EnableRedisIndexedWebSession(maxInactiveIntervalInSeconds = 1) + @Import(AbstractRedisITests.BaseConfig.class) + static class DisableCleanupTaskAndNoKeyspaceEventsConfig { + + @Bean + ReactiveSessionRepositoryCustomizer customizer() { + return ReactiveRedisIndexedSessionRepository::disableCleanupTask; + } + + @Bean + ConfigureReactiveRedisAction configureReactiveRedisAction() { + return (connection) -> connection.serverCommands().setConfig("notify-keyspace-events", "").then(); + } + + } + +} diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepositoryITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepositoryITests.java new file mode 100644 index 000000000..b59dc533d --- /dev/null +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepositoryITests.java @@ -0,0 +1,728 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Duration; +import java.time.temporal.ChronoUnit; +import java.util.Map; +import java.util.UUID; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.core.ReactiveRedisOperations; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.session.data.SessionEventRegistry; +import org.springframework.session.data.redis.ReactiveRedisIndexedSessionRepository.RedisSession; +import org.springframework.session.data.redis.config.annotation.SpringSessionRedisOperations; +import org.springframework.session.data.redis.config.annotation.web.server.EnableRedisIndexedWebSession; +import org.springframework.session.events.SessionCreatedEvent; +import org.springframework.session.events.SessionDeletedEvent; +import org.springframework.session.events.SessionExpiredEvent; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.context.web.WebAppConfiguration; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatNoException; +import static org.awaitility.Awaitility.await; + +@ExtendWith(SpringExtension.class) +@ContextConfiguration +@WebAppConfiguration +@SuppressWarnings({ "ConstantConditions" }) +class ReactiveRedisIndexedSessionRepositoryITests { + + private static final String SPRING_SECURITY_CONTEXT = "SPRING_SECURITY_CONTEXT"; + + private static final String INDEX_NAME = ReactiveRedisIndexedSessionRepository.PRINCIPAL_NAME_INDEX_NAME; + + @Autowired + private ReactiveRedisIndexedSessionRepository repository; + + @Autowired + private SessionEventRegistry eventRegistry; + + @SpringSessionRedisOperations + private ReactiveRedisOperations redis; + + private SecurityContext context; + + private SecurityContext changedContext; + + @BeforeEach + void setup() { + this.context = SecurityContextHolder.createEmptyContext(); + this.context.setAuthentication(new UsernamePasswordAuthenticationToken("username-" + UUID.randomUUID(), "na", + AuthorityUtils.createAuthorityList("ROLE_USER"))); + + this.changedContext = SecurityContextHolder.createEmptyContext(); + this.changedContext.setAuthentication(new UsernamePasswordAuthenticationToken( + "changedContext-" + UUID.randomUUID(), "na", AuthorityUtils.createAuthorityList("ROLE_USER"))); + } + + @Test + void findByIdWhenSavedThenFound() { + RedisSession session = this.repository.createSession().block(); + session.setAttribute("foo", "bar"); + this.repository.save(session).block(); + RedisSession savedSession = this.repository.findById(session.getId()).block(); + assertThat(savedSession).isNotNull(); + assertThat(savedSession.getId()).isEqualTo(session.getId()); + assertThat(savedSession.getAttribute("foo")).isEqualTo("bar"); + } + + @Test + void saveWhenHasSecurityContextAttributeThenPrincipalIndexKeySaved() { + RedisSession session = this.repository.createSession().block(); + session.setAttribute("foo", "bar"); + + String username = "user"; + Authentication authentication = UsernamePasswordAuthenticationToken.authenticated(username, "password", + AuthorityUtils.createAuthorityList("ROLE_USER")); + SecurityContext context = SecurityContextHolder.createEmptyContext(); + context.setAuthentication(authentication); + session.setAttribute(SPRING_SECURITY_CONTEXT, context); + this.repository.save(session).block(); + + String usernameSessionKey = "spring:session:sessions:index:" + + ReactiveRedisIndexedSessionRepository.PRINCIPAL_NAME_INDEX_NAME + ":" + username; + Boolean sessionExistsOnPrincipalKey = this.redis.opsForSet() + .isMember(usernameSessionKey, session.getId()) + .block(); + assertThat(sessionExistsOnPrincipalKey).isTrue(); + } + + @Test + void saveWhenSuccessThenSessionCreatedEvent() throws InterruptedException { + RedisSession session = this.repository.createSession().block(); + session.setAttribute("foo", "bar"); + + this.repository.save(session).block(); + + SessionCreatedEvent event = this.eventRegistry.getEvent(session.getId()); + assertThat(event).isNotNull(); + RedisSession eventSession = event.getSession(); + compareSessions(session, eventSession); + } + + @Test + void findByPrincipalNameWhenExistsThenReturn() { + RedisSession session = this.repository.createSession().block(); + String principalName = "principal"; + session.setAttribute(ReactiveRedisIndexedSessionRepository.PRINCIPAL_NAME_INDEX_NAME, principalName); + + this.repository.save(session).block(); + + Map principalSessions = this.repository + .findByIndexNameAndIndexValue(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, + principalName) + .block(); + + assertThat(principalSessions).hasSize(1); + assertThat(principalSessions.keySet()).containsOnly(session.getId()); + + this.repository.deleteById(session.getId()).block(); + + principalSessions = this.repository + .findByIndexNameAndIndexValue(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, + principalName) + .block(); + assertThat(principalSessions).isEmpty(); + } + + @Test + void findByPrincipalNameWhenExpireKeyEventThenRemovesIndexAndSessionExpiredEvent() { + String principalName = "findByPrincipalNameExpireRemovesIndex" + UUID.randomUUID(); + RedisSession toSave = this.repository.createSession().block(); + toSave.setAttribute(INDEX_NAME, principalName); + + this.repository.save(toSave).block(); + + this.eventRegistry.clear(); + String key = "spring:session:sessions:expires:" + toSave.getId(); + assertThat(this.redis.expire(key, Duration.ofSeconds(1)).block()).isTrue(); + + await().atMost(Duration.ofSeconds(3)).untilAsserted(() -> { + SessionExpiredEvent event = this.eventRegistry.getEvent(toSave.getId()); + RedisSession eventSession = event.getSession(); + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + assertThat(findByPrincipalName).hasSize(0); + assertThat(findByPrincipalName.keySet()).doesNotContain(toSave.getId()); + assertThat(event).isNotNull(); + compareSessions(toSave, eventSession); + }); + } + + private static void compareSessions(RedisSession session1, RedisSession session2) { + assertThat(session2.getCreationTime().truncatedTo(ChronoUnit.SECONDS)) + .isEqualTo(session1.getCreationTime().truncatedTo(ChronoUnit.SECONDS)); + assertThat(session2.getMaxInactiveInterval().truncatedTo(ChronoUnit.SECONDS)) + .isEqualTo(session1.getMaxInactiveInterval().truncatedTo(ChronoUnit.SECONDS)); + assertThat(session2.getId()).isEqualTo(session1.getId()); + assertThat(session2.getAttributeNames()).isEqualTo(session1.getAttributeNames()); + } + + @Test + void findByPrincipalNameWhenDeletedKeyEventThenRemovesIndex() { + String principalName = "findByPrincipalNameExpireRemovesIndex" + UUID.randomUUID(); + RedisSession toSave = this.repository.createSession().block(); + toSave.setAttribute(INDEX_NAME, principalName); + + this.repository.save(toSave).block(); + + String key = "spring:session:sessions:expires:" + toSave.getId(); + assertThat(this.redis.delete(key).block()).isEqualTo(1); + + await().atMost(Duration.ofSeconds(3)).untilAsserted(() -> { + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + assertThat(findByPrincipalName).hasSize(0); + assertThat(findByPrincipalName.keySet()).doesNotContain(toSave.getId()); + SessionDeletedEvent event = this.eventRegistry.getEvent(toSave.getId()); + assertThat(event).isNotNull(); + RedisSession eventSession = event.getSession(); + compareSessions(toSave, eventSession); + }); + } + + @Test + void findByPrincipalNameWhenNoPrincipalNameChangeThenKeepIndex() { + String principalName = "findByPrincipalNameNoPrincipalNameChange" + UUID.randomUUID(); + RedisSession toSave = this.repository.createSession().block(); + toSave.setAttribute(INDEX_NAME, principalName); + + this.repository.save(toSave).block(); + + toSave.setAttribute("other", "value"); + this.repository.save(toSave).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(toSave.getId()); + } + + @Test + void findByPrincipalNameWhenNoPrincipalNameChangeAndFindByIdThenKeepIndex() { + String principalName = "findByPrincipalNameNoPrincipalNameChange" + UUID.randomUUID(); + RedisSession toSave = this.repository.createSession().block(); + toSave.setAttribute(INDEX_NAME, principalName); + + this.repository.save(toSave).block(); + toSave = this.repository.findById(toSave.getId()).block(); + + toSave.setAttribute("other", "value"); + this.repository.save(toSave).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(toSave.getId()); + } + + @Test + void findByPrincipalNameWhenDeletedPrincipalAttributeThenEmpty() { + String principalName = "findByDeletedPrincipalName" + UUID.randomUUID(); + RedisSession toSave = this.repository.createSession().block(); + toSave.setAttribute(INDEX_NAME, principalName); + + this.repository.save(toSave).block(); + + toSave.removeAttribute(INDEX_NAME); + this.repository.save(toSave).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + + assertThat(findByPrincipalName).isEmpty(); + } + + @Test + void findByPrincipalNameWhenDeletedPrincipalAttributeAndFindByIdThenEmpty() { + String principalName = "findByDeletedPrincipalName" + UUID.randomUUID(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(INDEX_NAME, principalName); + + this.repository.save(session).block(); + session = this.repository.findById(session.getId()).block(); + + session.removeAttribute(INDEX_NAME); + this.repository.save(session).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + + assertThat(findByPrincipalName).isEmpty(); + } + + @Test + void findByPrincipalNameWhenChangedSecurityContextAttributeThenIndexMovedToNewPrincipal() { + String principalName = this.context.getAuthentication().getName(); + String principalNameChanged = this.changedContext.getAuthentication().getName(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(session).block(); + + session.setAttribute(SPRING_SECURITY_CONTEXT, this.changedContext); + this.repository.save(session).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + assertThat(findByPrincipalName).isEmpty(); + + findByPrincipalName = this.repository.findByIndexNameAndIndexValue(INDEX_NAME, principalNameChanged).block(); + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(session.getId()); + } + + @Test + void findByPrincipalNameWhenChangedSecurityContextAttributeAndFindByIdThenIndexMovedToNewPrincipal() { + String principalName = this.context.getAuthentication().getName(); + String principalNameChanged = this.changedContext.getAuthentication().getName(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(session).block(); + session = this.repository.findById(session.getId()).block(); + + session.setAttribute(SPRING_SECURITY_CONTEXT, this.changedContext); + this.repository.save(session).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + assertThat(findByPrincipalName).isEmpty(); + + findByPrincipalName = this.repository.findByIndexNameAndIndexValue(INDEX_NAME, principalNameChanged).block(); + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(session.getId()); + } + + @Test + void findByPrincipalNameWhenNoSecurityContextChangeThenKeepIndex() { + String principalName = this.context.getAuthentication().getName(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(session).block(); + + session.setAttribute("other", "value"); + this.repository.save(session).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(session.getId()); + } + + @Test + void findByPrincipalNameWhenNoSecurityContextChangeAndFindByIdThenKeepIndex() { + String principalName = this.context.getAuthentication().getName(); + RedisSession toSave = this.repository.createSession().block(); + toSave.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(toSave).block(); + toSave = this.repository.findById(toSave.getId()).block(); + + toSave.setAttribute("other", "value"); + this.repository.save(toSave).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(toSave.getId()); + } + + @Test + void findByPrincipalNameWhenDeletedSecurityContextAttributeThenEmpty() { + String principalName = this.context.getAuthentication().getName(); + RedisSession toSave = this.repository.createSession().block(); + toSave.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(toSave).block(); + + toSave.removeAttribute(SPRING_SECURITY_CONTEXT); + this.repository.save(toSave).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + + assertThat(findByPrincipalName).isEmpty(); + } + + @Test + void findByPrincipalNameWhenDeletedSecurityContextAttributeAndFindByIdThenEmpty() { + String principalName = this.context.getAuthentication().getName(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(session).block(); + session = this.repository.findById(session.getId()).block(); + + session.removeAttribute(SPRING_SECURITY_CONTEXT); + this.repository.save(session).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + + .block(); + + assertThat(findByPrincipalName).isEmpty(); + } + + @Test + void findByPrincipalNameWhenChangedPrincipalAttributeThenEmpty() { + String principalName = this.context.getAuthentication().getName(); + String principalNameChanged = this.changedContext.getAuthentication().getName(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(session).block(); + + session.setAttribute(SPRING_SECURITY_CONTEXT, this.changedContext); + this.repository.save(session).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + assertThat(findByPrincipalName).isEmpty(); + + findByPrincipalName = this.repository.findByIndexNameAndIndexValue(INDEX_NAME, principalNameChanged).block(); + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(session.getId()); + } + + @Test + void findByPrincipalNameWhenChangedPrincipalAttributeAndFindByIdThenEmpty() { + String principalName = this.context.getAuthentication().getName(); + String principalNameChanged = this.changedContext.getAuthentication().getName(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(session).block(); + session = this.repository.findById(session.getId()).block(); + + session.setAttribute(SPRING_SECURITY_CONTEXT, this.changedContext); + this.repository.save(session).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + assertThat(findByPrincipalName).isEmpty(); + + findByPrincipalName = this.repository.findByIndexNameAndIndexValue(INDEX_NAME, principalNameChanged).block(); + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(session.getId()); + } + + // gh-1791 + @Test + void changeSessionIdWhenSessionExpiredThenRemovesAllPrincipalIndex() { + RedisSession session = this.repository.createSession().block(); + session.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(session).block(); + String usernameSessionKey = "spring:session:sessions:index:" + INDEX_NAME + ":" + getSecurityName(); + + RedisSession findById = this.repository.findById(session.getId()).block(); + String originalFindById = findById.getId(); + + assertThat(this.redis.opsForSet().members(usernameSessionKey).collectList().block()).contains(originalFindById); + + String changeSessionId = findById.changeSessionId(); + findById.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(findById).block(); + + assertThat(this.redis.opsForSet().members(usernameSessionKey).collectList().block()).contains(changeSessionId); + + String key = "spring:session:sessions:expires:" + changeSessionId; + assertThat(this.redis.expire(key, Duration.ofSeconds(1)).block()).isTrue(); // expire + // the + // key + + await().atMost(Duration.ofSeconds(5)) + .untilAsserted(() -> assertThat(this.redis.opsForSet().members(usernameSessionKey).collectList().block()) + .isEmpty()); + } + + @Test + void changeSessionIdWhenSessionDeletedThenRemovesAllPrincipalIndex() { + RedisSession session = this.repository.createSession().block(); + session.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(session).block(); + String usernameSessionKey = "spring:session:sessions:index:" + INDEX_NAME + ":" + getSecurityName(); + + RedisSession findById = this.repository.findById(session.getId()).block(); + String originalFindById = findById.getId(); + + assertThat(this.redis.opsForSet().members(usernameSessionKey).collectList().block()).contains(originalFindById); + + String changeSessionId = findById.changeSessionId(); + findById.setAttribute(SPRING_SECURITY_CONTEXT, this.context); + + this.repository.save(findById).block(); + + assertThat(this.redis.opsForSet().members(usernameSessionKey).collectList().block()).contains(changeSessionId); + + String key = "spring:session:sessions:expires:" + changeSessionId; + assertThat(this.redis.delete(key).block()).isEqualTo(1); + + await().atMost(Duration.ofSeconds(5)) + .untilAsserted(() -> assertThat(this.redis.opsForSet().members(usernameSessionKey).collectList().block()) + .isEmpty()); + } + + @Test + void changeSessionIdWhenPrincipalNameChangesThenNewPrincipalMapsToNewSessionId() { + String principalName = "findByChangedPrincipalName" + UUID.randomUUID(); + String principalNameChanged = "findByChangedPrincipalName" + UUID.randomUUID(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(INDEX_NAME, principalName); + + this.repository.save(session).block(); + + RedisSession findById = this.repository.findById(session.getId()).block(); + String changeSessionId = findById.changeSessionId(); + findById.setAttribute(INDEX_NAME, principalNameChanged); + this.repository.save(findById).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + + .block(); + assertThat(findByPrincipalName).isEmpty(); + + findByPrincipalName = this.repository.findByIndexNameAndIndexValue(INDEX_NAME, principalNameChanged).block(); + + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(changeSessionId); + } + + // gh-1987 + @Test + void changeSessionIdWhenPrincipalNameChangesFromNullThenIndexShouldNotBeCreated() { + String principalName = null; + String principalNameChanged = "findByChangedPrincipalName" + UUID.randomUUID(); + RedisSession session = this.repository.createSession().block(); + session.setAttribute(INDEX_NAME, principalName); + + this.repository.save(session).block(); + + RedisSession findById = this.repository.findById(session.getId()).block(); + String changeSessionId = findById.changeSessionId(); + findById.setAttribute(INDEX_NAME, principalNameChanged); + this.repository.save(findById).block(); + + Map findByPrincipalName = this.repository + .findByIndexNameAndIndexValue(INDEX_NAME, principalName) + .block(); + assertThat(findByPrincipalName).isEmpty(); + + findByPrincipalName = this.repository.findByIndexNameAndIndexValue(INDEX_NAME, principalNameChanged).block(); + + assertThat(findByPrincipalName).hasSize(1); + assertThat(findByPrincipalName.keySet()).containsOnly(changeSessionId); + } + + @Test + void changeSessionIdWhenOnlyChangeId() { + String attrName = "changeSessionId"; + String attrValue = "changeSessionId-value"; + RedisSession session = this.repository.createSession().block(); + session.setAttribute(attrName, attrValue); + + this.repository.save(session).block(); + + RedisSession findById = this.repository.findById(session.getId()).block(); + + assertThat(findById.getAttribute(attrName)).isEqualTo(attrValue); + + String originalFindById = findById.getId(); + String changeSessionId = findById.changeSessionId(); + + this.repository.save(findById).block(); + + assertThat(this.repository.findById(originalFindById).block()).isNull(); + + RedisSession findByChangeSessionId = this.repository.findById(changeSessionId).block(); + + assertThat(findByChangeSessionId.getAttribute(attrName)).isEqualTo(attrValue); + } + + @Test + void changeSessionIdWhenChangeTwice() { + RedisSession session = this.repository.createSession().block(); + + this.repository.save(session).block(); + + String originalId = session.getId(); + String changeId1 = session.changeSessionId(); + String changeId2 = session.changeSessionId(); + + this.repository.save(session).block(); + + assertThat(this.repository.findById(originalId).block()).isNull(); + assertThat(this.repository.findById(changeId1).block()).isNull(); + assertThat(this.repository.findById(changeId2).block()).isNotNull(); + } + + @Test + void changeSessionIdWhenSetAttributeOnChangedSession() { + String attrName = "changeSessionId"; + String attrValue = "changeSessionId-value"; + + RedisSession session = this.repository.createSession().block(); + + this.repository.save(session).block(); + + RedisSession findById = this.repository.findById(session.getId()).block(); + + findById.setAttribute(attrName, attrValue); + + String originalFindById = findById.getId(); + String changeSessionId = findById.changeSessionId(); + + this.repository.save(findById).block(); + + assertThat(this.repository.findById(originalFindById).block()).isNull(); + + RedisSession findByChangeSessionId = this.repository.findById(changeSessionId).block(); + + assertThat(findByChangeSessionId.getAttribute(attrName)).isEqualTo(attrValue); + } + + @Test + void changeSessionIdWhenHasNotSaved() { + RedisSession session = this.repository.createSession().block(); + String originalId = session.getId(); + session.changeSessionId(); + + this.repository.save(session).block(); + + assertThat(this.repository.findById(session.getId()).block()).isNotNull(); + assertThat(this.repository.findById(originalId).block()).isNull(); + } + + // gh-962 + @Test + void changeSessionIdSaveTwice() { + RedisSession toSave = this.repository.createSession().block(); + String originalId = toSave.getId(); + toSave.changeSessionId(); + + this.repository.save(toSave).block(); + this.repository.save(toSave).block(); + + assertThat(this.repository.findById(toSave.getId()).block()).isNotNull(); + assertThat(this.repository.findById(originalId).block()).isNull(); + } + + // gh-1137 + @Test + void changeSessionIdWhenSessionIsDeleted() { + RedisSession toSave = this.repository.createSession().block(); + String sessionId = toSave.getId(); + this.repository.save(toSave).block(); + + this.repository.deleteById(sessionId).block(); + + toSave.changeSessionId(); + this.repository.save(toSave).block(); + + assertThat(this.repository.findById(toSave.getId()).block()).isNull(); + assertThat(this.repository.findById(sessionId).block()).isNull(); + } + + @Test // gh-1270 + void changeSessionIdSaveConcurrently() { + RedisSession toSave = this.repository.createSession().block(); + String originalId = toSave.getId(); + this.repository.save(toSave).block(); + + RedisSession copy1 = this.repository.findById(originalId).block(); + RedisSession copy2 = this.repository.findById(originalId).block(); + + copy1.changeSessionId(); + this.repository.save(copy1).block(); + copy2.changeSessionId(); + this.repository.save(copy2).block(); + + assertThat(this.repository.findById(originalId).block()).isNull(); + assertThat(this.repository.findById(copy1.getId()).block()).isNotNull(); + assertThat(this.repository.findById(copy2.getId()).block()).isNull(); + } + + // gh-1743 + @Test + void saveChangeSessionIdWhenFailedRenameOperationExceptionContainsMoreDetailsThenIgnoreError() { + RedisSession toSave = this.repository.createSession().block(); + String sessionId = toSave.getId(); + + this.repository.save(toSave).block(); + RedisSession session = this.repository.findById(sessionId).block(); + this.repository.deleteById(sessionId).block(); + session.changeSessionId(); + + assertThatNoException().isThrownBy(() -> this.repository.save(session).block()); + } + + private String getSecurityName() { + return this.context.getAuthentication().getName(); + } + + @Configuration(proxyBeanMethods = false) + @EnableRedisIndexedWebSession + @Import(AbstractRedisITests.BaseConfig.class) + static class Config { + + @Bean + SessionEventRegistry sessionEventRegistry() { + return new SessionEventRegistry(); + } + + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java new file mode 100644 index 000000000..4d4c4c230 --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java @@ -0,0 +1,788 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Clock; +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.BiFunction; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import reactor.core.Disposable; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import reactor.core.scheduler.Schedulers; + +import org.springframework.beans.factory.DisposableBean; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.core.NestedExceptionUtils; +import org.springframework.data.redis.connection.ReactiveSubscription; +import org.springframework.data.redis.core.ReactiveRedisOperations; +import org.springframework.data.redis.core.ReactiveRedisTemplate; +import org.springframework.session.IndexResolver; +import org.springframework.session.MapSession; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.session.ReactiveSessionRepository; +import org.springframework.session.SaveMode; +import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; +import org.springframework.session.events.SessionCreatedEvent; +import org.springframework.session.events.SessionDeletedEvent; +import org.springframework.session.events.SessionDestroyedEvent; +import org.springframework.session.events.SessionExpiredEvent; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; + +/** + * A {@link ReactiveSessionRepository} that is implemented using Spring Data's + * {@link ReactiveRedisOperations}. + * + *

Storage Details

The sections below outline how Redis is updated for each + * operation. An example of creating a new session can be found below. The subsequent + * sections describe the details. + * + *
+ * HMSET spring:session:sessions:648377f7-c76f-4f45-b847-c0268bb48381 creationTime 1702400400000 maxInactiveInterval 1800 lastAccessedTime 1702400400000 sessionAttr:attrName someAttrValue sessionAttr:attrName2 someAttrValue2
+ * EXPIRE spring:session:sessions:648377f7-c76f-4f45-b847-c0268bb48381 2100
+ * APPEND spring:session:sessions:expires:648377f7-c76f-4f45-b847-c0268bb48381 ""
+ * EXPIRE spring:session:sessions:expires:648377f7-c76f-4f45-b847-c0268bb48381 1800
+ * ZADD spring:session:sessions:expirations "1.702402961162E12" "648377f7-c76f-4f45-b847-c0268bb48381"
+ * SADD spring:session:sessions:index:PRINCIPAL_NAME_INDEX_NAME:user "648377f7-c76f-4f45-b847-c0268bb48381"
+ * SADD spring:session:sessions:648377f7-c76f-4f45-b847-c0268bb48381:idx "spring:session:sessions:index:PRINCIPAL_NAME_INDEX_NAME:user"
+ * 
+ * + *

Saving a Session

+ * + *

+ * Each session is stored in Redis as a + * Hash. Each session is set and + * updated using the HMSET command. An + * example of how each session is stored can be seen below. + *

+ * + *
+ * HMSET spring:session:sessions:648377f7-c76f-4f45-b847-c0268bb48381 creationTime 1702400400000 maxInactiveInterval 1800 lastAccessedTime 1702400400000 sessionAttr:attrName someAttrValue sessionAttr:attrName2 someAttrValue2
+ * 
+ * + *

+ * In this example, the session following statements are true about the session: + *

+ *
    + *
  • The session id is 648377f7-c76f-4f45-b847-c0268bb48381
  • + *
  • The session was created at 1702400400000 in milliseconds since midnight of 1/1/1970 + * GMT.
  • + *
  • The session expires in 1800 seconds (30 minutes).
  • + *
  • The session was last accessed at 1702400400000 in milliseconds since midnight of + * 1/1/1970 GMT.
  • + *
  • The session has two attributes. The first is "attrName" with the value of + * "someAttrValue". The second session attribute is named "attrName2" with the value of + * "someAttrValue2".
  • + *
+ * + *

Optimized Writes

+ * + *

+ * The {@link ReactiveRedisIndexedSessionRepository.RedisSession} keeps track of the + * properties that have changed and only updates those. This means if an attribute is + * written once and read many times we only need to write that attribute once. For + * example, assume the session attribute "attrName2" from earlier was updated. The + * following would be executed upon saving: + *

+ * + *
+ * HMSET spring:session:sessions:648377f7-c76f-4f45-b847-c0268bb48381 sessionAttr:attrName2 newValue
+ * 
+ * + *

SessionCreatedEvent

+ * + *

+ * When a session is created an event is sent to Redis with the channel of + * "spring:session:event:0:created:648377f7-c76f-4f45-b847-c0268bb48381" such that + * "648377f7-c76f-4f45-b847-c0268bb48381" is the session id. The body of the event will be + * the session that was created. + *

+ * + *

SessionDeletedEvent and SessionExpiredEvent

If you configured you Redis server + * to send keyspace events when keys are expired or deleted, either via + * {@link org.springframework.session.data.redis.config.annotation.ConfigureNotifyKeyspaceEventsReactiveAction} + * or via external configuration, then deleted and expired sessions will be published as + * {@link SessionDeletedEvent} and {@link SessionExpiredEvent} respectively. + * + *

Expiration

+ * + *

+ * An expiration is associated to each session using the + * EXPIRE command based upon the + * {@link ReactiveRedisIndexedSessionRepository.RedisSession#getMaxInactiveInterval()} . + * For example: + *

+ * + *
+ * EXPIRE spring:session:sessions:648377f7-c76f-4f45-b847-c0268bb48381 2100
+ * 
+ * + *

+ * You will note that the expiration that is set is 5 minutes after the session actually + * expires. This is necessary so that the value of the session can be accessed when the + * session expires. An expiration is set on the session itself five minutes after it + * actually expires to ensure it is cleaned up, but only after we perform any necessary + * processing. + *

+ * + *

+ * NOTE: The {@link #findById(String)} method ensures that no expired sessions will + * be returned. This means there is no need to check the expiration before using a + * session. + *

+ * + *

+ * Spring Session relies on the expired and delete + * keyspace + * notifications from Redis to fire a SessionDestroyedEvent. It is the + * SessionDestroyedEvent that ensures resources associated with the Session are cleaned + * up. For example, when using Spring Session's WebSocket support the Redis expired or + * delete event is what triggers any WebSocket connections associated with the session to + * be closed. + *

+ * + *

+ * Expiration is not tracked directly on the session key itself since this would mean the + * session data would no longer be available. Instead a special session expires key is + * used. In our example the expires key is: + *

+ * + *
+ * APPEND spring:session:sessions:expires:648377f7-c76f-4f45-b847-c0268bb48381 ""
+ * EXPIRE spring:session:sessions:expires:648377f7-c76f-4f45-b847-c0268bb48381 1800
+ * 
+ * + *

+ * When a session key is deleted or expires, the keyspace notification triggers a lookup + * of the actual session and a {@link SessionDestroyedEvent} is fired. + *

+ * + *

+ * One problem with relying on Redis expiration exclusively is that Redis makes no + * guarantee of when the expired event will be fired if the key has not been accessed. For + * additional details see How Redis expires + * keys section in the Redis Expire documentation. + *

+ * + *

+ * To circumvent the fact that expired events are not guaranteed to happen we can ensure + * that each key is accessed when it is expected to expire. This means that if the TTL is + * expired on the key, Redis will remove the key and fire the expired event when we try to + * access the key. + *

+ * + *

+ * For this reason, each session expiration is also tracked by storing the session id in a + * sorted set ranked by its expiration time. This allows a background task to access the + * potentially expired sessions to ensure that Redis expired events are fired in a more + * deterministic fashion. For example: + *

+ * + *
+ * ZADD spring:session:sessions:expirations "1.702402961162E12" "648377f7-c76f-4f45-b847-c0268bb48381"
+ * 
+ * + *

+ * NOTE: We do not explicitly delete the keys since in some instances there may be + * a race condition that incorrectly identifies a key as expired when it is not. Short of + * using distributed locks (which would kill our performance) there is no way to ensure + * the consistency of the expiration mapping. By simply accessing the key, we ensure that + * the key is only removed if the TTL on that key is expired. + *

+ * + *

Secondary Indexes

By default, Spring Session will also index the sessions by + * identifying if the session contains any attribute that can be mapped to a principal + * using an {@link org.springframework.session.PrincipalNameIndexResolver}. All resolved + * indexes for a session are stored in a Redis Set, for example:
+ * SADD spring:session:sessions:index:PRINCIPAL_NAME_INDEX_NAME:user "648377f7-c76f-4f45-b847-c0268bb48381"
+ * SADD spring:session:sessions:648377f7-c76f-4f45-b847-c0268bb48381:idx "spring:session:sessions:index:PRINCIPAL_NAME_INDEX_NAME:user"
+ * 
+ * + * Therefore, you can check all indexes for a given session by getting the members of the + * {@code "spring:session:sessions:648377f7-c76f-4f45-b847-c0268bb48381:idx"} Redis set. + * + * @author Marcus da Coregio + * @since 3.3 + */ +public class ReactiveRedisIndexedSessionRepository + implements ReactiveSessionRepository, + ReactiveFindByIndexNameSessionRepository, DisposableBean, + InitializingBean { + + private static final Log logger = LogFactory.getLog(ReactiveRedisIndexedSessionRepository.class); + + /** + * The default namespace for each key and channel in Redis used by Spring Session. + */ + public static final String DEFAULT_NAMESPACE = "spring:session"; + + /** + * The default Redis database used by Spring Session. + */ + public static final int DEFAULT_DATABASE = 0; + + private final ReactiveRedisOperations sessionRedisOperations; + + private final ReactiveRedisTemplate keyEventsOperations; + + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); + + private BiFunction, Mono> redisSessionMapper = new RedisSessionMapperAdapter(); + + private Duration defaultMaxInactiveInterval = Duration.ofSeconds(MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); + + private SaveMode saveMode = SaveMode.ON_SET_ATTRIBUTE; + + private ApplicationEventPublisher eventPublisher = (event) -> { + }; + + private String sessionCreatedChannelPrefix; + + private String sessionDeletedChannel; + + private String sessionExpiredChannel; + + private String expiredKeyPrefix; + + private final List subscriptions = new ArrayList<>(); + + /** + * The namespace for every key used by Spring Session in Redis. + */ + private String namespace = DEFAULT_NAMESPACE + ":"; + + private int database = DEFAULT_DATABASE; + + private ReactiveRedisSessionIndexer indexer; + + private SortedSetReactiveRedisSessionExpirationStore expirationStore; + + private Duration cleanupInterval = Duration.ofSeconds(60); + + private Clock clock = Clock.systemUTC(); + + /** + * Creates a new instance with the provided {@link ReactiveRedisOperations}. + * @param sessionRedisOperations the {@link ReactiveRedisOperations} to use for + * managing the sessions. Cannot be null. + * @param keyEventsOperations the {@link ReactiveRedisTemplate} to use to subscribe to + * keyspace events. Cannot be null. + */ + public ReactiveRedisIndexedSessionRepository(ReactiveRedisOperations sessionRedisOperations, + ReactiveRedisTemplate keyEventsOperations) { + Assert.notNull(sessionRedisOperations, "sessionRedisOperations cannot be null"); + Assert.notNull(keyEventsOperations, "keyEventsOperations cannot be null"); + this.sessionRedisOperations = sessionRedisOperations; + this.keyEventsOperations = keyEventsOperations; + this.indexer = new ReactiveRedisSessionIndexer(sessionRedisOperations, this.namespace); + this.expirationStore = new SortedSetReactiveRedisSessionExpirationStore(sessionRedisOperations, this.namespace); + configureSessionChannels(); + } + + @Override + public void afterPropertiesSet() throws Exception { + subscribeToRedisEvents(); + setupCleanupTask(); + } + + private void setupCleanupTask() { + if (!this.cleanupInterval.isZero()) { + Disposable cleanupExpiredSessionsTask = Flux.interval(this.cleanupInterval, this.cleanupInterval) + .onBackpressureDrop((count) -> logger + .debug("Skipping clean-up expired sessions because the previous one is still running.")) + .concatMap((count) -> cleanUpExpiredSessions()) + .subscribe(); + this.subscriptions.add(cleanupExpiredSessionsTask); + } + } + + private Flux cleanUpExpiredSessions() { + return this.expirationStore.retrieveExpiredSessions(this.clock.instant()).flatMap(this::touch); + } + + private Mono touch(String sessionId) { + return this.sessionRedisOperations.hasKey(getExpiredKey(sessionId)).then(); + } + + @Override + public void destroy() { + for (Disposable subscription : this.subscriptions) { + subscription.dispose(); + } + this.subscriptions.clear(); + } + + @Override + public Mono> findByIndexNameAndIndexValue(String indexName, String indexValue) { + return this.indexer.getSessionIds(indexName, indexValue) + .flatMap(this::findById) + .collectMap(RedisSession::getId); + } + + @Override + public Mono createSession() { + return Mono.fromSupplier(() -> this.sessionIdGenerator.generate()) + .subscribeOn(Schedulers.boundedElastic()) + .publishOn(Schedulers.parallel()) + .map(MapSession::new) + .doOnNext((session) -> session.setMaxInactiveInterval(this.defaultMaxInactiveInterval)) + .map((session) -> new RedisSession(session, true)); + } + + @Override + public Mono save(RedisSession session) { + // @formatter:off + return session.save() + .then(Mono.defer(() -> this.indexer.update(session))) + .then(Mono.defer(() -> this.expirationStore.add(session.getId(), session.getLastAccessedTime().plus(session.getMaxInactiveInterval())))); + // @formatter:on + } + + @Override + public Mono findById(String id) { + return getSession(id, false); + } + + private Mono getSession(String sessionId, boolean allowExpired) { + // @formatter:off + String sessionKey = getSessionKey(sessionId); + return this.sessionRedisOperations.opsForHash().entries(sessionKey) + .collectMap((entry) -> entry.getKey().toString(), Map.Entry::getValue) + .filter((map) -> !map.isEmpty()) + .flatMap((map) -> this.redisSessionMapper.apply(sessionId, map)) + .filter((session) -> allowExpired || !session.isExpired()) + .map((session) -> new RedisSession(session, false)); + // @formatter:on + } + + @Override + public Mono deleteById(String id) { + // @formatter:off + return getSession(id, true) + .flatMap((session) -> this.sessionRedisOperations.delete(getExpiredKey(session.getId())) + .thenReturn(session)) + .flatMap((session) -> this.sessionRedisOperations.delete(getSessionKey(session.getId())).thenReturn(session)) + .flatMap((session) -> this.indexer.delete(session.getId()).thenReturn(session)) + .flatMap((session) -> this.expirationStore.remove(session.getId())); + // @formatter:on + } + + /** + * Subscribes to {@code __keyevent@0__:expired} and {@code __keyevent@0__:del} Redis + * Keyspaces events and to {@code spring:session:event:0:created:*} Redis Channel + * event in order to clean up the sessions and publish the related Spring Session + * events. + */ + private void subscribeToRedisEvents() { + Disposable sessionCreatedSubscription = this.sessionRedisOperations + .listenToPattern(getSessionCreatedChannelPrefix() + "*") + .flatMap(this::onSessionCreatedChannelMessage) + .subscribe(); + Disposable sessionDestroyedSubscription = this.keyEventsOperations + .listenToChannel(getSessionDeletedChannel(), getSessionExpiredChannel()) + .flatMap(this::onKeyDestroyedMessage) + .subscribe(); + this.subscriptions.addAll(Arrays.asList(sessionCreatedSubscription, sessionDestroyedSubscription)); + } + + @SuppressWarnings("unchecked") + private Mono onSessionCreatedChannelMessage(ReactiveSubscription.Message message) { + return Mono.just(message.getChannel()) + .filter((channel) -> channel.startsWith(getSessionCreatedChannelPrefix())) + .map((channel) -> { + int sessionIdBeginIndex = channel.lastIndexOf(":") + 1; + return channel.substring(sessionIdBeginIndex); + }) + .flatMap((sessionId) -> { + Map entries = (Map) message.getMessage(); + return this.redisSessionMapper.apply(sessionId, entries); + }) + .map((loaded) -> { + RedisSession session = new RedisSession(loaded, false); + return new SessionCreatedEvent(this, session); + }) + .doOnNext(this::publishEvent) + .then(); + } + + private Mono onKeyDestroyedMessage(ReactiveSubscription.Message message) { + return Mono.just(message.getMessage()).filter((key) -> key.startsWith(getExpiredKeyPrefix())).map((key) -> { + int sessionIdBeginIndex = key.lastIndexOf(":") + 1; + return key.substring(sessionIdBeginIndex); + }) + .flatMap((sessionId) -> getSession(sessionId, true)) + .flatMap((session) -> this.deleteById(session.getId()).thenReturn(session)) + .map((session) -> { + if (message.getChannel().equals(this.sessionDeletedChannel)) { + return new SessionDeletedEvent(this, session); + } + return new SessionExpiredEvent(this, session); + }) + .doOnNext(this::publishEvent) + .then(); + } + + private void publishEvent(Object event) { + this.eventPublisher.publishEvent(event); + } + + /** + * Sets the Redis database index used by Spring Session. + * @param database the database index to use + */ + public void setDatabase(int database) { + this.database = database; + configureSessionChannels(); + } + + /** + * Sets the namespace for keys used by Spring Session. Defaults to 'spring:session:'. + * @param namespace the namespace to set + */ + public void setRedisKeyNamespace(String namespace) { + Assert.hasText(namespace, "namespace cannot be null or empty"); + this.namespace = namespace.endsWith(":") ? namespace : namespace.trim() + ":"; + this.indexer.setNamespace(this.namespace); + this.expirationStore.setNamespace(this.namespace); + configureSessionChannels(); + } + + /** + * Sets the interval that the clean-up of expired sessions task should run. Defaults + * to 60 seconds. Use {@link Duration#ZERO} to disable it. + * @param cleanupInterval the interval to use + */ + public void setCleanupInterval(Duration cleanupInterval) { + Assert.notNull(cleanupInterval, "cleanupInterval cannot be null"); + this.cleanupInterval = cleanupInterval; + } + + /** + * Disables the clean-up task. This is just a shortcut to invoke + * {@link #setCleanupInterval(Duration)} passing {@link Duration#ZERO} + */ + public void disableCleanupTask() { + setCleanupInterval(Duration.ZERO); + } + + /** + * Sets the {@link Clock} to use. Defaults to {@link Clock#systemUTC()}. + * @param clock the clock to use + */ + public void setClock(Clock clock) { + Assert.notNull(clock, "clock cannot be null"); + this.clock = clock; + } + + public void setDefaultMaxInactiveInterval(Duration defaultMaxInactiveInterval) { + Assert.notNull(defaultMaxInactiveInterval, "defaultMaxInactiveInterval must not be null"); + this.defaultMaxInactiveInterval = defaultMaxInactiveInterval; + } + + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + Assert.notNull(sessionIdGenerator, "sessionIdGenerator cannot be null"); + this.sessionIdGenerator = sessionIdGenerator; + } + + public void setRedisSessionMapper(BiFunction, Mono> redisSessionMapper) { + Assert.notNull(redisSessionMapper, "redisSessionMapper cannot be null"); + this.redisSessionMapper = redisSessionMapper; + } + + public void setSaveMode(SaveMode saveMode) { + Assert.notNull(saveMode, "saveMode cannot be null"); + this.saveMode = saveMode; + } + + public ReactiveRedisOperations getSessionRedisOperations() { + return this.sessionRedisOperations; + } + + public void setEventPublisher(ApplicationEventPublisher eventPublisher) { + Assert.notNull(eventPublisher, "eventPublisher cannot be null"); + this.eventPublisher = eventPublisher; + } + + public void setIndexResolver(IndexResolver indexResolver) { + Assert.notNull(indexResolver, "indexResolver cannot be null"); + this.indexer.setIndexResolver(indexResolver); + } + + private static String getAttributeNameWithPrefix(String attributeName) { + return RedisSessionMapper.ATTRIBUTE_PREFIX + attributeName; + } + + private String getSessionKey(String sessionId) { + return this.namespace + "sessions:" + sessionId; + } + + private String getExpiredKey(String sessionId) { + return getExpiredKeyPrefix() + sessionId; + } + + private String getExpiredKeyPrefix() { + return this.expiredKeyPrefix; + } + + private void configureSessionChannels() { + this.sessionCreatedChannelPrefix = this.namespace + "event:" + this.database + ":created:"; + this.sessionDeletedChannel = "__keyevent@" + this.database + "__:del"; + this.sessionExpiredChannel = "__keyevent@" + this.database + "__:expired"; + this.expiredKeyPrefix = this.namespace + "sessions:expires:"; + } + + public String getSessionCreatedChannel(String sessionId) { + return getSessionCreatedChannelPrefix() + sessionId; + } + + public String getSessionCreatedChannelPrefix() { + return this.sessionCreatedChannelPrefix; + } + + public String getSessionDeletedChannel() { + return this.sessionDeletedChannel; + } + + public String getSessionExpiredChannel() { + return this.sessionExpiredChannel; + } + + public final class RedisSession implements Session { + + private final MapSession cached; + + private Map delta = new HashMap<>(); + + private boolean isNew; + + private String originalSessionId; + + private Map indexes = new HashMap<>(); + + public RedisSession(MapSession cached, boolean isNew) { + this.cached = cached; + this.isNew = isNew; + this.originalSessionId = cached.getId(); + if (this.isNew) { + this.delta.put(RedisSessionMapper.CREATION_TIME_KEY, cached.getCreationTime().toEpochMilli()); + this.delta.put(RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, + (int) cached.getMaxInactiveInterval().getSeconds()); + this.delta.put(RedisSessionMapper.LAST_ACCESSED_TIME_KEY, cached.getLastAccessedTime().toEpochMilli()); + } + if (this.isNew || (ReactiveRedisIndexedSessionRepository.this.saveMode == SaveMode.ALWAYS)) { + getAttributeNames().forEach((attributeName) -> this.delta.put(getAttributeNameWithPrefix(attributeName), + cached.getAttribute(attributeName))); + } + } + + @Override + public String getId() { + return this.cached.getId(); + } + + @Override + public String changeSessionId() { + String newSessionId = ReactiveRedisIndexedSessionRepository.this.sessionIdGenerator.generate(); + this.cached.setId(newSessionId); + return newSessionId; + } + + @Override + public T getAttribute(String attributeName) { + T attributeValue = this.cached.getAttribute(attributeName); + if (attributeValue != null + && ReactiveRedisIndexedSessionRepository.this.saveMode.equals(SaveMode.ON_GET_ATTRIBUTE)) { + this.delta.put(getAttributeNameWithPrefix(attributeName), attributeValue); + } + return attributeValue; + } + + @Override + public Set getAttributeNames() { + return this.cached.getAttributeNames(); + } + + @Override + public void setAttribute(String attributeName, Object attributeValue) { + this.cached.setAttribute(attributeName, attributeValue); + this.delta.put(getAttributeNameWithPrefix(attributeName), attributeValue); + } + + @Override + public void removeAttribute(String attributeName) { + this.cached.removeAttribute(attributeName); + this.delta.put(getAttributeNameWithPrefix(attributeName), null); + } + + @Override + public Instant getCreationTime() { + return this.cached.getCreationTime(); + } + + @Override + public void setLastAccessedTime(Instant lastAccessedTime) { + this.cached.setLastAccessedTime(lastAccessedTime); + this.delta.put(RedisSessionMapper.LAST_ACCESSED_TIME_KEY, getLastAccessedTime().toEpochMilli()); + } + + @Override + public Instant getLastAccessedTime() { + return this.cached.getLastAccessedTime(); + } + + @Override + public void setMaxInactiveInterval(Duration interval) { + this.cached.setMaxInactiveInterval(interval); + this.delta.put(RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, (int) getMaxInactiveInterval().getSeconds()); + } + + @Override + public Duration getMaxInactiveInterval() { + return this.cached.getMaxInactiveInterval(); + } + + @Override + public boolean isExpired() { + return this.cached.isExpired(); + } + + public Map getIndexes() { + return Collections.unmodifiableMap(this.indexes); + } + + private boolean hasChangedSessionId() { + return !getId().equals(this.originalSessionId); + } + + private Mono save() { + return Mono + .defer(() -> saveChangeSessionId().then(saveDelta()).doOnSuccess((unused) -> this.isNew = false)); + } + + private Mono saveDelta() { + if (this.delta.isEmpty()) { + return Mono.empty(); + } + + String sessionKey = getSessionKey(getId()); + Mono update = ReactiveRedisIndexedSessionRepository.this.sessionRedisOperations.opsForHash() + .putAll(sessionKey, new HashMap<>(this.delta)); + + String expiredKey = getExpiredKey(getId()); + Mono setTtl; + Mono updateExpireKey = ReactiveRedisIndexedSessionRepository.this.sessionRedisOperations + .opsForValue() + .append(expiredKey, "") + .hasElement(); + if (getMaxInactiveInterval().getSeconds() >= 0) { + Duration fiveMinutesFromActualExpiration = getMaxInactiveInterval().plus(Duration.ofMinutes(5)); + setTtl = ReactiveRedisIndexedSessionRepository.this.sessionRedisOperations.expire(sessionKey, + fiveMinutesFromActualExpiration); + updateExpireKey = updateExpireKey + .flatMap((length) -> ReactiveRedisIndexedSessionRepository.this.sessionRedisOperations + .expire(expiredKey, getMaxInactiveInterval())); + } + else { + setTtl = ReactiveRedisIndexedSessionRepository.this.sessionRedisOperations.persist(sessionKey); + updateExpireKey = ReactiveRedisIndexedSessionRepository.this.sessionRedisOperations.delete(expiredKey) + .hasElement(); + } + + Mono publishCreated = Mono.empty(); + if (this.isNew) { + String sessionCreatedChannelKey = getSessionCreatedChannel(getId()); + publishCreated = ReactiveRedisIndexedSessionRepository.this.sessionRedisOperations + .convertAndSend(sessionCreatedChannelKey, this.delta) + .then(); + } + + return update.flatMap((updated) -> setTtl) + .then(updateExpireKey) + .then(publishCreated) + .then(Mono.fromRunnable(() -> this.delta = new HashMap<>(this.delta.size()))) + .then(); + } + + private Mono saveChangeSessionId() { + if (!hasChangedSessionId()) { + return Mono.empty(); + } + + String sessionId = getId(); + + Mono replaceSessionId = Mono.fromRunnable(() -> this.originalSessionId = sessionId).then(); + + if (this.isNew) { + return Mono.from(replaceSessionId); + } + else { + String originalSessionKey = getSessionKey(this.originalSessionId); + String sessionKey = getSessionKey(sessionId); + String originalExpiredKey = getExpiredKey(this.originalSessionId); + String expiredKey = getExpiredKey(sessionId); + + return renameKey(originalSessionKey, sessionKey) + .then(Mono.defer(() -> renameKey(originalExpiredKey, expiredKey))) + .then(Mono.defer(this::replaceSessionIdOnIndexes)) + .then(Mono.defer(() -> replaceSessionId)); + } + + } + + private Mono replaceSessionIdOnIndexes() { + return ReactiveRedisIndexedSessionRepository.this.indexer.delete(this.originalSessionId) + .then(ReactiveRedisIndexedSessionRepository.this.indexer.update(this)); + } + + private Mono renameKey(String oldKey, String newKey) { + return ReactiveRedisIndexedSessionRepository.this.sessionRedisOperations.rename(oldKey, newKey) + .onErrorResume((ex) -> { + String message = NestedExceptionUtils.getMostSpecificCause(ex).getMessage(); + return StringUtils.startsWithIgnoreCase(message, "ERR no such key"); + }, (ex) -> Mono.empty()) + .then(); + } + + } + + private static final class RedisSessionMapperAdapter + implements BiFunction, Mono> { + + private final RedisSessionMapper mapper = new RedisSessionMapper(); + + @Override + public Mono apply(String sessionId, Map map) { + return Mono.fromSupplier(() -> this.mapper.apply(sessionId, map)); + } + + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionIndexer.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionIndexer.java new file mode 100644 index 000000000..9d0496aa8 --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisSessionIndexer.java @@ -0,0 +1,152 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.util.HashMap; +import java.util.Map; + +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import reactor.util.function.Tuples; + +import org.springframework.data.redis.core.ReactiveRedisOperations; +import org.springframework.session.DelegatingIndexResolver; +import org.springframework.session.IndexResolver; +import org.springframework.session.PrincipalNameIndexResolver; +import org.springframework.session.Session; +import org.springframework.session.data.redis.ReactiveRedisIndexedSessionRepository.RedisSession; +import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; + +/** + * Uses an {@link IndexResolver} to keep track of the indexes for a + * {@link ReactiveRedisIndexedSessionRepository.RedisSession}. Only updates indexes that + * have changed. + * + * @author Marcus da Coregio + */ +final class ReactiveRedisSessionIndexer { + + private final ReactiveRedisOperations sessionRedisOperations; + + private String namespace; + + private IndexResolver indexResolver = new DelegatingIndexResolver<>( + new PrincipalNameIndexResolver<>(ReactiveRedisIndexedSessionRepository.PRINCIPAL_NAME_INDEX_NAME)); + + private String indexKeyPrefix; + + ReactiveRedisSessionIndexer(ReactiveRedisOperations sessionRedisOperations, String namespace) { + Assert.notNull(sessionRedisOperations, "sessionRedisOperations cannot be null"); + Assert.hasText(namespace, "namespace cannot be empty"); + this.sessionRedisOperations = sessionRedisOperations; + this.namespace = namespace; + updateIndexKeyPrefix(); + } + + Mono update(RedisSession redisSession) { + return getIndexes(redisSession.getId()).map((originalIndexes) -> { + Map indexes = this.indexResolver.resolveIndexesFor(redisSession); + Map indexToDelete = new HashMap<>(); + Map indexToAdd = new HashMap<>(); + for (Map.Entry entry : indexes.entrySet()) { + if (!originalIndexes.containsKey(entry.getKey())) { + indexToAdd.put(entry.getKey(), entry.getValue()); + continue; + } + if (!originalIndexes.get(entry.getKey()).equals(entry.getValue())) { + indexToDelete.put(entry.getKey(), originalIndexes.get(entry.getKey())); + indexToAdd.put(entry.getKey(), entry.getValue()); + } + } + if (CollectionUtils.isEmpty(indexes) && !CollectionUtils.isEmpty(originalIndexes)) { + indexToDelete.putAll(originalIndexes); + } + return Tuples.of(indexToDelete, indexToAdd); + }).flatMap((indexes) -> updateIndexes(indexes.getT1(), indexes.getT2(), redisSession.getId())); + } + + private Mono updateIndexes(Map indexToDelete, Map indexToAdd, + String sessionId) { + // @formatter:off + return Flux.fromIterable(indexToDelete.entrySet()) + .flatMap((entry) -> { + String indexKey = getIndexKey(entry.getKey(), entry.getValue()); + return removeSessionFromIndex(indexKey, sessionId).thenReturn(indexKey); + }) + .flatMap((indexKey) -> this.sessionRedisOperations.opsForSet().remove(getSessionIndexesKey(sessionId), indexKey)) + .thenMany(Flux.fromIterable(indexToAdd.entrySet())) + .flatMap((entry) -> { + String indexKey = getIndexKey(entry.getKey(), entry.getValue()); + return this.sessionRedisOperations.opsForSet().add(indexKey, sessionId).thenReturn(indexKey); + }) + .flatMap((indexKey) -> this.sessionRedisOperations.opsForSet().add(getSessionIndexesKey(sessionId), indexKey)) + .then(); + // @formatter:on + } + + Mono delete(String sessionId) { + String sessionIndexesKey = getSessionIndexesKey(sessionId); + return this.sessionRedisOperations.opsForSet() + .members(sessionIndexesKey) + .flatMap((indexKey) -> removeSessionFromIndex((String) indexKey, sessionId)) + .then(this.sessionRedisOperations.delete(sessionIndexesKey)) + .then(); + } + + private Mono removeSessionFromIndex(String indexKey, String sessionId) { + return this.sessionRedisOperations.opsForSet().remove(indexKey, sessionId).then(); + } + + Mono> getIndexes(String sessionId) { + String sessionIndexesKey = getSessionIndexesKey(sessionId); + return this.sessionRedisOperations.opsForSet() + .members(sessionIndexesKey) + .cast(String.class) + .collectMap((indexKey) -> indexKey.substring(this.indexKeyPrefix.length()).split(":")[0], + (indexKey) -> indexKey.substring(this.indexKeyPrefix.length()).split(":")[1]); + } + + Flux getSessionIds(String indexName, String indexValue) { + String indexKey = getIndexKey(indexName, indexValue); + return this.sessionRedisOperations.opsForSet().members(indexKey).cast(String.class); + } + + private void updateIndexKeyPrefix() { + this.indexKeyPrefix = this.namespace + "sessions:index:"; + } + + private String getSessionIndexesKey(String sessionId) { + return this.namespace + "sessions:" + sessionId + ":idx"; + } + + private String getIndexKey(String indexName, String indexValue) { + return this.indexKeyPrefix + indexName + ":" + indexValue; + } + + void setNamespace(String namespace) { + Assert.hasText(namespace, "namespace cannot be empty"); + this.namespace = namespace; + updateIndexKeyPrefix(); + } + + void setIndexResolver(IndexResolver indexResolver) { + Assert.notNull(indexResolver, "indexResolver cannot be null"); + this.indexResolver = indexResolver; + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/SortedSetReactiveRedisSessionExpirationStore.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/SortedSetReactiveRedisSessionExpirationStore.java new file mode 100644 index 000000000..464877302 --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/SortedSetReactiveRedisSessionExpirationStore.java @@ -0,0 +1,98 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Instant; + +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import org.springframework.data.domain.Range; +import org.springframework.data.redis.connection.Limit; +import org.springframework.data.redis.core.ReactiveRedisOperations; +import org.springframework.util.Assert; + +/** + * Uses a sorted set to store the expiration times for sessions. The score of each entry + * is the expiration time of the session. The value is the session id. + * + * @author Marcus da Coregio + */ +final class SortedSetReactiveRedisSessionExpirationStore { + + private final ReactiveRedisOperations sessionRedisOperations; + + private String namespace; + + private int retrieveCount = 100; + + SortedSetReactiveRedisSessionExpirationStore(ReactiveRedisOperations sessionRedisOperations, + String namespace) { + Assert.notNull(sessionRedisOperations, "sessionRedisOperations cannot be null"); + Assert.hasText(namespace, "namespace cannot be null or empty"); + this.sessionRedisOperations = sessionRedisOperations; + this.namespace = namespace; + } + + /** + * Add the session id associated with the expiration time into the sorted set. + * @param sessionId the session id + * @param expiration the expiration time + * @return a {@link Mono} that completes when the operation completes + */ + Mono add(String sessionId, Instant expiration) { + long expirationInMillis = expiration.toEpochMilli(); + return this.sessionRedisOperations.opsForZSet().add(getExpirationsKey(), sessionId, expirationInMillis).then(); + } + + /** + * Remove the session id from the sorted set. + * @param sessionId the session id + * @return a {@link Mono} that completes when the operation completes + */ + Mono remove(String sessionId) { + return this.sessionRedisOperations.opsForZSet().remove(getExpirationsKey(), sessionId).then(); + } + + /** + * Retrieve the session ids that have the expiration time less than the value passed + * in {@code expiredBefore}. + * @param expiredBefore the expiration time + * @return a {@link Flux} that emits the session ids + */ + Flux retrieveExpiredSessions(Instant expiredBefore) { + Range range = Range.closed(0D, (double) expiredBefore.toEpochMilli()); + Limit limit = Limit.limit().count(this.retrieveCount); + return this.sessionRedisOperations.opsForZSet() + .reverseRangeByScore(getExpirationsKey(), range, limit) + .cast(String.class); + } + + private String getExpirationsKey() { + return this.namespace + "sessions:expirations"; + } + + /** + * Set the namespace for the keys used by this class. + * @param namespace the namespace + */ + void setNamespace(String namespace) { + Assert.hasText(namespace, "namespace cannot be null or empty"); + this.namespace = namespace; + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/ConfigureReactiveRedisAction.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/ConfigureReactiveRedisAction.java new file mode 100644 index 000000000..1f6e288cc --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/ConfigureReactiveRedisAction.java @@ -0,0 +1,39 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis.config; + +import reactor.core.publisher.Mono; + +import org.springframework.data.redis.connection.ReactiveRedisConnection; + +/** + * Allows specifying a strategy for configuring and validating Redis using a Reactive + * connection. + * + * @author Marcus da Coregio + * @since 3.3 + */ +public interface ConfigureReactiveRedisAction { + + Mono configure(ReactiveRedisConnection connection); + + /** + * An implementation of {@link ConfigureReactiveRedisAction} that does nothing. + */ + ConfigureReactiveRedisAction NO_OP = (connection) -> Mono.empty(); + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/ConfigureNotifyKeyspaceEventsReactiveAction.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/ConfigureNotifyKeyspaceEventsReactiveAction.java new file mode 100644 index 000000000..08caf708c --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/ConfigureNotifyKeyspaceEventsReactiveAction.java @@ -0,0 +1,88 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis.config.annotation; + +import java.util.Properties; +import java.util.function.Predicate; + +import reactor.core.publisher.Mono; +import reactor.util.function.Tuples; + +import org.springframework.dao.InvalidDataAccessApiUsageException; +import org.springframework.data.redis.connection.ReactiveRedisConnection; +import org.springframework.session.data.redis.config.ConfigureReactiveRedisAction; + +/** + *

+ * Ensures that Redis Keyspace events for Generic commands and Expired events are enabled. + * For example, it might set the following: + *

+ * + *
+ * config set notify-keyspace-events Egx
+ * 
+ * + *

+ * This strategy will not work if the Redis instance has been properly secured. Instead, + * the Redis instance should be configured externally and a Bean of type + * {@link ConfigureReactiveRedisAction#NO_OP} should be exposed. + *

+ * + * @author Rob Winch + * @author Mark Paluch + * @author Marcus da Coregio + * @since 3.3 + */ +public class ConfigureNotifyKeyspaceEventsReactiveAction implements ConfigureReactiveRedisAction { + + static final String CONFIG_NOTIFY_KEYSPACE_EVENTS = "notify-keyspace-events"; + + @Override + public Mono configure(ReactiveRedisConnection connection) { + return getNotifyOptions(connection).map((notifyOptions) -> { + String customizedNotifyOptions = notifyOptions; + if (!customizedNotifyOptions.contains("E")) { + customizedNotifyOptions += "E"; + } + boolean A = customizedNotifyOptions.contains("A"); + if (!(A || customizedNotifyOptions.contains("g"))) { + customizedNotifyOptions += "g"; + } + if (!(A || customizedNotifyOptions.contains("x"))) { + customizedNotifyOptions += "x"; + } + return Tuples.of(notifyOptions, customizedNotifyOptions); + }) + .filter((optionsTuple) -> !optionsTuple.getT1().equals(optionsTuple.getT2())) + .flatMap((optionsTuple) -> connection.serverCommands() + .setConfig(CONFIG_NOTIFY_KEYSPACE_EVENTS, optionsTuple.getT2())) + .filter("OK"::equals) + .doFinally((unused) -> connection.close()) + .then(); + } + + private Mono getNotifyOptions(ReactiveRedisConnection connection) { + return connection.serverCommands() + .getConfig(CONFIG_NOTIFY_KEYSPACE_EVENTS) + .filter(Predicate.not(Properties::isEmpty)) + .map((config) -> config.getProperty(config.stringPropertyNames().iterator().next())) + .onErrorMap(InvalidDataAccessApiUsageException.class, + (ex) -> new IllegalStateException("Unable to configure Reactive Redis to keyspace notifications", + ex)); + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/AbstractRedisWebSessionConfiguration.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/AbstractRedisWebSessionConfiguration.java new file mode 100644 index 000000000..db9ba65dd --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/AbstractRedisWebSessionConfiguration.java @@ -0,0 +1,148 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis.config.annotation.web.server; + +import java.time.Duration; +import java.util.List; +import java.util.stream.Collectors; + +import org.springframework.beans.factory.ObjectProvider; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; +import org.springframework.data.redis.core.ReactiveRedisTemplate; +import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.session.MapSession; +import org.springframework.session.ReactiveSessionRepository; +import org.springframework.session.SaveMode; +import org.springframework.session.Session; +import org.springframework.session.SessionIdGenerator; +import org.springframework.session.UuidSessionIdGenerator; +import org.springframework.session.config.ReactiveSessionRepositoryCustomizer; +import org.springframework.session.config.annotation.web.server.SpringWebSessionConfiguration; +import org.springframework.session.data.redis.ReactiveRedisSessionRepository; +import org.springframework.session.data.redis.config.annotation.SpringSessionRedisConnectionFactory; +import org.springframework.util.Assert; + +@Configuration(proxyBeanMethods = false) +@Import(SpringWebSessionConfiguration.class) +public abstract class AbstractRedisWebSessionConfiguration> { + + private Duration maxInactiveInterval = MapSession.DEFAULT_MAX_INACTIVE_INTERVAL; + + private String redisNamespace = ReactiveRedisSessionRepository.DEFAULT_NAMESPACE; + + private SaveMode saveMode = SaveMode.ON_SET_ATTRIBUTE; + + private ReactiveRedisConnectionFactory redisConnectionFactory; + + private RedisSerializer defaultRedisSerializer = new JdkSerializationRedisSerializer(); + + private List> sessionRepositoryCustomizers; + + private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); + + public abstract T sessionRepository(); + + public void setMaxInactiveInterval(Duration maxInactiveInterval) { + this.maxInactiveInterval = maxInactiveInterval; + } + + public void setRedisNamespace(String namespace) { + Assert.hasText(namespace, "namespace cannot be empty or null"); + this.redisNamespace = namespace; + } + + public void setSaveMode(SaveMode saveMode) { + Assert.notNull(saveMode, "saveMode cannot be null"); + this.saveMode = saveMode; + } + + public Duration getMaxInactiveInterval() { + return this.maxInactiveInterval; + } + + public String getRedisNamespace() { + return this.redisNamespace; + } + + public SaveMode getSaveMode() { + return this.saveMode; + } + + public SessionIdGenerator getSessionIdGenerator() { + return this.sessionIdGenerator; + } + + public RedisSerializer getDefaultRedisSerializer() { + return this.defaultRedisSerializer; + } + + @Autowired + public void setRedisConnectionFactory( + @SpringSessionRedisConnectionFactory ObjectProvider springSessionRedisConnectionFactory, + ObjectProvider redisConnectionFactory) { + ReactiveRedisConnectionFactory redisConnectionFactoryToUse = springSessionRedisConnectionFactory + .getIfAvailable(); + if (redisConnectionFactoryToUse == null) { + redisConnectionFactoryToUse = redisConnectionFactory.getObject(); + } + this.redisConnectionFactory = redisConnectionFactoryToUse; + } + + @Autowired(required = false) + @Qualifier("springSessionDefaultRedisSerializer") + public void setDefaultRedisSerializer(RedisSerializer defaultRedisSerializer) { + this.defaultRedisSerializer = defaultRedisSerializer; + } + + @Autowired(required = false) + public void setSessionRepositoryCustomizer( + ObjectProvider> sessionRepositoryCustomizers) { + this.sessionRepositoryCustomizers = sessionRepositoryCustomizers.orderedStream().collect(Collectors.toList()); + } + + protected List> getSessionRepositoryCustomizers() { + return this.sessionRepositoryCustomizers; + } + + protected ReactiveRedisTemplate createReactiveRedisTemplate() { + RedisSerializer keySerializer = RedisSerializer.string(); + RedisSerializer defaultSerializer = (this.defaultRedisSerializer != null) ? this.defaultRedisSerializer + : new JdkSerializationRedisSerializer(); + RedisSerializationContext serializationContext = RedisSerializationContext + .newSerializationContext(defaultSerializer) + .key(keySerializer) + .hashKey(keySerializer) + .build(); + return new ReactiveRedisTemplate<>(this.redisConnectionFactory, serializationContext); + } + + public ReactiveRedisConnectionFactory getRedisConnectionFactory() { + return this.redisConnectionFactory; + } + + @Autowired(required = false) + public void setSessionIdGenerator(SessionIdGenerator sessionIdGenerator) { + this.sessionIdGenerator = sessionIdGenerator; + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/EnableRedisIndexedWebSession.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/EnableRedisIndexedWebSession.java new file mode 100644 index 000000000..23d13781a --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/EnableRedisIndexedWebSession.java @@ -0,0 +1,89 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis.config.annotation.web.server; + +import java.lang.annotation.Documented; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; +import org.springframework.session.MapSession; +import org.springframework.session.SaveMode; +import org.springframework.session.data.redis.ReactiveRedisIndexedSessionRepository; +import org.springframework.web.server.session.WebSessionManager; + +/** + * Add this annotation to an {@link org.springframework.context.annotation.Configuration} + * class to expose the {@link WebSessionManager} as a bean named {@code webSessionManager} + * and backed by Reactive Redis. In order to leverage the annotation, a single + * {@link ReactiveRedisConnectionFactory} must be provided. For example: + * + *
+ * @Configuration(proxyBeanMethods = false)
+ * @EnableRedisIndexedWebSession
+ * public class RedisIndexedWebSessionConfig {
+ *
+ *     @Bean
+ *     public LettuceConnectionFactory redisConnectionFactory() {
+ *         return new LettuceConnectionFactory();
+ *     }
+ *
+ * }
+ * 
+ * + * More advanced configurations can extend {@link RedisIndexedWebSessionConfiguration} + * instead. + * + * @author Marcus da Coregio + * @since 3.3 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Documented +@Import(RedisIndexedWebSessionConfiguration.class) +public @interface EnableRedisIndexedWebSession { + + /** + * The session timeout in seconds. By default, it is set to 1800 seconds (30 minutes). + * A negative number means permanently valid. + * @return the seconds a session can be inactive before expiring + */ + int maxInactiveIntervalInSeconds() default MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS; + + /** + * Defines a unique namespace for keys. The value is used to isolate sessions by + * changing the prefix from default {@code spring:session:} to + * {@code :}. + *

+ * For example, if you had an application named "Application A" that needed to keep + * the sessions isolated from "Application B" you could set two different values for + * the applications and they could function within the same Redis instance. + * @return the unique namespace for keys + */ + String redisNamespace() default ReactiveRedisIndexedSessionRepository.DEFAULT_NAMESPACE; + + /** + * Save mode for the session. The default is {@link SaveMode#ON_SET_ATTRIBUTE}, which + * only saves changes made to session. + * @return the save mode + */ + SaveMode saveMode() default SaveMode.ON_SET_ATTRIBUTE; + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisIndexedWebSessionConfiguration.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisIndexedWebSessionConfiguration.java new file mode 100644 index 000000000..a706fc460 --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/server/RedisIndexedWebSessionConfiguration.java @@ -0,0 +1,205 @@ +/* + * Copyright 2014-2022 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis.config.annotation.web.server; + +import java.time.Duration; +import java.util.Map; + +import org.apache.commons.logging.LogFactory; + +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationEventPublisher; +import org.springframework.context.EmbeddedValueResolverAware; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.ImportAware; +import org.springframework.core.annotation.AnnotationAttributes; +import org.springframework.core.type.AnnotationMetadata; +import org.springframework.data.redis.connection.ReactiveRedisConnection; +import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; +import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.core.ReactiveRedisTemplate; +import org.springframework.data.redis.core.ReactiveStringRedisTemplate; +import org.springframework.session.IndexResolver; +import org.springframework.session.Session; +import org.springframework.session.data.redis.ReactiveRedisIndexedSessionRepository; +import org.springframework.session.data.redis.config.ConfigureReactiveRedisAction; +import org.springframework.session.data.redis.config.annotation.ConfigureNotifyKeyspaceEventsReactiveAction; +import org.springframework.util.ClassUtils; +import org.springframework.util.StringUtils; +import org.springframework.util.StringValueResolver; +import org.springframework.web.server.session.WebSessionManager; + +/** + * Exposes the {@link WebSessionManager} as a bean named {@code webSessionManager} backed + * by {@link ReactiveRedisIndexedSessionRepository}. In order to use this a single + * {@link ReactiveRedisConnectionFactory} must be exposed as a Bean. + * + * @author Marcus da Coregio + * @since 3.3 + * @see EnableRedisIndexedWebSession + */ +@Configuration(proxyBeanMethods = false) +public class RedisIndexedWebSessionConfiguration + extends AbstractRedisWebSessionConfiguration + implements EmbeddedValueResolverAware, ImportAware { + + private static final boolean lettucePresent; + + private static final boolean jedisPresent; + + private ConfigureReactiveRedisAction configureRedisAction = new ConfigureNotifyKeyspaceEventsReactiveAction(); + + private StringValueResolver embeddedValueResolver; + + private ApplicationEventPublisher eventPublisher; + + private IndexResolver indexResolver; + + static { + ClassLoader classLoader = RedisIndexedWebSessionConfiguration.class.getClassLoader(); + lettucePresent = ClassUtils.isPresent("io.lettuce.core.RedisClient", classLoader); + jedisPresent = ClassUtils.isPresent("redis.clients.jedis.Jedis", classLoader); + } + + @Override + @Bean + public ReactiveRedisIndexedSessionRepository sessionRepository() { + ReactiveRedisTemplate reactiveRedisTemplate = createReactiveRedisTemplate(); + ReactiveRedisIndexedSessionRepository sessionRepository = new ReactiveRedisIndexedSessionRepository( + reactiveRedisTemplate, createReactiveStringRedisTemplate()); + sessionRepository.setDefaultMaxInactiveInterval(getMaxInactiveInterval()); + sessionRepository.setEventPublisher(this.eventPublisher); + if (this.indexResolver != null) { + sessionRepository.setIndexResolver(this.indexResolver); + } + if (StringUtils.hasText(getRedisNamespace())) { + sessionRepository.setRedisKeyNamespace(getRedisNamespace()); + } + int database = resolveDatabase(); + sessionRepository.setDatabase(database); + sessionRepository.setSaveMode(getSaveMode()); + sessionRepository.setSessionIdGenerator(getSessionIdGenerator()); + if (getSessionRepositoryCustomizers() != null) { + getSessionRepositoryCustomizers().forEach((customizer) -> customizer.customize(sessionRepository)); + } + return sessionRepository; + } + + private ReactiveStringRedisTemplate createReactiveStringRedisTemplate() { + return new ReactiveStringRedisTemplate(getRedisConnectionFactory()); + } + + @Bean + public InitializingBean enableRedisKeyspaceNotificationsInitializer() { + return new EnableRedisKeyspaceNotificationsInitializer(getRedisConnectionFactory(), this.configureRedisAction); + } + + @Autowired + public void setEventPublisher(ApplicationEventPublisher eventPublisher) { + this.eventPublisher = eventPublisher; + } + + /** + * Sets the action to perform for configuring Redis. + * @param configureRedisAction the configuration to apply to Redis. The default is + * {@link ConfigureNotifyKeyspaceEventsReactiveAction} + */ + @Autowired(required = false) + public void setConfigureRedisAction(ConfigureReactiveRedisAction configureRedisAction) { + this.configureRedisAction = configureRedisAction; + } + + @Autowired(required = false) + public void setIndexResolver(IndexResolver indexResolver) { + this.indexResolver = indexResolver; + } + + @Override + public void setEmbeddedValueResolver(StringValueResolver resolver) { + this.embeddedValueResolver = resolver; + } + + @Override + public void setImportMetadata(AnnotationMetadata importMetadata) { + Map attributeMap = importMetadata + .getAnnotationAttributes(EnableRedisIndexedWebSession.class.getName()); + AnnotationAttributes attributes = AnnotationAttributes.fromMap(attributeMap); + if (attributes == null) { + return; + } + setMaxInactiveInterval(Duration.ofSeconds(attributes.getNumber("maxInactiveIntervalInSeconds"))); + String redisNamespaceValue = attributes.getString("redisNamespace"); + if (StringUtils.hasText(redisNamespaceValue)) { + setRedisNamespace(this.embeddedValueResolver.resolveStringValue(redisNamespaceValue)); + } + setSaveMode(attributes.getEnum("saveMode")); + } + + private int resolveDatabase() { + if (lettucePresent && getRedisConnectionFactory() instanceof LettuceConnectionFactory lettuce) { + return lettuce.getDatabase(); + } + if (jedisPresent && getRedisConnectionFactory() instanceof JedisConnectionFactory jedis) { + return jedis.getDatabase(); + } + return ReactiveRedisIndexedSessionRepository.DEFAULT_DATABASE; + } + + /** + * Ensures that Redis is configured to send keyspace notifications. This is important + * to ensure that expiration and deletion of sessions trigger SessionDestroyedEvents. + * Without the SessionDestroyedEvent resources may not get cleaned up properly. For + * example, the mapping of the Session to WebSocket connections may not get cleaned + * up. + */ + static class EnableRedisKeyspaceNotificationsInitializer implements InitializingBean { + + private final ReactiveRedisConnectionFactory connectionFactory; + + private final ConfigureReactiveRedisAction configure; + + EnableRedisKeyspaceNotificationsInitializer(ReactiveRedisConnectionFactory connectionFactory, + ConfigureReactiveRedisAction configure) { + this.connectionFactory = connectionFactory; + this.configure = configure; + } + + @Override + public void afterPropertiesSet() { + if (this.configure == ConfigureReactiveRedisAction.NO_OP) { + return; + } + ReactiveRedisConnection connection = this.connectionFactory.getReactiveConnection(); + try { + this.configure.configure(connection).block(); + } + finally { + try { + connection.close(); + } + catch (Exception ex) { + LogFactory.getLog(getClass()).error("Error closing RedisConnection", ex); + } + } + } + + } + +} diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionIndexerTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionIndexerTests.java new file mode 100644 index 000000000..14f70fc90 --- /dev/null +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/ReactiveRedisSessionIndexerTests.java @@ -0,0 +1,197 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.util.List; +import java.util.Map; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Answers; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import org.springframework.data.redis.core.ReactiveRedisOperations; +import org.springframework.session.DelegatingIndexResolver; +import org.springframework.session.IndexResolver; +import org.springframework.session.PrincipalNameIndexResolver; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.session.Session; +import org.springframework.session.SingleIndexResolver; +import org.springframework.session.data.redis.ReactiveRedisIndexedSessionRepository.RedisSession; +import org.springframework.test.util.ReflectionTestUtils; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; + +/** + * Tests for {@link ReactiveRedisSessionIndexer}. + * + * @author Marcus da Coregio + */ +class ReactiveRedisSessionIndexerTests { + + ReactiveRedisSessionIndexer indexer; + + ReactiveRedisOperations sessionRedisOperations = mock(Answers.RETURNS_DEEP_STUBS); + + String indexKeyPrefix = "spring:session:sessions:index:"; + + @BeforeEach + void setup() { + this.indexer = new ReactiveRedisSessionIndexer(this.sessionRedisOperations, "spring:session:"); + } + + @Test + void getIndexesWhenIndexKeyExistsThenReturnsIndexNameAndValue() { + List indexKeys = List.of(this.indexKeyPrefix + "principalName:user", + this.indexKeyPrefix + "index_name:index_value"); + given(this.sessionRedisOperations.opsForSet().members(anyString())).willReturn(Flux.fromIterable(indexKeys)); + Map indexes = this.indexer.getIndexes("1234").block(); + assertThat(indexes).hasSize(2) + .containsEntry("principalName", "user") + .containsEntry("index_name", "index_value"); + } + + @Test + void deleteWhenSessionIdHasIndexesThenRemoveSessionIdFromIndexesAndDeleteSessionIndexKey() { + String index1 = this.indexKeyPrefix + "principalName:user"; + String index2 = this.indexKeyPrefix + "index_name:index_value"; + List indexKeys = List.of(index1, index2); + given(this.sessionRedisOperations.opsForSet().members(anyString())).willReturn(Flux.fromIterable(indexKeys)); + given(this.sessionRedisOperations.delete(anyString())).willReturn(Mono.just(1L)); + given(this.sessionRedisOperations.opsForSet().remove(anyString(), anyString())).willReturn(Mono.just(1L)); + this.indexer.delete("1234").block(); + verify(this.sessionRedisOperations).delete("spring:session:sessions:1234:idx"); + verify(this.sessionRedisOperations.opsForSet()).remove(index1, "1234"); + verify(this.sessionRedisOperations.opsForSet()).remove(index2, "1234"); + } + + @Test + void updateWhenSessionHasNoIndexesSavedThenUpdates() { + RedisSession session = mock(); + given(session.getAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME)) + .willReturn("user"); + given(session.getId()).willReturn("1234"); + given(this.sessionRedisOperations.opsForSet().members(anyString())).willReturn(Flux.empty()); + given(this.sessionRedisOperations.opsForSet().add(anyString(), anyString())).willReturn(Mono.just(1L)); + this.indexer.update(session).block(); + verify(this.sessionRedisOperations.opsForSet()).add(this.indexKeyPrefix + "PRINCIPAL_NAME_INDEX_NAME:user", + "1234"); + } + + @Test + void updateWhenSessionIndexesSavedWithSameValueThenDoesNotUpdate() { + String indexKey = this.indexKeyPrefix + ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME + + ":user"; + RedisSession session = mock(); + given(session.getAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME)) + .willReturn("user"); + given(session.getId()).willReturn("1234"); + given(this.sessionRedisOperations.opsForSet().members(anyString())) + .willReturn(Flux.fromIterable(List.of(indexKey))); + this.indexer.update(session).block(); + verify(this.sessionRedisOperations.opsForSet(), never()).add(anyString(), anyString()); + verify(this.sessionRedisOperations.opsForSet(), never()).remove(anyString(), anyString()); + } + + @Test + void updateWhenSessionIndexesSavedWithDifferentValueThenUpdates() { + String indexKey = this.indexKeyPrefix + ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME + + ":user"; + RedisSession session = mock(); + given(session.getAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME)) + .willReturn("newuser"); + given(session.getId()).willReturn("1234"); + given(this.sessionRedisOperations.opsForSet().members(anyString())) + .willReturn(Flux.fromIterable(List.of(indexKey))); + given(this.sessionRedisOperations.opsForSet().add(anyString(), anyString())).willReturn(Mono.just(1L)); + given(this.sessionRedisOperations.opsForSet().remove(anyString(), anyString())).willReturn(Mono.just(1L)); + this.indexer.update(session).block(); + verify(this.sessionRedisOperations.opsForSet()).add( + this.indexKeyPrefix + ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME + ":newuser", + "1234"); + verify(this.sessionRedisOperations.opsForSet()).remove(indexKey, "1234"); + } + + @Test + void updateWhenMultipleIndexResolvedThenUpdated() { + IndexResolver indexResolver = new DelegatingIndexResolver<>( + new PrincipalNameIndexResolver<>(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME), + new TestIndexResolver<>("test")); + this.indexer.setIndexResolver(indexResolver); + RedisSession session = mock(); + given(session.getAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME)) + .willReturn("user"); + given(session.getAttribute("test")).willReturn("testvalue"); + given(session.getId()).willReturn("1234"); + given(this.sessionRedisOperations.opsForSet().members(anyString())).willReturn(Flux.empty()); + given(this.sessionRedisOperations.opsForSet().add(anyString(), anyString())).willReturn(Mono.just(1L)); + this.indexer.update(session).block(); + verify(this.sessionRedisOperations.opsForSet()).add(this.indexKeyPrefix + "PRINCIPAL_NAME_INDEX_NAME:user", + "1234"); + verify(this.sessionRedisOperations.opsForSet()).add(this.indexKeyPrefix + "test:testvalue", "1234"); + } + + @Test + void setNamespaceShouldUpdateIndexKeyPrefix() { + String originalPrefix = (String) ReflectionTestUtils.getField(this.indexer, "indexKeyPrefix"); + this.indexer.setNamespace("my:namespace:"); + String updatedPrefix = (String) ReflectionTestUtils.getField(this.indexer, "indexKeyPrefix"); + assertThat(originalPrefix).isEqualTo(this.indexKeyPrefix); + assertThat(updatedPrefix).isEqualTo("my:namespace:sessions:index:"); + } + + @Test + void constructorWhenSessionRedisOperationsNullThenException() { + assertThatIllegalArgumentException().isThrownBy(() -> new ReactiveRedisSessionIndexer(null, "spring:session:")) + .withMessage("sessionRedisOperations cannot be null"); + } + + @Test + void constructorWhenNamespaceNullThenException() { + assertThatIllegalArgumentException() + .isThrownBy(() -> new ReactiveRedisSessionIndexer(this.sessionRedisOperations, null)) + .withMessage("namespace cannot be empty"); + } + + @Test + void constructorWhenNamespaceEmptyThenException() { + assertThatIllegalArgumentException() + .isThrownBy(() -> new ReactiveRedisSessionIndexer(this.sessionRedisOperations, "")) + .withMessage("namespace cannot be empty"); + } + + static class TestIndexResolver extends SingleIndexResolver { + + protected TestIndexResolver(String indexName) { + super(indexName); + } + + @Override + public String resolveIndexValueFor(S session) { + return session.getAttribute(getIndexName()); + } + + } + +} diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/SortedSetReactiveRedisSessionExpirationStoreTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/SortedSetReactiveRedisSessionExpirationStoreTests.java new file mode 100644 index 000000000..58dbc0300 --- /dev/null +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/SortedSetReactiveRedisSessionExpirationStoreTests.java @@ -0,0 +1,91 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Instant; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Answers; +import org.mockito.ArgumentCaptor; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +import org.springframework.data.domain.Range; +import org.springframework.data.redis.connection.Limit; +import org.springframework.data.redis.core.ReactiveRedisOperations; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyDouble; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +@SuppressWarnings("unchecked") +class SortedSetReactiveRedisSessionExpirationStoreTests { + + SortedSetReactiveRedisSessionExpirationStore store; + + ReactiveRedisOperations sessionRedisOperations = mock(Answers.RETURNS_DEEP_STUBS); + + String namespace = "spring:session:"; + + @BeforeEach + void setup() { + this.store = new SortedSetReactiveRedisSessionExpirationStore(this.sessionRedisOperations, this.namespace); + given(this.sessionRedisOperations.opsForZSet().add(anyString(), anyString(), anyDouble())) + .willReturn(Mono.empty()); + given(this.sessionRedisOperations.opsForZSet().remove(anyString(), anyString())).willReturn(Mono.empty()); + given(this.sessionRedisOperations.opsForZSet() + .reverseRangeByScore(anyString(), any(Range.class), any(Limit.class))).willReturn(Flux.empty()); + } + + @Test + void addThenStoresSessionIdRankedByExpireAtEpochMilli() { + String sessionId = "1234"; + Instant expireAt = Instant.ofEpochMilli(1702314490000L); + StepVerifier.create(this.store.add(sessionId, expireAt)).verifyComplete(); + verify(this.sessionRedisOperations.opsForZSet()).add(this.namespace + "sessions:expirations", sessionId, + expireAt.toEpochMilli()); + } + + @Test + void removeThenRemovesSessionIdFromSortedSet() { + String sessionId = "1234"; + StepVerifier.create(this.store.remove(sessionId)).verifyComplete(); + verify(this.sessionRedisOperations.opsForZSet()).remove(this.namespace + "sessions:expirations", sessionId); + } + + @Test + void retrieveExpiredSessionsThenUsesExpectedRangeAndLimit() { + Instant now = Instant.now(); + StepVerifier.create(this.store.retrieveExpiredSessions(now)).verifyComplete(); + ArgumentCaptor> rangeCaptor = ArgumentCaptor.forClass(Range.class); + ArgumentCaptor limitCaptor = ArgumentCaptor.forClass(Limit.class); + verify(this.sessionRedisOperations.opsForZSet()).reverseRangeByScore( + eq(this.namespace + "sessions:expirations"), rangeCaptor.capture(), limitCaptor.capture()); + assertThat(rangeCaptor.getValue().getLowerBound().getValue()).hasValue(0D); + assertThat(rangeCaptor.getValue().getUpperBound().getValue()).hasValue((double) now.toEpochMilli()); + assertThat(limitCaptor.getValue().getCount()).isEqualTo(100); + assertThat(limitCaptor.getValue().getOffset()).isEqualTo(0); + } + +} diff --git a/spring-session-dependencies/spring-session-dependencies.gradle b/spring-session-dependencies/spring-session-dependencies.gradle index 9d861d11a..c1ca48849 100644 --- a/spring-session-dependencies/spring-session-dependencies.gradle +++ b/spring-session-dependencies/spring-session-dependencies.gradle @@ -41,6 +41,7 @@ dependencies { api libs.org.mongodb.mongodb.driver.sync api libs.org.mongodb.mongodb.driver.reactivestreams api libs.org.postgresql + api libs.org.awaitility.awaitility } } diff --git a/spring-session-docs/modules/ROOT/nav.adoc b/spring-session-docs/modules/ROOT/nav.adoc index d2e4e76a3..115b29ad7 100644 --- a/spring-session-docs/modules/ROOT/nav.adoc +++ b/spring-session-docs/modules/ROOT/nav.adoc @@ -24,7 +24,9 @@ *** xref:guides/xml-redis.adoc[Redis] *** xref:guides/xml-jdbc.adoc[JDBC] * xref:configurations.adoc[Configurations] -** xref:configuration/redis.adoc[Redis] +** Redis +*** xref:configuration/redis.adoc[Redis HTTP Session] +*** xref:configuration/reactive-redis-indexed.adoc[Redis Indexed Web Session] ** xref:configuration/common.adoc[Common Configurations] * xref:http-session.adoc[HttpSession Integration] * xref:web-socket.adoc[WebSocket Integration] diff --git a/spring-session-docs/modules/ROOT/pages/configuration/reactive-redis-indexed.adoc b/spring-session-docs/modules/ROOT/pages/configuration/reactive-redis-indexed.adoc new file mode 100644 index 000000000..602cdbdf5 --- /dev/null +++ b/spring-session-docs/modules/ROOT/pages/configuration/reactive-redis-indexed.adoc @@ -0,0 +1,227 @@ +[[reactive-indexed-redis-configurations]] += Reactive Redis Indexed Configurations + +To start using the Redis Indexed Web Session support, you need to add the following dependency to your project: + +[tabs] +====== +Maven:: ++ +[source,xml] +---- + + org.springframework.session + spring-session-data-redis + +---- +Gradle:: ++ +[source,groovy] +---- +implementation 'org.springframework.session:spring-session-data-redis' +---- +====== + +And add the `@EnableRedisIndexedWebSession` annotation to a configuration class: + +[source,java,role="primary"] +---- +@Configuration +@EnableRedisIndexedWebSession +public class SessionConfig { + // ... +} +---- + +That is it. Your application now has a reactive Redis backed Indexed Web Session support. +Now that you have your application configured, you might want to start customizing things: + +- I want to <>. +- I want to <> for keys used by Spring Session. +- I want to know <>. +- I want to <>. +- I want to <>. +- I want to <>. + +[[serializing-session-using-json]] +== Serializing the Session using JSON + +By default, Spring Session Data Redis uses Java Serialization to serialize the session attributes. +Sometimes it might be problematic, especially when you have multiple applications that use the same Redis instance but have different versions of the same class. +You can provide a `RedisSerializer` bean to customize how the session is serialized into Redis. +Spring Data Redis provides the `GenericJackson2JsonRedisSerializer` that serializes and deserializes objects using Jackson's `ObjectMapper`. + +==== +.Configuring the RedisSerializer +[source,java] +---- +include::{samples-dir}spring-session-sample-boot-redis-json/src/main/java/sample/config/SessionConfig.java[tags=class] +---- +==== + +The above code snippet is using Spring Security, therefore we are creating a custom `ObjectMapper` that uses Spring Security's Jackson modules. +If you do not need Spring Security Jackson modules, you can inject your application's `ObjectMapper` bean and use it like so: + +==== +[source,java] +---- +@Bean +public RedisSerializer springSessionDefaultRedisSerializer(ObjectMapper objectMapper) { + return new GenericJackson2JsonRedisSerializer(objectMapper); +} +---- +==== + +[NOTE] +==== +The `RedisSerializer` bean name must be `springSessionDefaultRedisSerializer` so it does not conflict with other `RedisSerializer` beans used by Spring Data Redis. +If a different name is provided it won't be picked up by Spring Session. +==== + +[[using-a-different-namespace]] +== Specifying a Different Namespace + +It is not uncommon to have multiple applications that use the same Redis instance or to want to keep the session data separated from other data stored in Redis. +For that reason, Spring Session uses a `namespace` (defaults to `spring:session`) to keep the session data separated if needed. + +You can specify the `namespace` by setting the `redisNamespace` property in the `@EnableRedisIndexedWebSession` annotation: + +==== +.Specifying a different namespace +[source,java,role="primary"] +---- +@Configuration +@EnableRedisIndexedWebSession(redisNamespace = "spring:session:myapplication") +public class SessionConfig { + // ... +} +---- +==== + +[[how-spring-session-cleans-up-expired-sessions]] +== Understanding How Spring Session Cleans Up Expired Sessions + +Spring Session relies on https://redis.io/docs/manual/keyspace-notifications/[Redis Keyspace Events] to clean up expired sessions. +More specifically, it listens to events emitted to the `pass:[__keyevent@*__:expired]` and `pass:[__keyevent@*__:del]` channels and resolve the session id based on the key that was destroyed. + +As an example, let's imagine that we have a session with id `1234` and that the session is set to expire in 30 minutes. +When the expiration time is reached, Redis will emit an event to the `pass:[__keyevent@*__:expired]` channel with the message `spring:session:sessions:expires:1234` which is the key that expired. +Spring Session will then resolve the session id (`1234`) from the key and delete all the related session keys from Redis. + +One problem with relying on Redis expiration exclusively is that Redis makes no guarantee of when the expired event will be fired if the key has not been accessed. +For additional details see https://redis.io/commands/expire/#:~:text=How%20Redis%20expires%20keys[How Redis expires keys] in the Redis documentation. +To circumvent the fact that expired events are not guaranteed to happen we can ensure that each key is accessed when it is expected to expire. +This means that if the TTL is expired on the key, Redis will remove the key and fire the expired event when we try to access the key. +For this reason, each session expiration is also tracked by storing the session id in a sorted set ranked by its expiration time. +This allows a background task to access the potentially expired sessions to ensure that Redis expired events are fired in a more deterministic fashion. +For example: +---- +ZADD spring:session:sessions:expirations "1.702402961162E12" "648377f7-c76f-4f45-b847-c0268bb48381" +---- + +We do not explicitly delete the keys since in some instances there may be a race condition that incorrectly identifies a key as expired when it is not. +Short of using distributed locks (which would kill our performance) there is no way to ensure the consistency of the expiration mapping. +By simply accessing the key, we ensure that the key is only removed if the TTL on that key is expired. + +By default, Spring Session will retrieve up to 100 expired sessions every 60 seconds. +If you want to configure how often the cleanup task runs, please refer to the <> section. + +== Configuring Redis to Send Keyspace Events + +By default, Spring Session tries to configure Redis to send keyspace events using the `ConfigureNotifyKeyspaceEventsReactiveAction` which, in turn, might set the `notify-keyspace-events` configuration property to `Egx`. +However, this strategy will not work if the Redis instance has been properly secured. +In that case, the Redis instance should be configured externally and a Bean of type `ConfigureReactiveRedisAction.NO_OP` should be exposed to disable the autoconfiguration. + +[source,java] +---- +@Bean +public ConfigureReactiveRedisAction configureReactiveRedisAction() { + return ConfigureReactiveRedisAction.NO_OP; +} +---- + +[[changing-the-frequency-of-the-session-cleanup]] +== Changing the Frequency of the Session Cleanup + +Depending on your application's needs, you might want to change the frequency of the session cleanup. +To do that, you can expose a `ReactiveSessionRepositoryCustomizer` bean and set the `cleanupInterval` property: + +[source,java] +---- +@Bean +public ReactiveSessionRepositoryCustomizer reactiveSessionRepositoryCustomizer() { + return (sessionRepository) -> sessionRepository.setCleanupInterval(Duration.ofSeconds(30)); +} +---- + +You can also set invoke `disableCleanupTask()` to disable the cleanup task. + +[source,java] +---- +@Bean +public ReactiveSessionRepositoryCustomizer reactiveSessionRepositoryCustomizer() { + return (sessionRepository) -> sessionRepository.disableCleanupTask(); +} +---- + +[[taking-control-over-the-cleanup-task]] +=== Taking Control Over the Cleanup Task + +Sometimes, the default cleanup task might not be enough for your application's needs. +You might want to adopt a different strategy to clean up expired sessions. +Since you know that the <>, you can <> task and provide your own strategy. +For example: + +[source,java] +---- +@Component +public class SessionEvicter { + + private ReactiveRedisOperations redisOperations; + + @Scheduled + public Mono cleanup() { + Instant now = Instant.now(); + Instant oneMinuteAgo = now.minus(Duration.ofMinutes(1)); + Range range = Range.closed((double) oneMinuteAgo.toEpochMilli(), (double) now.toEpochMilli()); + Limit limit = Limit.limit().count(1000); + return this.redisOperations.opsForZSet().reverseRangeByScore("spring:session:sessions:expirations", range, limit) + // do something with the session ids + .then(); + } + +} +---- + +[[listening-session-events]] +== Listening to Session Events + +Often times it is valuable to react to session events, for example, you might want to do some kind of processing depending on the session lifecycle. + +You configure your application to listen to `SessionCreatedEvent`, `SessionDeletedEvent` and `SessionExpiredEvent` events. +There are a https://docs.spring.io/spring-framework/reference/core/beans/context-introduction.html#context-functionality-events[few ways to listen to application events] in Spring, for this example we are going to use the `@EventListener` annotation. + +==== +[source,java] +---- +@Component +public class SessionEventListener { + + @EventListener + public Mono processSessionCreatedEvent(SessionCreatedEvent event) { + // do the necessary work + } + + @EventListener + public Mono processSessionDeletedEvent(SessionDeletedEvent event) { + // do the necessary work + } + + @EventListener + public Mono processSessionExpiredEvent(SessionExpiredEvent event) { + // do the necessary work + } + +} +---- +==== diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/spring-session-sample-boot-reactive-redis-indexed.gradle b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/spring-session-sample-boot-reactive-redis-indexed.gradle new file mode 100644 index 000000000..d4412d8fd --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/spring-session-sample-boot-reactive-redis-indexed.gradle @@ -0,0 +1,21 @@ +apply plugin: 'io.spring.convention.spring-sample-boot' + +dependencies { + management platform(project(":spring-session-dependencies")) + implementation project(':spring-session-data-redis') + implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive' + implementation 'org.springframework.boot:spring-boot-starter-security' + implementation 'org.springframework.boot:spring-boot-starter-webflux' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'io.projectreactor:reactor-test' + testImplementation 'org.springframework.security:spring-security-test' + testImplementation 'org.springframework.boot:spring-boot-testcontainers' + testImplementation 'org.testcontainers:junit-jupiter' + testImplementation 'org.seleniumhq.selenium:selenium-java' + testImplementation 'org.seleniumhq.selenium:htmlunit-driver' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/IndexController.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/IndexController.java new file mode 100644 index 000000000..8fdd7f724 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/IndexController.java @@ -0,0 +1,43 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import reactor.core.publisher.Mono; + +import org.springframework.security.core.Authentication; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +class IndexController { + + private final ReactiveFindByIndexNameSessionRepository sessionRepository; + + IndexController(ReactiveFindByIndexNameSessionRepository sessionRepository) { + this.sessionRepository = sessionRepository; + } + + @GetMapping("/") + Mono index(Model model, Authentication authentication) { + return this.sessionRepository.findByPrincipalName(authentication.getName()) + .doOnNext((sessions) -> model.addAttribute("sessions", sessions.values())) + .thenReturn("index"); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SecurityConfig.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SecurityConfig.java new file mode 100644 index 000000000..86a7d66c1 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SecurityConfig.java @@ -0,0 +1,60 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.springframework.boot.autoconfigure.security.reactive.PathRequest; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.Customizer; +import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; +import org.springframework.security.config.web.server.ServerHttpSecurity; +import org.springframework.security.core.userdetails.MapReactiveUserDetailsService; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.web.server.SecurityWebFilterChain; + +@Configuration(proxyBeanMethods = false) +@EnableWebFluxSecurity +public class SecurityConfig { + + @Bean + SecurityWebFilterChain filterChain(ServerHttpSecurity http) { + return http + .authorizeExchange(exchanges -> exchanges.matchers(PathRequest.toStaticResources().atCommonLocations()) + .permitAll() + .anyExchange() + .authenticated()) + .formLogin(Customizer.withDefaults()) + .build(); + } + + @Bean + MapReactiveUserDetailsService reactiveUserDetailsService() { + UserDetails user = User.withDefaultPasswordEncoder() + .username("user") + .password("password") + .roles("USER") + .build(); + UserDetails admin = User.withDefaultPasswordEncoder() + .username("admin") + .password("password") + .roles("USER", "ADMIN") + .build(); + return new MapReactiveUserDetailsService(user, admin); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SessionConfig.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SessionConfig.java new file mode 100644 index 000000000..107566c14 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SessionConfig.java @@ -0,0 +1,26 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.springframework.context.annotation.Configuration; +import org.springframework.session.data.redis.config.annotation.web.server.EnableRedisIndexedWebSession; + +@Configuration(proxyBeanMethods = false) +@EnableRedisIndexedWebSession +public class SessionConfig { + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplication.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplication.java new file mode 100644 index 000000000..16cff4554 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplication.java @@ -0,0 +1,29 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SpringSessionSampleBootReactiveRedisIndexedApplication { + + public static void main(String[] args) { + SpringApplication.run(SpringSessionSampleBootReactiveRedisIndexedApplication.class, args); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/resources/application.properties b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/resources/application.properties new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/resources/templates/index.html b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/resources/templates/index.html new file mode 100644 index 000000000..816e88d84 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/main/resources/templates/index.html @@ -0,0 +1,16 @@ + + + Secured Content + + +
+

Secured Page

+

This page is secured using Spring Boot, Spring Session, and Spring Security.

+ + + + +
+
+ + diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/BasePage.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/BasePage.java new file mode 100644 index 000000000..30926c3b8 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/BasePage.java @@ -0,0 +1,41 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.openqa.selenium.WebDriver; + +/** + * @author Eddú Meléndez + */ +public class BasePage { + + private WebDriver driver; + + public BasePage(WebDriver driver) { + this.driver = driver; + } + + public WebDriver getDriver() { + return this.driver; + } + + public static void get(WebDriver driver, String get) { + String baseUrl = "http://localhost"; + driver.get(baseUrl + get); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/HomePage.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/HomePage.java new file mode 100644 index 000000000..fb55e2712 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/HomePage.java @@ -0,0 +1,96 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import java.util.ArrayList; +import java.util.List; + +import org.openqa.selenium.SearchContext; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; + +import static org.assertj.core.api.Assertions.assertThat; + +public class HomePage { + + private WebDriver driver; + + @FindBy(css = "table tbody tr") + List trs; + + List attributes; + + public HomePage(WebDriver driver) { + this.driver = driver; + this.attributes = new ArrayList<>(); + } + + private static void get(WebDriver driver, int port, String get) { + String baseUrl = "http://localhost:" + port; + driver.get(baseUrl + get); + } + + public static LoginPage go(WebDriver driver, int port) { + get(driver, port, "/"); + return PageFactory.initElements(driver, LoginPage.class); + } + + public void assertAt() { + assertThat(this.driver.getTitle()).isEqualTo("Session Attributes"); + } + + public List attributes() { + List rows = new ArrayList<>(); + for (WebElement tr : this.trs) { + rows.add(new Attribute(tr)); + } + this.attributes.addAll(rows); + return this.attributes; + } + + public static class Attribute { + + @FindBy(xpath = ".//td[1]") + WebElement attributeName; + + @FindBy(xpath = ".//td[2]") + WebElement attributeValue; + + public Attribute(SearchContext context) { + PageFactory.initElements(new DefaultElementLocatorFactory(context), this); + } + + /** + * @return the attributeName + */ + public String getAttributeName() { + return this.attributeName.getText(); + } + + /** + * @return the attributeValue + */ + public String getAttributeValue() { + return this.attributeValue.getText(); + } + + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/LoginPage.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/LoginPage.java new file mode 100644 index 000000000..795e12e40 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/LoginPage.java @@ -0,0 +1,66 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.openqa.selenium.SearchContext; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; + +import static org.assertj.core.api.Assertions.assertThat; + +public class LoginPage extends BasePage { + + public LoginPage(WebDriver driver) { + super(driver); + } + + public void assertAt() { + assertThat(getDriver().getTitle()).isEqualTo("Please sign in"); + } + + public Form form() { + return new Form(getDriver()); + } + + public class Form { + + @FindBy(name = "username") + private WebElement username; + + @FindBy(name = "password") + private WebElement password; + + @FindBy(tagName = "button") + private WebElement button; + + public Form(SearchContext context) { + PageFactory.initElements(new DefaultElementLocatorFactory(context), this); + } + + public T login(Class page) { + this.username.sendKeys("user"); + this.password.sendKeys("password"); + this.button.click(); + return PageFactory.initElements(getDriver(), page); + } + + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplicationTestApplication.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplicationTestApplication.java new file mode 100644 index 000000000..b7307f10b --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplicationTestApplication.java @@ -0,0 +1,31 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.test.context.TestConfiguration; + +@TestConfiguration(proxyBeanMethods = false) +public class SpringSessionSampleBootReactiveRedisIndexedApplicationTestApplication { + + public static void main(String[] args) { + SpringApplication.from(SpringSessionSampleBootReactiveRedisIndexedApplication::main) + .with(TestcontainersConfig.class) + .run(args); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplicationTests.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplicationTests.java new file mode 100644 index 000000000..31a6cf1d3 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/SpringSessionSampleBootReactiveRedisIndexedApplicationTests.java @@ -0,0 +1,58 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.htmlunit.HtmlUnitDriver; + +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.web.server.LocalServerPort; +import org.springframework.context.annotation.Import; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@Import(TestcontainersConfig.class) +class SpringSessionSampleBootReactiveRedisIndexedApplicationTests { + + WebDriver driver; + + @LocalServerPort + int serverPort; + + @BeforeEach + void setup() { + this.driver = new HtmlUnitDriver(); + } + + @AfterEach + void tearDown() { + this.driver.quit(); + } + + @Test + void indexWhenLoginThenShowSessionIds() { + LoginPage login = HomePage.go(this.driver, this.serverPort); + login.assertAt(); + HomePage home = login.form().login(HomePage.class); + assertThat(home.attributes()).hasSize(1); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/TestcontainersConfig.java b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/TestcontainersConfig.java new file mode 100644 index 000000000..7be556a06 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-redis-indexed/src/test/java/com/example/TestcontainersConfig.java @@ -0,0 +1,35 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.utility.DockerImageName; + +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.context.annotation.Bean; + +@TestConfiguration(proxyBeanMethods = false) +public class TestcontainersConfig { + + @Bean + @ServiceConnection(name = "redis") + GenericContainer redisContainer() { + return new GenericContainer<>(DockerImageName.parse("redis:6.2.6")).withExposedPorts(6379); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-redis-json/src/main/java/sample/config/SessionConfig.java b/spring-session-samples/spring-session-sample-boot-redis-json/src/main/java/sample/config/SessionConfig.java index b1a521bb6..85523780e 100644 --- a/spring-session-samples/spring-session-sample-boot-redis-json/src/main/java/sample/config/SessionConfig.java +++ b/spring-session-samples/spring-session-sample-boot-redis-json/src/main/java/sample/config/SessionConfig.java @@ -34,6 +34,11 @@ public class SessionConfig implements BeanClassLoaderAware { private ClassLoader loader; + /** + * Note that the bean name for this bean is intentionally + * {@code springSessionDefaultRedisSerializer}. It must be named this way to override + * the default {@link RedisSerializer} used by Spring Session. + */ @Bean public RedisSerializer springSessionDefaultRedisSerializer() { return new GenericJackson2JsonRedisSerializer(objectMapper()); From c21130b367ce8b4d135a04d97e81b772aa18caa4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Dec 2023 03:59:15 +0000 Subject: [PATCH 136/579] Bump org-slf4j from 2.0.9 to 2.0.10 Bumps `org-slf4j` from 2.0.9 to 2.0.10. Updates `org.slf4j:jcl-over-slf4j` from 2.0.9 to 2.0.10 Updates `org.slf4j:log4j-over-slf4j` from 2.0.9 to 2.0.10 Updates `org.slf4j:slf4j-api` from 2.0.9 to 2.0.10 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4f1c13f7f..6bb4ecccd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.9" +org-slf4j = "2.0.10" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.1" From 6031ea5ff0d9ee80b8da8fdcc81a380feb21442d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Dec 2023 03:40:20 +0000 Subject: [PATCH 137/579] Bump org-slf4j from 2.0.9 to 2.0.10 Bumps `org-slf4j` from 2.0.9 to 2.0.10. Updates `org.slf4j:jcl-over-slf4j` from 2.0.9 to 2.0.10 Updates `org.slf4j:log4j-over-slf4j` from 2.0.9 to 2.0.10 Updates `org.slf4j:slf4j-api` from 2.0.9 to 2.0.10 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8aaa2c2c8..b21bed313 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.9" +org-slf4j = "2.0.10" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.1" From 07e97a097c19129367fd332f0855c67404eb6bf1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 03:16:57 +0000 Subject: [PATCH 138/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.40 to 0.0.41. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.40...v0.0.41) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 7c0248594..4ed221c9a 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.40' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From 658ec54f05d95a8a406f9d8efe0dca2ff295ccd7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 03:16:49 +0000 Subject: [PATCH 139/579] Bump io.spring.javaformat:spring-javaformat-checkstyle Bumps [io.spring.javaformat:spring-javaformat-checkstyle](https://github.com/spring-io/spring-javaformat) from 0.0.40 to 0.0.41. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.40...v0.0.41) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 88814a625..e0e30ef61 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.1" -io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.40" +io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" From 9c6010239d447af5ccaf8c7aab312ca7e8700002 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jan 2024 03:10:32 +0000 Subject: [PATCH 140/579] Bump io.projectreactor:reactor-core from 3.4.34 to 3.4.35 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.34 to 3.4.35. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.34...v3.4.35) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 4ed221c9a..b8b605c85 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.34' + implementation 'io.projectreactor:reactor-core:3.4.35' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' From 1c4226d754dc0b457b5c18ac5f3697fa538f7e78 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 03:25:25 +0000 Subject: [PATCH 141/579] Bump org-slf4j from 2.0.10 to 2.0.11 Bumps `org-slf4j` from 2.0.10 to 2.0.11. Updates `org.slf4j:jcl-over-slf4j` from 2.0.10 to 2.0.11 Updates `org.slf4j:log4j-over-slf4j` from 2.0.10 to 2.0.11 Updates `org.slf4j:slf4j-api` from 2.0.10 to 2.0.11 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e0e30ef61..95bbc006e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.10" +org-slf4j = "2.0.11" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.1" From 0797dcdd3ac7ff3d9bb30fd22e4e5a03f82c44fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 19:30:00 +0000 Subject: [PATCH 142/579] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/release-scheduler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-scheduler.yml b/.github/workflows/release-scheduler.yml index 63975497a..04f640d10 100644 --- a/.github/workflows/release-scheduler.yml +++ b/.github/workflows/release-scheduler.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 1 - name: Dispatch From b7f5065e9f0f5a78ae95c7713065680352a6be45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 12:43:20 +0000 Subject: [PATCH 143/579] Bump io.projectreactor:reactor-bom from 2023.0.1 to 2023.0.2 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.1 to 2023.0.2. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.1...2023.0.2) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 95bbc006e..b283758a0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.1" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.2" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 7cd5bc33b0a3e3239927d96064bfa34907f82e1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 03:14:20 +0000 Subject: [PATCH 144/579] Bump io.spring.javaformat:spring-javaformat-checkstyle Bumps [io.spring.javaformat:spring-javaformat-checkstyle](https://github.com/spring-io/spring-javaformat) from 0.0.40 to 0.0.41. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.40...v0.0.41) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 24df6335d..959187515 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.1" -io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.40" +io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" From 56b041cc39f2833394fff6a068f28b4d46630dc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jan 2024 03:14:07 +0000 Subject: [PATCH 145/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.40 to 0.0.41. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.40...v0.0.41) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 7c0248594..4ed221c9a 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.40' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From c6e3ada65c9aa67709db4096c43f354ed0c8a60c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jan 2024 04:00:48 +0000 Subject: [PATCH 146/579] Bump io.projectreactor:reactor-core from 3.4.34 to 3.4.35 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.34 to 3.4.35. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.34...v3.4.35) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 4ed221c9a..b8b605c85 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.34' + implementation 'io.projectreactor:reactor-core:3.4.35' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' From 525776012d2af2649377cac2e5982197e8025fb0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jan 2024 03:29:00 +0000 Subject: [PATCH 147/579] Bump org-slf4j from 2.0.10 to 2.0.11 Bumps `org-slf4j` from 2.0.10 to 2.0.11. Updates `org.slf4j:jcl-over-slf4j` from 2.0.10 to 2.0.11 Updates `org.slf4j:log4j-over-slf4j` from 2.0.10 to 2.0.11 Updates `org.slf4j:slf4j-api` from 2.0.10 to 2.0.11 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 959187515..c55c0aaef 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.10" +org-slf4j = "2.0.11" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.1" From 9474d12521a703dfc28435e8c3ce92085eecf3e9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jan 2024 19:11:34 +0000 Subject: [PATCH 148/579] Bump actions/checkout from 3 to 4 Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/release-scheduler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-scheduler.yml b/.github/workflows/release-scheduler.yml index 63975497a..04f640d10 100644 --- a/.github/workflows/release-scheduler.yml +++ b/.github/workflows/release-scheduler.yml @@ -18,7 +18,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 1 - name: Dispatch From 44115b15b7908c39c19372e4e345c9cfb9c0c6aa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 13 Jan 2024 12:44:48 +0000 Subject: [PATCH 149/579] Bump io.projectreactor:reactor-bom from 2023.0.1 to 2023.0.2 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.1 to 2023.0.2. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.1...2023.0.2) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c55c0aaef..a6f7bcb31 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.1" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.2" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From cf62bbccddd2ca88e23d97965f97cc75cd874fce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 03:34:23 +0000 Subject: [PATCH 150/579] Bump org.springframework.data:spring-data-bom from 2023.1.1 to 2023.1.2 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.1 to 2023.1.2. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.1...2023.1.2) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b283758a0..c5ac4589c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.1" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 2ceb784e18d4784cfdcd72ebca8bad2a54e67ed8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 03:34:17 +0000 Subject: [PATCH 151/579] Bump org.springframework:spring-framework-bom from 6.1.2 to 6.1.3 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.2 to 6.1.3. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.2...v6.1.3) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c5ac4589c..339344c76 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.3" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 413b66946f0cdf8a47d5c5b4c60c7764cac92c4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 03:48:03 +0000 Subject: [PATCH 152/579] Bump org.springframework.data:spring-data-bom from 2023.1.1 to 2023.1.2 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.1 to 2023.1.2. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.1...2023.1.2) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a6f7bcb31..2ebd961f4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.1" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 59636aa308afd554586c1a8a0c10a9347c6feb44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jan 2024 03:47:53 +0000 Subject: [PATCH 153/579] Bump org.springframework:spring-framework-bom from 6.1.2 to 6.1.3 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.2 to 6.1.3. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.2...v6.1.3) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2ebd961f4..9d97dfe1a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.2" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.3" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 6929df5742980d0d0766aa7d57c01709ad33947a Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 16 Jan 2024 08:35:41 -0300 Subject: [PATCH 154/579] Update to Spring Security 6.3.0-M1 Closes gh-2741 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9d97dfe1a..f34e4ea71 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.3" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From b6063e780e540324170cab6ab82c3591d137e804 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Jan 2024 13:20:59 +0000 Subject: [PATCH 155/579] Release 3.3.0-M1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 8f16aac4b..03fd412dc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-SNAPSHOT +version=3.3.0-M1 From 4f47c6d68928b4639ce0773720e7f0c488d70556 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 16 Jan 2024 10:41:22 -0300 Subject: [PATCH 156/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 03fd412dc..8f16aac4b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-M1 +version=3.3.0-SNAPSHOT From 06fc25bdfba40a6d95545b9bb5de3db807565c8e Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Wed, 17 Jan 2024 11:17:30 -0300 Subject: [PATCH 157/579] Allow minor version updates for org.springframework projects --- .github/dependabot.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index b57b52e0a..8653218f7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -23,6 +23,8 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "org.mockito:mockito-bom" update-types: [ "version-update:semver-major" ] + - dependency-name: "org.springframework.*" + update-types: [ "version-update:semver-major" ] - dependency-name: "*" update-types: [ "version-update:semver-major", "version-update:semver-minor" ] From 303532b2d259aac2f23c8a05bc6929cd0f93437f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 19:58:12 +0000 Subject: [PATCH 158/579] Bump actions/cache from 3 to 4 Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pr-build-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-build-workflow.yml b/.github/workflows/pr-build-workflow.yml index 120222b7b..20b9cd367 100644 --- a/.github/workflows/pr-build-workflow.yml +++ b/.github/workflows/pr-build-workflow.yml @@ -20,7 +20,7 @@ jobs: distribution: 'temurin' cache: 'gradle' - name: Cache Gradle packages - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} From af6c572f2dee43672c4ec91e1fa31660e73f860c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 03:35:27 +0000 Subject: [PATCH 159/579] Bump org-springframework-boot from 3.2.1 to 3.2.2 Bumps `org-springframework-boot` from 3.2.1 to 3.2.2. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.1 to 3.2.2 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.1...v3.2.2) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.1 to 3.2.2 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.1...v3.2.2) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 339344c76..6ce1c4a30 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.11" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.1" +org-springframework-boot = "3.2.2" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From e92d00f4f1f3731b936baa51122f067950327470 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 03:39:23 +0000 Subject: [PATCH 160/579] Bump io.spring.ge.conventions from 0.0.14 to 0.0.15 Bumps [io.spring.ge.conventions](https://github.com/spring-io/gradle-enterprise-conventions) from 0.0.14 to 0.0.15. - [Release notes](https://github.com/spring-io/gradle-enterprise-conventions/releases) - [Commits](https://github.com/spring-io/gradle-enterprise-conventions/compare/v0.0.14...v0.0.15) --- updated-dependencies: - dependency-name: io.spring.ge.conventions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 1427c6f35..7c34c4661 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,7 +7,7 @@ pluginManagement { plugins { id "com.gradle.enterprise" version "3.12.6" - id "io.spring.ge.conventions" version "0.0.14" + id "io.spring.ge.conventions" version "0.0.15" } rootProject.name = 'spring-session-build' From bfd628d67f2d88b09001dd6033dc288df491cc19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 19:07:16 +0000 Subject: [PATCH 161/579] Bump actions/cache from 3 to 4 Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4. - [Release notes](https://github.com/actions/cache/releases) - [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md) - [Commits](https://github.com/actions/cache/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/cache dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/pr-build-workflow.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-build-workflow.yml b/.github/workflows/pr-build-workflow.yml index 120222b7b..20b9cd367 100644 --- a/.github/workflows/pr-build-workflow.yml +++ b/.github/workflows/pr-build-workflow.yml @@ -20,7 +20,7 @@ jobs: distribution: 'temurin' cache: 'gradle' - name: Cache Gradle packages - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} From 3a088a447fac94a7b142d7891c4dbaf087e6c0ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 03:07:58 +0000 Subject: [PATCH 162/579] Bump org-springframework-boot from 3.2.1 to 3.2.2 Bumps `org-springframework-boot` from 3.2.1 to 3.2.2. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.1 to 3.2.2 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.1...v3.2.2) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.1 to 3.2.2 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.1...v3.2.2) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f34e4ea71..601da6981 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.11" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.1" +org-springframework-boot = "3.2.2" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From e914c43530882e7fd4e200650eac07afaad39418 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 03:50:35 +0000 Subject: [PATCH 163/579] Bump io.spring.ge.conventions from 0.0.14 to 0.0.15 Bumps [io.spring.ge.conventions](https://github.com/spring-io/gradle-enterprise-conventions) from 0.0.14 to 0.0.15. - [Release notes](https://github.com/spring-io/gradle-enterprise-conventions/releases) - [Commits](https://github.com/spring-io/gradle-enterprise-conventions/compare/v0.0.14...v0.0.15) --- updated-dependencies: - dependency-name: io.spring.ge.conventions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 1427c6f35..7c34c4661 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,7 +7,7 @@ pluginManagement { plugins { id "com.gradle.enterprise" version "3.12.6" - id "io.spring.ge.conventions" version "0.0.14" + id "io.spring.ge.conventions" version "0.0.15" } rootProject.name = 'spring-session-build' From 48c22e99dc2647b3559403a66512e8051130802f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 03:11:37 +0000 Subject: [PATCH 164/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.3.0-M1 to 6.3.0-SNAPSHOT. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/commits) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e0c955471..16b0844e1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.3" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From a70438878644d5736a939cb4f9b7896e7e1b90b5 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Mon, 5 Feb 2024 08:42:51 -0300 Subject: [PATCH 165/579] Remove unused plugin --- build.gradle | 1 - 1 file changed, 1 deletion(-) diff --git a/build.gradle b/build.gradle index 3bef670c5..6ef64296b 100644 --- a/build.gradle +++ b/build.gradle @@ -26,7 +26,6 @@ buildscript { plugins { id "com.github.ben-manes.versions" - id "nl.littlerobots.version-catalog-update" version "0.8.1" } apply plugin: 'io.spring.convention.root' From 8101510367645b4cc212118a96083a0eecc49570 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 03:53:38 +0000 Subject: [PATCH 166/579] Bump org-slf4j from 2.0.11 to 2.0.12 Bumps `org-slf4j` from 2.0.11 to 2.0.12. Updates `org.slf4j:jcl-over-slf4j` from 2.0.11 to 2.0.12 Updates `org.slf4j:log4j-over-slf4j` from 2.0.11 to 2.0.12 Updates `org.slf4j:slf4j-api` from 2.0.11 to 2.0.12 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 584b1b403..47514f96b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.11" +org-slf4j = "2.0.12" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.2" From fde40e395c326f1c342d8d0fdb5fed5a9286c0ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Feb 2024 03:45:04 +0000 Subject: [PATCH 167/579] Bump org-slf4j from 2.0.11 to 2.0.12 Bumps `org-slf4j` from 2.0.11 to 2.0.12. Updates `org.slf4j:jcl-over-slf4j` from 2.0.11 to 2.0.12 Updates `org.slf4j:log4j-over-slf4j` from 2.0.11 to 2.0.12 Updates `org.slf4j:slf4j-api` from 2.0.11 to 2.0.12 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 16b0844e1..5aa23c83a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.11" +org-slf4j = "2.0.12" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.2" From 9278e1e44189202341c212367e790f07c0cbe442 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 19:49:55 +0000 Subject: [PATCH 168/579] Bump gradle/wrapper-validation-action from 1 to 2 Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 1 to 2. - [Release notes](https://github.com/gradle/wrapper-validation-action/releases) - [Commits](https://github.com/gradle/wrapper-validation-action/compare/v1...v2) --- updated-dependencies: - dependency-name: gradle/wrapper-validation-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index b63fdf355..95cce8bab 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v1 + - uses: gradle/wrapper-validation-action@v2 From c8e2257dc91936db278169413537e1ba08089018 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Feb 2024 19:20:58 +0000 Subject: [PATCH 169/579] Bump gradle/wrapper-validation-action from 1 to 2 Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 1 to 2. - [Release notes](https://github.com/gradle/wrapper-validation-action/releases) - [Commits](https://github.com/gradle/wrapper-validation-action/compare/v1...v2) --- updated-dependencies: - dependency-name: gradle/wrapper-validation-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index b63fdf355..95cce8bab 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v1 + - uses: gradle/wrapper-validation-action@v2 From bb0b57f9064fb449b607dbc5f781e86be8c58673 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:46:45 +0000 Subject: [PATCH 170/579] Bump com.fasterxml.jackson:jackson-bom from 2.15.3 to 2.15.4 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.15.3 to 2.15.4. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.15.3...jackson-bom-2.15.4) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5aa23c83a..62b67dd69 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ org-springframework-boot = "3.2.2" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.4" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" From 50f30ab4c6053685fb32c9dbe3703dc347d98c8a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:46:15 +0000 Subject: [PATCH 171/579] Bump org.springframework:spring-framework-bom from 6.1.3 to 6.1.4 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.3 to 6.1.4. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.3...v6.1.4) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 62b67dd69..cff57a2a1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-SNAPSHOT" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.3" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 6bacdaa0105714563ccf7e2dcad2d5cc7c072c0d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:46:07 +0000 Subject: [PATCH 172/579] Bump io.projectreactor:reactor-bom from 2023.0.2 to 2023.0.3 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.2 to 2023.0.3. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.2...2023.0.3) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cff57a2a1..6d30cb1b4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.2" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.3" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 3494352d31ce58ad121320cf3f149cb77e25fa7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:26:16 +0000 Subject: [PATCH 173/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.15.3 to 2.15.4 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.15.3 to 2.15.4. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 47514f96b..4e92a15ab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ org-springframework-boot = "3.2.2" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.3" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.4" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.3.6" From 571b9bd0d14658b62c88ba4485ce8d29b5ab88c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:25:33 +0000 Subject: [PATCH 174/579] Bump org.springframework:spring-framework-bom from 6.1.3 to 6.1.4 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.3 to 6.1.4. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.3...v6.1.4) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4e92a15ab..92994e977 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.3" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From c6fe729ba4ea7bfabcf40e4e8d5d86fcf398e329 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 03:25:04 +0000 Subject: [PATCH 175/579] Bump io.projectreactor:reactor-bom from 2023.0.2 to 2023.0.3 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.2 to 2023.0.3. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.2...2023.0.3) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 92994e977..0cc793593 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.2" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.3" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 5f86a7ef3b162ce9939378b8881337a420b38644 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 04:01:46 +0000 Subject: [PATCH 176/579] Bump org.aspectj:aspectjweaver from 1.9.21 to 1.9.21.1 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21 to 1.9.21.1. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6d30cb1b4..f6bd1b8f9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From 81d5894d3a7524bf6882b26ec5164ef6c5ed4c4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Feb 2024 03:42:32 +0000 Subject: [PATCH 177/579] Bump org.aspectj:aspectjweaver from 1.9.21 to 1.9.21.1 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21 to 1.9.21.1. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0cc793593..0bed85f51 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From 5d3770e597821dbaf443c8e82dd2a15cc5ccc441 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 14:14:46 +0000 Subject: [PATCH 178/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.15.3 to 2.15.4 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.15.3 to 2.15.4. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f6bd1b8f9..d41dfcafb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ org-springframework-boot = "3.2.2" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.4" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.3" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.4" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.3.6" From 7e721ff056750d68c0f515a062ec6c57e127210b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 14:15:38 +0000 Subject: [PATCH 179/579] Bump com.fasterxml.jackson:jackson-bom from 2.15.3 to 2.15.4 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.15.3 to 2.15.4. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.15.3...jackson-bom-2.15.4) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0bed85f51..708ada6c1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ org-springframework-boot = "3.2.2" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.3" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.4" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.4" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" From 5016938ad081ec153d5473ee8ad35fc2a84fce71 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Feb 2024 13:20:30 +0000 Subject: [PATCH 180/579] Release 3.3.0-M2 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 8f16aac4b..46afbcdc6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-SNAPSHOT +version=3.3.0-M2 From 0bc6a116499729570faafa98335c8b89c10519d3 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 20 Feb 2024 11:09:56 -0300 Subject: [PATCH 181/579] Revert "Release 3.3.0-M2" This reverts commit 5016938ad081ec153d5473ee8ad35fc2a84fce71. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 46afbcdc6..8f16aac4b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-M2 +version=3.3.0-SNAPSHOT From 3958cba2709970bdb9e5ddf1c1e01bb74f4fb3d2 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 20 Feb 2024 11:11:05 -0300 Subject: [PATCH 182/579] Update Spring Security to 6.3.0-M2 Closes gh-2806 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d41dfcafb..1c09fa7b2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-SNAPSHOT" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From cadb0f52bb6e2a01deb1715b9cb5491cda5699ca Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 20 Feb 2024 11:12:50 -0300 Subject: [PATCH 183/579] Update Spring Data to 2024.0.0-M1 Closes gh-2807 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1c09fa7b2..29c8d0892 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-M1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 59f7f4d2d45f4c51abc4a89bf4fd337a5b6df978 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Feb 2024 14:26:48 +0000 Subject: [PATCH 184/579] Release 3.3.0-M2 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 8f16aac4b..46afbcdc6 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-SNAPSHOT +version=3.3.0-M2 From 47bc27035f9f7c326ead9de367b895c92af95fde Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Feb 2024 14:40:25 +0000 Subject: [PATCH 185/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 46afbcdc6..8f16aac4b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-M2 +version=3.3.0-SNAPSHOT From 0ad16f2863f17b509f642e5bc8617fce2151be9d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 03:29:33 +0000 Subject: [PATCH 186/579] Bump org.postgresql:postgresql from 42.6.0 to 42.6.1 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.6.0 to 42.6.1. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.6.0...REL42.6.1) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 29c8d0892..6924a3d20 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -50,7 +50,7 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "org-mongodb" } -org-postgresql = "org.postgresql:postgresql:42.6.0" +org-postgresql = "org.postgresql:postgresql:42.6.1" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" From 7d12270a2f8eecafb595b031fe49635d98a89407 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Feb 2024 03:23:01 +0000 Subject: [PATCH 187/579] Bump org.postgresql:postgresql from 42.6.0 to 42.6.1 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.6.0 to 42.6.1. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.6.0...REL42.6.1) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 708ada6c1..a55144c11 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -50,7 +50,7 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "org-mongodb" } -org-postgresql = "org.postgresql:postgresql:42.6.0" +org-postgresql = "org.postgresql:postgresql:42.6.1" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" From 5163756eec514419ac58fd8e4be9877197585d96 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 18 Feb 2024 14:08:46 +0000 Subject: [PATCH 188/579] Bump org.springframework.data:spring-data-bom from 2023.1.2 to 2023.1.3 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.2 to 2023.1.3. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.2...2023.1.3) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a55144c11..48a710080 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.2" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.3" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 134dae5fc319d01f5d2f2e28a756cd7f6b2322bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 13:57:55 +0000 Subject: [PATCH 189/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.1 to 6.2.2. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.1...6.2.2) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 48a710080..5e12b8f42 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.3" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 141565109fcbdc2e6497c27fbe6828232c41036f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 03:09:41 +0000 Subject: [PATCH 190/579] Bump org-springframework-boot from 3.2.2 to 3.2.3 Bumps `org-springframework-boot` from 3.2.2 to 3.2.3. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.2 to 3.2.3 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.2...v3.2.3) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.2 to 3.2.3 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.2...v3.2.3) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6924a3d20..0b0d91afe 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.12" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.2" +org-springframework-boot = "3.2.3" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 57860f714879df1f0086e6c877fef62c42894263 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Feb 2024 03:41:02 +0000 Subject: [PATCH 191/579] Bump org-springframework-boot from 3.2.2 to 3.2.3 Bumps `org-springframework-boot` from 3.2.2 to 3.2.3. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.2 to 3.2.3 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.2...v3.2.3) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.2 to 3.2.3 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.2...v3.2.3) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5e12b8f42..ddf2e09d1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.12" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.2" +org-springframework-boot = "3.2.3" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 203a10024ce219554ffd4f9efaa46b1411c3c883 Mon Sep 17 00:00:00 2001 From: debjit2001 <65007559+debjit2001@users.noreply.github.com> Date: Sat, 24 Feb 2024 19:27:31 +0530 Subject: [PATCH 192/579] Fix typo in findByUsername guide --- .../modules/ROOT/pages/guides/boot-findbyusername.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-session-docs/modules/ROOT/pages/guides/boot-findbyusername.adoc b/spring-session-docs/modules/ROOT/pages/guides/boot-findbyusername.adoc index 21c344d5e..b9f59c68e 100644 --- a/spring-session-docs/modules/ROOT/pages/guides/boot-findbyusername.adoc +++ b/spring-session-docs/modules/ROOT/pages/guides/boot-findbyusername.adoc @@ -16,7 +16,7 @@ link:../index.html[Index] The guide assumes you have already added Spring Session to your application by using the built-in Redis configuration support. The guide also assumes you have already applied Spring Security to your application. -However, we the guide is somewhat general purpose and can be applied to any technology with minimal changes, which we discuss later in the guide. +However, the guide is somewhat general purpose and can be applied to any technology with minimal changes, which we discuss later in the guide. NOTE: If you need to learn how to add Spring Session to your project, see the listing of link:../#samples[samples and guides] From 223a90ffbbfbfcfcaa98a1be9c547cd34cb4d980 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 27 Feb 2024 15:11:00 -0300 Subject: [PATCH 193/579] Add SpringSessionBackedReactiveSessionRegistry Closes gh-2824 --- gradle/libs.versions.toml | 2 +- ...gSessionBackedReactiveSessionRegistry.java | 135 ++++++++++++++ ...ionBackedReactiveSessionRegistryTests.java | 166 ++++++++++++++++++ .../ROOT/pages/configuration/common.adoc | 27 +++ .../spring-session-docs.gradle | 6 + ...n-sample-boot-reactive-max-sessions.gradle | 23 +++ .../java/com/example/HelloController.java | 32 ++++ .../java/com/example/IndexController.java | 43 +++++ .../main/java/com/example/SecurityConfig.java | 91 ++++++++++ .../main/java/com/example/SessionConfig.java | 26 +++ ...gSessionSampleBootReactiveMaxSessions.java | 29 +++ .../src/main/resources/application.properties | 1 + .../src/main/resources/templates/index.html | 16 ++ .../src/test/java/com/example/BasePage.java | 41 +++++ .../src/test/java/com/example/HomePage.java | 96 ++++++++++ .../src/test/java/com/example/LoginPage.java | 66 +++++++ ...ionSampleBootReactiveMaxSessionsTests.java | 132 ++++++++++++++ .../java/com/example/TestApplication.java | 31 ++++ .../com/example/TestcontainersConfig.java | 35 ++++ 19 files changed, 997 insertions(+), 1 deletion(-) create mode 100644 spring-session-core/src/main/java/org/springframework/session/security/SpringSessionBackedReactiveSessionRegistry.java create mode 100644 spring-session-core/src/test/java/org/springframework/session/security/SpringSessionBackedReactiveSessionRegistryTests.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/spring-session-sample-boot-reactive-max-sessions.gradle create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/HelloController.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/IndexController.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SecurityConfig.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SessionConfig.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SpringSessionSampleBootReactiveMaxSessions.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/resources/application.properties create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/resources/templates/index.html create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/BasePage.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/HomePage.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/LoginPage.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/SpringSessionSampleBootReactiveMaxSessionsTests.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/TestApplication.java create mode 100644 spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/TestcontainersConfig.java diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0b0d91afe..2f600907e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-M1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M2" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } diff --git a/spring-session-core/src/main/java/org/springframework/session/security/SpringSessionBackedReactiveSessionRegistry.java b/spring-session-core/src/main/java/org/springframework/session/security/SpringSessionBackedReactiveSessionRegistry.java new file mode 100644 index 000000000..71dac0961 --- /dev/null +++ b/spring-session-core/src/main/java/org/springframework/session/security/SpringSessionBackedReactiveSessionRegistry.java @@ -0,0 +1,135 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.security; + +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import org.springframework.security.authentication.AbstractAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.session.ReactiveSessionInformation; +import org.springframework.security.core.session.ReactiveSessionRegistry; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.session.ReactiveSessionRepository; +import org.springframework.session.Session; +import org.springframework.util.Assert; + +/** + * A {@link ReactiveSessionRegistry} that retrieves session information from Spring + * Session, rather than maintaining it itself. This allows concurrent session management + * with Spring Security in a clustered environment. + *

+ * Relies on being able to derive the same String-based representation of the principal + * given to {@link #getAllSessions(Object)} as used by Spring Session in order to look up + * the user's sessions. + *

+ * + * @param the {@link Session} type. + * @author Marcus da Coregio + * @since 3.3 + */ +public final class SpringSessionBackedReactiveSessionRegistry implements ReactiveSessionRegistry { + + private static final String SPRING_SECURITY_CONTEXT = "SPRING_SECURITY_CONTEXT"; + + private final ReactiveSessionRepository sessionRepository; + + private final ReactiveFindByIndexNameSessionRepository indexedSessionRepository; + + public SpringSessionBackedReactiveSessionRegistry(ReactiveSessionRepository sessionRepository, + ReactiveFindByIndexNameSessionRepository indexedSessionRepository) { + Assert.notNull(sessionRepository, "sessionRepository cannot be null"); + Assert.notNull(indexedSessionRepository, "indexedSessionRepository cannot be null"); + this.sessionRepository = sessionRepository; + this.indexedSessionRepository = indexedSessionRepository; + } + + @Override + public Flux getAllSessions(Object principal) { + Authentication authenticationToken = getAuthenticationToken(principal); + return this.indexedSessionRepository.findByPrincipalName(authenticationToken.getName()) + .flatMapMany((sessionMap) -> Flux.fromIterable(sessionMap.entrySet())) + .map((entry) -> new SpringSessionBackedReactiveSessionInformation(entry.getValue())); + } + + @Override + public Mono saveSessionInformation(ReactiveSessionInformation information) { + return Mono.empty(); + } + + @Override + public Mono getSessionInformation(String sessionId) { + return this.sessionRepository.findById(sessionId).map(SpringSessionBackedReactiveSessionInformation::new); + } + + @Override + public Mono removeSessionInformation(String sessionId) { + return Mono.empty(); + } + + @Override + public Mono updateLastAccessTime(String sessionId) { + return Mono.empty(); + } + + private static Authentication getAuthenticationToken(Object principal) { + return new AbstractAuthenticationToken(AuthorityUtils.NO_AUTHORITIES) { + + @Override + public Object getCredentials() { + return null; + } + + @Override + public Object getPrincipal() { + return principal; + } + + }; + } + + class SpringSessionBackedReactiveSessionInformation extends ReactiveSessionInformation { + + SpringSessionBackedReactiveSessionInformation(S session) { + super(resolvePrincipalName(session), session.getId(), session.getLastAccessedTime()); + } + + private static String resolvePrincipalName(Session session) { + String principalName = session + .getAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME); + if (principalName != null) { + return principalName; + } + SecurityContext securityContext = session.getAttribute(SPRING_SECURITY_CONTEXT); + if (securityContext != null && securityContext.getAuthentication() != null) { + return securityContext.getAuthentication().getName(); + } + return ""; + } + + @Override + public Mono invalidate() { + return super.invalidate() + .then(Mono.defer(() -> SpringSessionBackedReactiveSessionRegistry.this.sessionRepository + .deleteById(getSessionId()))); + } + + } + +} diff --git a/spring-session-core/src/test/java/org/springframework/session/security/SpringSessionBackedReactiveSessionRegistryTests.java b/spring-session-core/src/test/java/org/springframework/session/security/SpringSessionBackedReactiveSessionRegistryTests.java new file mode 100644 index 000000000..ce4df35b6 --- /dev/null +++ b/spring-session-core/src/test/java/org/springframework/session/security/SpringSessionBackedReactiveSessionRegistryTests.java @@ -0,0 +1,166 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.security; + +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; +import reactor.test.StepVerifier; + +import org.springframework.security.authentication.TestingAuthenticationToken; +import org.springframework.security.core.context.SecurityContextImpl; +import org.springframework.security.core.session.ReactiveSessionInformation; +import org.springframework.session.MapSession; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.session.ReactiveMapSessionRepository; + +import static org.assertj.core.api.Assertions.assertThat; + +class SpringSessionBackedReactiveSessionRegistryTests { + + static MapSession johnSession1 = new MapSession(); + static MapSession johnSession2 = new MapSession(); + static MapSession johnSession3 = new MapSession(); + + SpringSessionBackedReactiveSessionRegistry sessionRegistry; + + ReactiveFindByIndexNameSessionRepository indexedSessionRepository = new StubIndexedSessionRepository(); + + ReactiveMapSessionRepository sessionRepository = new ReactiveMapSessionRepository(new ConcurrentHashMap<>()); + + static { + johnSession1.setAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, "johndoe"); + johnSession2.setAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, "johndoe"); + johnSession3.setAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, "johndoe"); + } + + @BeforeEach + void setup() { + this.sessionRegistry = new SpringSessionBackedReactiveSessionRegistry<>(this.sessionRepository, + this.indexedSessionRepository); + this.sessionRepository.save(johnSession1).block(); + this.sessionRepository.save(johnSession2).block(); + this.sessionRepository.save(johnSession3).block(); + } + + @Test + void saveSessionInformationThenDoNothing() { + StepVerifier.create(this.sessionRegistry.saveSessionInformation(null)).expectComplete().verify(); + } + + @Test + void removeSessionInformationThenDoNothing() { + StepVerifier.create(this.sessionRegistry.removeSessionInformation(null)).expectComplete().verify(); + } + + @Test + void updateLastAccessTimeThenDoNothing() { + StepVerifier.create(this.sessionRegistry.updateLastAccessTime(null)).expectComplete().verify(); + } + + @Test + void getSessionInformationWhenPrincipalIndexNamePresentThenPrincipalResolved() { + MapSession session = this.sessionRepository.createSession().block(); + session.setAttribute(ReactiveFindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME, "johndoe"); + this.sessionRepository.save(session).block(); + StepVerifier.create(this.sessionRegistry.getSessionInformation(session.getId())) + .assertNext((sessionInformation) -> { + assertThat(sessionInformation.getSessionId()).isEqualTo(session.getId()); + assertThat(sessionInformation.getLastAccessTime()).isEqualTo(session.getLastAccessedTime()); + assertThat(sessionInformation.getPrincipal()).isEqualTo("johndoe"); + }) + .verifyComplete(); + } + + @Test + void getSessionInformationWhenSecurityContextAttributePresentThenPrincipalResolved() { + MapSession session = this.sessionRepository.createSession().block(); + TestingAuthenticationToken authentication = new TestingAuthenticationToken("johndoe", "n/a"); + SecurityContextImpl securityContext = new SecurityContextImpl(); + securityContext.setAuthentication(authentication); + session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext); + this.sessionRepository.save(session).block(); + StepVerifier.create(this.sessionRegistry.getSessionInformation(session.getId())) + .assertNext((sessionInformation) -> { + assertThat(sessionInformation.getSessionId()).isEqualTo(session.getId()); + assertThat(sessionInformation.getLastAccessTime()).isEqualTo(session.getLastAccessedTime()); + assertThat(sessionInformation.getPrincipal()).isEqualTo("johndoe"); + }) + .verifyComplete(); + } + + @Test + void getSessionInformationWhenNoResolvablePrincipalThenPrincipalBlank() { + MapSession session = this.sessionRepository.createSession().block(); + this.sessionRepository.save(session).block(); + StepVerifier.create(this.sessionRegistry.getSessionInformation(session.getId())) + .assertNext((sessionInformation) -> { + assertThat(sessionInformation.getSessionId()).isEqualTo(session.getId()); + assertThat(sessionInformation.getLastAccessTime()).isEqualTo(session.getLastAccessedTime()); + assertThat(sessionInformation.getPrincipal()).isEqualTo(""); + }) + .verifyComplete(); + } + + @Test + void getSessionInformationWhenInvalidateThenRemovedFromSessionRepository() { + MapSession session = this.sessionRepository.createSession().block(); + this.sessionRepository.save(session).block(); + Mono publisher = this.sessionRegistry.getSessionInformation(session.getId()) + .flatMap(ReactiveSessionInformation::invalidate); + StepVerifier.create(publisher).verifyComplete(); + StepVerifier.create(this.sessionRepository.findById(session.getId())).expectComplete().verify(); + } + + @Test + void getAllSessionsWhenSessionsExistsThenReturned() { + Flux sessions = this.sessionRegistry.getAllSessions("johndoe"); + StepVerifier.create(sessions) + .assertNext((sessionInformation) -> assertThat(sessionInformation.getPrincipal()).isEqualTo("johndoe")) + .assertNext((sessionInformation) -> assertThat(sessionInformation.getPrincipal()).isEqualTo("johndoe")) + .assertNext((sessionInformation) -> assertThat(sessionInformation.getPrincipal()).isEqualTo("johndoe")) + .verifyComplete(); + } + + @Test + void getAllSessionsWhenInvalidateThenSessionsRemovedFromRepository() { + this.sessionRegistry.getAllSessions("johndoe").flatMap(ReactiveSessionInformation::invalidate).blockLast(); + StepVerifier.create(this.sessionRepository.findById(johnSession1.getId())).expectComplete().verify(); + StepVerifier.create(this.sessionRepository.findById(johnSession2.getId())).expectComplete().verify(); + StepVerifier.create(this.sessionRepository.findById(johnSession3.getId())).expectComplete().verify(); + } + + static class StubIndexedSessionRepository implements ReactiveFindByIndexNameSessionRepository { + + Map johnSessions = Map.of(johnSession1.getId(), johnSession1, johnSession2.getId(), + johnSession2, johnSession3.getId(), johnSession3); + + @Override + public Mono> findByIndexNameAndIndexValue(String indexName, String indexValue) { + if ("johndoe".equals(indexValue)) { + return Mono.just(this.johnSessions); + } + return Mono.empty(); + } + + } + +} diff --git a/spring-session-docs/modules/ROOT/pages/configuration/common.adoc b/spring-session-docs/modules/ROOT/pages/configuration/common.adoc index 1a842bfe9..dc2b5fea1 100644 --- a/spring-session-docs/modules/ROOT/pages/configuration/common.adoc +++ b/spring-session-docs/modules/ROOT/pages/configuration/common.adoc @@ -6,6 +6,7 @@ It contains configuration examples for the following use cases: - I need to <> - I need to <> +- I want to <> for {spring-security-ref-docs}/reactive/authentication/concurrent-sessions-control.html[Concurrent Sessions Control] [[changing-how-session-ids-are-generated]] == Changing How Session IDs Are Generated @@ -137,3 +138,29 @@ include::{samples-dir}spring-session-sample-boot-webflux-custom-cookie/src/main/ <2> We customize the path of the cookie to be `/` (rather than the default of the context root). <3> We customize the `SameSite` cookie directive to be `Strict`. ==== + +[[spring-session-backed-reactive-session-registry]] +== Providing a Spring Session implementation of `ReactiveSessionRegistry` + +Spring Session provides integration with Spring Security to support its reactive concurrent session control. +This allows limiting the number of active sessions that a single user can have concurrently, but, unlike the default Spring Security support, this also works in a clustered environment. +This is done by providing the `SpringSessionBackedReactiveSessionRegistry` implementation of Spring Security’s `ReactiveSessionRegistry` interface. + +.Defining SpringSessionBackedReactiveSessionRegistry as a bean +[tabs] +====== +Java:: ++ +[source,java,role="primary"] +---- +@Bean +public SpringSessionBackedReactiveSessionRegistry sessionRegistry( + ReactiveSessionRepository sessionRepository, + ReactiveFindByIndexNameSessionRepository indexedSessionRepository) { + return new SpringSessionBackedReactiveSessionRegistry<>(sessionRepository, indexedSessionRepository); +} +---- +====== + +Please, refer to {spring-security-ref-docs}/reactive/authentication/concurrent-sessions-control.html[Spring Security Concurrent Sessions Control documentation] for more ways of using the `ReactiveSessionRegistry`. +You can also check a sample application https://github.com/spring-projects/spring-session/tree/main/spring-session-samples/spring-session-sample-boot-reactive-max-sessions[here]. diff --git a/spring-session-docs/spring-session-docs.gradle b/spring-session-docs/spring-session-docs.gradle index 03e42d15b..d72e75d9a 100644 --- a/spring-session-docs/spring-session-docs.gradle +++ b/spring-session-docs/spring-session-docs.gradle @@ -53,13 +53,19 @@ def generateAttributes() { springBootVersion = springBootVersion.contains("-") ? springBootVersion.substring(0, springBootVersion.indexOf("-")) : springBootVersion + def springSecurityVersion = libs.org.springframework.security.spring.security.bom.get().version + springSecurityVersion = springSecurityVersion.contains("-") + ? springSecurityVersion.substring(0, springSecurityVersion.indexOf("-")) + : springSecurityVersion def ghTag = snapshotBuild ? 'main' : project.version def docsUrl = 'https://docs.spring.io' def springBootRefDocs = "${docsUrl}/spring-boot/docs/${springBootVersion}/reference/html" + def springSecurityRefDocs = "${docsUrl}/spring-security/reference/${springSecurityVersion}" return ['gh-tag':ghTag, 'spring-boot-version': springBootVersion, 'spring-boot-ref-docs': springBootRefDocs.toString(), 'spring-session-version': project.version, + 'spring-security-ref-docs': springSecurityRefDocs.toString(), 'docs-url': docsUrl] } diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/spring-session-sample-boot-reactive-max-sessions.gradle b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/spring-session-sample-boot-reactive-max-sessions.gradle new file mode 100644 index 000000000..dcaa45ba2 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/spring-session-sample-boot-reactive-max-sessions.gradle @@ -0,0 +1,23 @@ +apply plugin: 'io.spring.convention.spring-sample-boot' + +ext['spring-security.version'] = '6.3.0-SNAPSHOT' + +dependencies { + management platform(project(":spring-session-dependencies")) + implementation project(':spring-session-data-redis') + implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive' + implementation 'org.springframework.boot:spring-boot-starter-security' + implementation 'org.springframework.boot:spring-boot-starter-webflux' + implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + testImplementation 'io.projectreactor:reactor-test' + testImplementation 'org.springframework.security:spring-security-test' + testImplementation 'org.springframework.boot:spring-boot-testcontainers' + testImplementation 'org.testcontainers:junit-jupiter' + testImplementation 'org.seleniumhq.selenium:selenium-java' + testImplementation 'org.seleniumhq.selenium:htmlunit-driver' +} + +tasks.named('test') { + useJUnitPlatform() +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/HelloController.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/HelloController.java new file mode 100644 index 000000000..72c28c526 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/HelloController.java @@ -0,0 +1,32 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import reactor.core.publisher.Mono; + +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +class HelloController { + + @GetMapping("/hello") + Mono hello() { + return Mono.just("Hello!"); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/IndexController.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/IndexController.java new file mode 100644 index 000000000..8fdd7f724 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/IndexController.java @@ -0,0 +1,43 @@ +/* + * Copyright 2014-2023 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import reactor.core.publisher.Mono; + +import org.springframework.security.core.Authentication; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; + +@Controller +class IndexController { + + private final ReactiveFindByIndexNameSessionRepository sessionRepository; + + IndexController(ReactiveFindByIndexNameSessionRepository sessionRepository) { + this.sessionRepository = sessionRepository; + } + + @GetMapping("/") + Mono index(Model model, Authentication authentication) { + return this.sessionRepository.findByPrincipalName(authentication.getName()) + .doOnNext((sessions) -> model.addAttribute("sessions", sessions.values())) + .thenReturn("index"); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SecurityConfig.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SecurityConfig.java new file mode 100644 index 000000000..c16fd647b --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SecurityConfig.java @@ -0,0 +1,91 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import reactor.core.publisher.Mono; + +import org.springframework.boot.autoconfigure.security.reactive.PathRequest; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.Customizer; +import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; +import org.springframework.security.config.web.server.ServerHttpSecurity; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.session.ReactiveSessionRegistry; +import org.springframework.security.core.userdetails.MapReactiveUserDetailsService; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.web.authentication.session.SessionAuthenticationException; +import org.springframework.security.web.server.SecurityWebFilterChain; +import org.springframework.security.web.server.authentication.PreventLoginServerMaximumSessionsExceededHandler; +import org.springframework.security.web.server.authentication.SessionLimit; +import org.springframework.session.ReactiveFindByIndexNameSessionRepository; +import org.springframework.session.ReactiveSessionRepository; +import org.springframework.session.Session; +import org.springframework.session.data.redis.ReactiveRedisIndexedSessionRepository; +import org.springframework.session.security.SpringSessionBackedReactiveSessionRegistry; + +@Configuration(proxyBeanMethods = false) +@EnableWebFluxSecurity +public class SecurityConfig { + + @Bean + SecurityWebFilterChain filterChain(ServerHttpSecurity http) { + // @formatter:off + return http + .authorizeExchange(exchanges -> exchanges + .matchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() + .anyExchange().authenticated()) + .formLogin(Customizer.withDefaults()) + .sessionManagement((sessions) -> sessions + .concurrentSessions((concurrency) -> concurrency + .maximumSessions((authentication) -> { + if (authentication.getAuthorities().contains(new SimpleGrantedAuthority("ROLE_UNLIMITED_SESSIONS"))) { + return Mono.empty(); + } + return Mono.just(1); + }) + .maximumSessionsExceededHandler(new PreventLoginServerMaximumSessionsExceededHandler()) + ) + ) + .build(); + // @formatter:on + } + + @Bean + SpringSessionBackedReactiveSessionRegistry sessionRegistry( + ReactiveSessionRepository sessionRepository, + ReactiveFindByIndexNameSessionRepository indexedSessionRepository) { + return new SpringSessionBackedReactiveSessionRegistry<>(sessionRepository, indexedSessionRepository); + } + + @Bean + MapReactiveUserDetailsService reactiveUserDetailsService() { + UserDetails user = User.withDefaultPasswordEncoder() + .username("user") + .password("password") + .roles("USER") + .build(); + UserDetails unlimited = User.withDefaultPasswordEncoder() + .username("unlimited") + .password("password") + .roles("USER", "UNLIMITED_SESSIONS") + .build(); + return new MapReactiveUserDetailsService(user, unlimited); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SessionConfig.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SessionConfig.java new file mode 100644 index 000000000..637652ee2 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SessionConfig.java @@ -0,0 +1,26 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.springframework.context.annotation.Configuration; +import org.springframework.session.data.redis.config.annotation.web.server.EnableRedisIndexedWebSession; + +@Configuration(proxyBeanMethods = false) +@EnableRedisIndexedWebSession +public class SessionConfig { + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SpringSessionSampleBootReactiveMaxSessions.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SpringSessionSampleBootReactiveMaxSessions.java new file mode 100644 index 000000000..195d0e4e7 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/java/com/example/SpringSessionSampleBootReactiveMaxSessions.java @@ -0,0 +1,29 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class SpringSessionSampleBootReactiveMaxSessions { + + public static void main(String[] args) { + SpringApplication.run(SpringSessionSampleBootReactiveMaxSessions.class, args); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/resources/application.properties b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/resources/application.properties new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/resources/application.properties @@ -0,0 +1 @@ + diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/resources/templates/index.html b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/resources/templates/index.html new file mode 100644 index 000000000..816e88d84 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/main/resources/templates/index.html @@ -0,0 +1,16 @@ + + + Secured Content + + +

+

Secured Page

+

This page is secured using Spring Boot, Spring Session, and Spring Security.

+ + + + +
+
+ + diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/BasePage.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/BasePage.java new file mode 100644 index 000000000..775f823d8 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/BasePage.java @@ -0,0 +1,41 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.openqa.selenium.WebDriver; + +/** + * @author Eddú Meléndez + */ +public class BasePage { + + private WebDriver driver; + + public BasePage(WebDriver driver) { + this.driver = driver; + } + + public WebDriver getDriver() { + return this.driver; + } + + public static void get(WebDriver driver, String get) { + String baseUrl = "http://localhost"; + driver.get(baseUrl + get); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/HomePage.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/HomePage.java new file mode 100644 index 000000000..8ca42643b --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/HomePage.java @@ -0,0 +1,96 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import java.util.ArrayList; +import java.util.List; + +import org.openqa.selenium.SearchContext; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; + +import static org.assertj.core.api.Assertions.assertThat; + +public class HomePage { + + private WebDriver driver; + + @FindBy(css = "table tbody tr") + List trs; + + List attributes; + + public HomePage(WebDriver driver) { + this.driver = driver; + this.attributes = new ArrayList<>(); + } + + private static void get(WebDriver driver, int port, String get) { + String baseUrl = "http://localhost:" + port; + driver.get(baseUrl + get); + } + + public static LoginPage go(WebDriver driver, int port) { + get(driver, port, "/"); + return PageFactory.initElements(driver, LoginPage.class); + } + + public void assertAt() { + assertThat(this.driver.getTitle()).isEqualTo("Session Attributes"); + } + + public List attributes() { + List rows = new ArrayList<>(); + for (WebElement tr : this.trs) { + rows.add(new Attribute(tr)); + } + this.attributes.addAll(rows); + return this.attributes; + } + + public static class Attribute { + + @FindBy(xpath = ".//td[1]") + WebElement attributeName; + + @FindBy(xpath = ".//td[2]") + WebElement attributeValue; + + public Attribute(SearchContext context) { + PageFactory.initElements(new DefaultElementLocatorFactory(context), this); + } + + /** + * @return the attributeName + */ + public String getAttributeName() { + return this.attributeName.getText(); + } + + /** + * @return the attributeValue + */ + public String getAttributeValue() { + return this.attributeValue.getText(); + } + + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/LoginPage.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/LoginPage.java new file mode 100644 index 000000000..5fcfdd99f --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/LoginPage.java @@ -0,0 +1,66 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.openqa.selenium.SearchContext; +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.WebElement; +import org.openqa.selenium.support.FindBy; +import org.openqa.selenium.support.PageFactory; +import org.openqa.selenium.support.pagefactory.DefaultElementLocatorFactory; + +import static org.assertj.core.api.Assertions.assertThat; + +public class LoginPage extends BasePage { + + public LoginPage(WebDriver driver) { + super(driver); + } + + public void assertAt() { + assertThat(getDriver().getTitle()).isEqualTo("Please sign in"); + } + + public Form form() { + return new Form(getDriver()); + } + + public class Form { + + @FindBy(name = "username") + private WebElement username; + + @FindBy(name = "password") + private WebElement password; + + @FindBy(tagName = "button") + private WebElement button; + + public Form(SearchContext context) { + PageFactory.initElements(new DefaultElementLocatorFactory(context), this); + } + + public T login(Class page) { + this.username.sendKeys("user"); + this.password.sendKeys("password"); + this.button.click(); + return PageFactory.initElements(getDriver(), page); + } + + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/SpringSessionSampleBootReactiveMaxSessionsTests.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/SpringSessionSampleBootReactiveMaxSessionsTests.java new file mode 100644 index 000000000..c751ec74e --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/SpringSessionSampleBootReactiveMaxSessionsTests.java @@ -0,0 +1,132 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseCookie; +import org.springframework.test.web.reactive.server.WebTestClient; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.reactive.function.BodyInserters; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.security.test.web.reactive.server.SecurityMockServerConfigurers.csrf; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@AutoConfigureWebTestClient +@Import(TestcontainersConfig.class) +class SpringSessionSampleBootReactiveMaxSessionsTests { + + @Autowired + WebTestClient client; + + @Autowired + ReactiveRedisConnectionFactory redisConnectionFactory; + + @BeforeEach + void setup() { + this.redisConnectionFactory.getReactiveConnection().serverCommands().flushAll().block(); + } + + @Test + void loginWhenUserAndMaximumSessionsOf1ExceededThenSecondLoginProhibited() { + MultiValueMap data = new LinkedMultiValueMap<>(); + data.add("username", "user"); + data.add("password", "password"); + + ResponseCookie firstLoginCookie = loginReturningCookie(data); + login(data).expectStatus().isFound().expectHeader().location("/login?error"); + + performHello(firstLoginCookie).expectStatus().isOk(); + } + + @Test + void loginWhenUserAndMaximumSessionsOf1ExceededThenSecondAndThirdLoginProhibited() { + MultiValueMap data = new LinkedMultiValueMap<>(); + data.add("username", "user"); + data.add("password", "password"); + + ResponseCookie firstLoginCookie = loginReturningCookie(data); + ResponseCookie secondLoginCookie = login(data).expectStatus() + .isFound() + .expectHeader() + .location("/login?error") + .returnResult(Void.class) + .getResponseCookies() + .getFirst("SESSION"); + ResponseCookie thirdLoginCookie = login(data).expectStatus() + .isFound() + .expectHeader() + .location("/login?error") + .returnResult(Void.class) + .getResponseCookies() + .getFirst("SESSION"); + assertThat(secondLoginCookie).isNull(); + assertThat(thirdLoginCookie).isNull(); + + performHello(firstLoginCookie).expectStatus().isOk().expectBody(String.class).isEqualTo("Hello!"); + } + + @Test + void loginWhenAuthenticationHasUnlimitedSessionsThenLoginIsAlwaysAllowed() { + MultiValueMap data = new LinkedMultiValueMap<>(); + data.add("username", "unlimited"); + data.add("password", "password"); + + ResponseCookie firstLoginCookie = loginReturningCookie(data); + ResponseCookie secondLoginCookie = loginReturningCookie(data); + ResponseCookie thirdLoginCookie = loginReturningCookie(data); + ResponseCookie fourthLoginCookie = loginReturningCookie(data); + ResponseCookie fifthLoginCookie = loginReturningCookie(data); + + performHello(firstLoginCookie).expectStatus().isOk().expectBody(String.class).isEqualTo("Hello!"); + performHello(secondLoginCookie).expectStatus().isOk().expectBody(String.class).isEqualTo("Hello!"); + performHello(thirdLoginCookie).expectStatus().isOk().expectBody(String.class).isEqualTo("Hello!"); + performHello(fourthLoginCookie).expectStatus().isOk().expectBody(String.class).isEqualTo("Hello!"); + performHello(fifthLoginCookie).expectStatus().isOk().expectBody(String.class).isEqualTo("Hello!"); + } + + private WebTestClient.ResponseSpec performHello(ResponseCookie cookie) { + return this.client.get().uri("/hello").cookie(cookie.getName(), cookie.getValue()).exchange(); + } + + private ResponseCookie loginReturningCookie(MultiValueMap data) { + return login(data).expectCookie() + .exists("SESSION") + .returnResult(Void.class) + .getResponseCookies() + .getFirst("SESSION"); + } + + private WebTestClient.ResponseSpec login(MultiValueMap data) { + return this.client.mutateWith(csrf()) + .post() + .uri("/login") + .contentType(MediaType.MULTIPART_FORM_DATA) + .body(BodyInserters.fromFormData(data)) + .exchange(); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/TestApplication.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/TestApplication.java new file mode 100644 index 000000000..62ac4b3a0 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/TestApplication.java @@ -0,0 +1,31 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.test.context.TestConfiguration; + +@TestConfiguration(proxyBeanMethods = false) +public class TestApplication { + + public static void main(String[] args) { + SpringApplication.from(SpringSessionSampleBootReactiveMaxSessions::main) + .with(TestcontainersConfig.class) + .run(args); + } + +} diff --git a/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/TestcontainersConfig.java b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/TestcontainersConfig.java new file mode 100644 index 000000000..e91933f51 --- /dev/null +++ b/spring-session-samples/spring-session-sample-boot-reactive-max-sessions/src/test/java/com/example/TestcontainersConfig.java @@ -0,0 +1,35 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.example; + +import org.testcontainers.containers.GenericContainer; +import org.testcontainers.utility.DockerImageName; + +import org.springframework.boot.test.context.TestConfiguration; +import org.springframework.boot.testcontainers.service.connection.ServiceConnection; +import org.springframework.context.annotation.Bean; + +@TestConfiguration(proxyBeanMethods = false) +public class TestcontainersConfig { + + @Bean + @ServiceConnection(name = "redis") + GenericContainer redisContainer() { + return new GenericContainer<>(DockerImageName.parse("redis:6.2.6")).withExposedPorts(6379); + } + +} From 751323779253a8fc257b306ca5d4fb7c28d2a479 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Wed, 28 Feb 2024 14:55:35 -0300 Subject: [PATCH 194/579] Increase Max Memory for Gradle Tasks --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 8f16aac4b..2b02f3d6d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ -org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true version=3.3.0-SNAPSHOT From 012c641b5ce52ba1cfd6e19b0133f6ff0db7aa58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 03:34:27 +0000 Subject: [PATCH 195/579] Bump org.aspectj:aspectjweaver from 1.9.21.1 to 1.9.21.2 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21.1 to 1.9.21.2. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2f600907e..843b46456 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.1" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.2" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From 011d6560cd667000c83697bedb96d706edcdf05c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 03:17:49 +0000 Subject: [PATCH 196/579] Bump org.aspectj:aspectjweaver from 1.9.21.1 to 1.9.21.2 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21.1 to 1.9.21.2. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ddf2e09d1..5adc4ae71 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.1" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.2" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From 71f3fea3c8e40a3e28506fa8757c1bffd8689615 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 03:56:33 +0000 Subject: [PATCH 197/579] Bump io.projectreactor:reactor-bom from 2023.0.3 to 2023.0.4 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.3 to 2023.0.4. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.3...2023.0.4) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5adc4ae71..df97921a1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.3" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.4" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 66f0120abb4c1d347709e2cd735b7108f0930eb1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 03:56:23 +0000 Subject: [PATCH 198/579] Bump io.projectreactor:reactor-core from 3.4.35 to 3.4.36 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.35 to 3.4.36. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.35...v3.4.36) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index b8b605c85..81a41007c 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.35' + implementation 'io.projectreactor:reactor-core:3.4.36' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' From 0b293054ee09ebf38835cb5653cd29eaecdbafe1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 03:15:07 +0000 Subject: [PATCH 199/579] Bump io.projectreactor:reactor-core from 3.4.35 to 3.4.36 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.35 to 3.4.36. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.35...v3.4.36) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index b8b605c85..81a41007c 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.35' + implementation 'io.projectreactor:reactor-core:3.4.36' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' From 8f0da2178028501c4934ee1f46d366d1bf9e47ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Mar 2024 03:15:03 +0000 Subject: [PATCH 200/579] Bump io.projectreactor:reactor-bom from 2023.0.3 to 2023.0.4 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.3 to 2023.0.4. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.3...2023.0.4) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 843b46456..dc25ccdee 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.3" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.4" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 8ecec1ad7053170751c6fe4dab2777ee10127133 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Thu, 14 Mar 2024 09:34:18 -0300 Subject: [PATCH 201/579] Allow minor version updates for main branch --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 8653218f7..82b46174f 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -26,7 +26,7 @@ updates: - dependency-name: "org.springframework.*" update-types: [ "version-update:semver-major" ] - dependency-name: "*" - update-types: [ "version-update:semver-major", "version-update:semver-minor" ] + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" target-branch: "3.2.x" From f45307529ccd70a24aacea0eca33d1dd317f3b5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 12:34:40 +0000 Subject: [PATCH 202/579] Bump org.postgresql:postgresql from 42.6.1 to 42.7.2 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.6.1 to 42.7.2. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.6.1...REL42.7.2) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index dc25ccdee..c3abb0db8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -50,7 +50,7 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "org-mongodb" } -org-postgresql = "org.postgresql:postgresql:42.6.1" +org-postgresql = "org.postgresql:postgresql:42.7.2" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" From 78dd2063d5287aa05300f8d1a44251e18eae78a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 12:34:45 +0000 Subject: [PATCH 203/579] Bump org.mariadb.jdbc:mariadb-java-client from 3.1.4 to 3.3.3 Bumps [org.mariadb.jdbc:mariadb-java-client](https://github.com/mariadb-corporation/mariadb-connector-j) from 3.1.4 to 3.3.3. - [Release notes](https://github.com/mariadb-corporation/mariadb-connector-j/releases) - [Changelog](https://github.com/mariadb-corporation/mariadb-connector-j/blob/master/CHANGELOG.md) - [Commits](https://github.com/mariadb-corporation/mariadb-connector-j/compare/3.1.4...3.3.3) --- updated-dependencies: - dependency-name: org.mariadb.jdbc:mariadb-java-client dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c3abb0db8..972932923 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -45,7 +45,7 @@ org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" org-junit-junit-bom = "org.junit:junit-bom:5.8.2" -org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.1.4" +org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } From efab53751e9078a0e8e0b7114efcfc91c1af44cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 12:34:53 +0000 Subject: [PATCH 204/579] Bump org.postgresql:postgresql from 42.6.1 to 42.6.2 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.6.1 to 42.6.2. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.6.1...REL42.6.2) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index df97921a1..b30dcb7d4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -50,7 +50,7 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "org-mongodb" } -org-postgresql = "org.postgresql:postgresql:42.6.1" +org-postgresql = "org.postgresql:postgresql:42.6.2" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" From 239962e4d72561ab67692120522f8fcce304ab8f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 12:34:54 +0000 Subject: [PATCH 205/579] Bump ch-qos-logback from 1.4.14 to 1.5.3 Bumps `ch-qos-logback` from 1.4.14 to 1.5.3. Updates `ch.qos.logback:logback-classic` from 1.4.14 to 1.5.3 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.14...v_1.5.3) Updates `ch.qos.logback:logback-core` from 1.4.14 to 1.5.3 - [Commits](https://github.com/qos-ch/logback/compare/v_1.4.14...v_1.5.3) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 972932923..aecfdc573 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.4.14" +ch-qos-logback = "1.5.3" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 716d8902593635ca9b1fa68716a6b5a01e10ee3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 12:34:57 +0000 Subject: [PATCH 206/579] Bump com.zaxxer:HikariCP from 5.0.1 to 5.1.0 Bumps [com.zaxxer:HikariCP](https://github.com/brettwooldridge/HikariCP) from 5.0.1 to 5.1.0. - [Changelog](https://github.com/brettwooldridge/HikariCP/blob/dev/CHANGES) - [Commits](https://github.com/brettwooldridge/HikariCP/compare/HikariCP-5.0.1...HikariCP-5.1.0) --- updated-dependencies: - dependency-name: com.zaxxer:HikariCP dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index aecfdc573..e206ad5f0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.9.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" -com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" +com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.4" From 2f51fbc958d1067d73441b4f6fddc8ba02b43221 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 14 Mar 2024 12:35:01 +0000 Subject: [PATCH 207/579] Bump org.assertj:assertj-core from 3.21.0 to 3.25.3 Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.21.0 to 3.25.3. - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](https://github.com/assertj/assertj/compare/assertj-core-3.21.0...assertj-build-3.25.3) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 81a41007c..c44747929 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -82,7 +82,7 @@ dependencies { testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" testImplementation 'org.apache.commons:commons-io:1.3.2' - testImplementation 'org.assertj:assertj-core:3.21.0' + testImplementation 'org.assertj:assertj-core:3.25.3' testImplementation 'org.mockito:mockito-core:3.12.4' testImplementation 'org.mockito:mockito-junit-jupiter:3.12.4' testImplementation 'com.squareup.okhttp3:mockwebserver:3.14.9' diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e206ad5f0..93b3a471e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -41,7 +41,7 @@ org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version. org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.2" -org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" +org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" org-junit-junit-bom = "org.junit:junit-bom:5.8.2" From 4d9d19cdc54cbdcdb6f0e191812873c598cebde4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 03:21:23 +0000 Subject: [PATCH 208/579] Bump org.springframework:spring-framework-bom from 6.1.4 to 6.1.5 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.4 to 6.1.5. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.4...v6.1.5) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b30dcb7d4..0c760d8ca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.3" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.2" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.5" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From f53a75e7ae30b000efe4fcf03269b14bc749d58c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 03:45:54 +0000 Subject: [PATCH 209/579] Bump io.projectreactor:reactor-core from 3.4.36 to 3.6.4 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.36 to 3.6.4. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.36...v3.6.4) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index c44747929..ed00aedc4 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.36' + implementation 'io.projectreactor:reactor-core:3.6.4' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' From 42438f022f8c7fac6d719781f49dd680f5ab65f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 03:45:59 +0000 Subject: [PATCH 210/579] Bump io.lettuce:lettuce-core from 6.2.7.RELEASE to 6.3.2.RELEASE Bumps [io.lettuce:lettuce-core](https://github.com/lettuce-io/lettuce-core) from 6.2.7.RELEASE to 6.3.2.RELEASE. - [Release notes](https://github.com/lettuce-io/lettuce-core/releases) - [Changelog](https://github.com/lettuce-io/lettuce-core/blob/6.3.2.RELEASE/RELEASE-NOTES.md) - [Commits](https://github.com/lettuce-io/lettuce-core/compare/6.2.7.RELEASE...6.3.2.RELEASE) --- updated-dependencies: - dependency-name: io.lettuce:lettuce-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 93b3a471e..2cb13bf2f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,7 +25,7 @@ com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3. com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" -io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" +io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.4" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" From 33b4f1603a367938d339db193e4a873fe1279823 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 03:46:06 +0000 Subject: [PATCH 211/579] Bump org.springframework:spring-framework-bom from 6.1.4 to 6.1.5 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.4 to 6.1.5. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.4...v6.1.5) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2cb13bf2f..ceb20668f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-M1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-SNAPSHOT" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.4" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.5" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 7fb70dd2682729a51382b32393dd73bc56688f6f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 03:46:10 +0000 Subject: [PATCH 212/579] Bump nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect Bumps [nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect](https://github.com/ultraq/thymeleaf-layout-dialect) from 3.2.1 to 3.3.0. - [Release notes](https://github.com/ultraq/thymeleaf-layout-dialect/releases) - [Changelog](https://github.com/ultraq/thymeleaf-layout-dialect/blob/main/CHANGELOG.md) - [Commits](https://github.com/ultraq/thymeleaf-layout-dialect/compare/3.2.1...3.3.0) --- updated-dependencies: - dependency-name: nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ceb20668f..f06c12ea9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -34,7 +34,7 @@ jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jst jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" } mysql-mysql-connector-java = "mysql:mysql-connector-java:8.0.33" -nz-net-ultraq-thymeleaf-thymeleaf-layout-dialect = "nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:3.2.1" +nz-net-ultraq-thymeleaf-thymeleaf-layout-dialect = "nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:3.3.0" com-squareup-okhttp3-okhttp = "com.squareup.okhttp3:okhttp:3.14.9" org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org-apache-derby" } org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } From 3665ffdc3b3453f37d74b07e33f09427117fd538 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Mar 2024 03:46:13 +0000 Subject: [PATCH 213/579] Bump org.sonarsource.scanner.gradle:sonarqube-gradle-plugin Bumps [org.sonarsource.scanner.gradle:sonarqube-gradle-plugin](https://github.com/SonarSource/sonar-scanner-gradle) from 2.7.1 to 2.8.0.1969. - [Release notes](https://github.com/SonarSource/sonar-scanner-gradle/releases) - [Commits](https://github.com/SonarSource/sonar-scanner-gradle/compare/2.7.1...2.8.0.1969) --- updated-dependencies: - dependency-name: org.sonarsource.scanner.gradle:sonarqube-gradle-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index ed00aedc4..a5e2169e6 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -73,7 +73,7 @@ dependencies { implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.29.4' - implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.7.1' + implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From ed77b522843072e4421a2a6ea54b14b08a960744 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 11:20:42 +0000 Subject: [PATCH 214/579] Bump org.awaitility:awaitility from 4.2.0 to 4.2.1 Bumps [org.awaitility:awaitility](https://github.com/awaitility/awaitility) from 4.2.0 to 4.2.1. - [Changelog](https://github.com/awaitility/awaitility/blob/master/changelog.txt) - [Commits](https://github.com/awaitility/awaitility/compare/awaitility-4.2.0...awaitility-4.2.1) --- updated-dependencies: - dependency-name: org.awaitility:awaitility dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f06c12ea9..c9117426f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -63,7 +63,7 @@ org-springframework-spring-framework-bom = "org.springframework:spring-framework org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } -org-awaitility-awaitility = "org.awaitility:awaitility:4.2.0" +org-awaitility-awaitility = "org.awaitility:awaitility:4.2.1" io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.1" [plugins] From bee07fd1f1542ae1a1ad4eae220d8d138b4da825 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 12:35:24 +0000 Subject: [PATCH 215/579] Bump org.springframework.data:spring-data-bom from 2023.1.3 to 2023.1.4 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.3 to 2023.1.4. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.3...2023.1.4) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0c760d8ca..c1f9ad2bd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.3" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.4" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.5" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 37efd42a27dcdce04107dbac9a5683c6c12f2951 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 03:53:51 +0000 Subject: [PATCH 216/579] Bump io.github.gradle-nexus:publish-plugin from 1.1.0 to 1.3.0 Bumps [io.github.gradle-nexus:publish-plugin](https://github.com/gradle-nexus/publish-plugin) from 1.1.0 to 1.3.0. - [Release notes](https://github.com/gradle-nexus/publish-plugin/releases) - [Commits](https://github.com/gradle-nexus/publish-plugin/compare/v1.1.0...v1.3.0) --- updated-dependencies: - dependency-name: io.github.gradle-nexus:publish-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a5e2169e6..3e736d9ef 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -62,7 +62,7 @@ dependencies { implementation 'org.yaml:snakeyaml:1.30' implementation localGroovy() - implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' + implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' implementation 'io.projectreactor:reactor-core:3.6.4' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' From 764376cd110d907a48515cf208ea669eca28d1a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 03:53:54 +0000 Subject: [PATCH 217/579] Bump com.fasterxml.jackson:jackson-bom from 2.15.4 to 2.17.0 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.15.4 to 2.17.0. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.15.4...jackson-bom-2.17.0) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c9117426f..e3daf0881 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ org-springframework-boot = "3.2.3" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.4" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.0" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.4" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" From 6d8421e79f059b9db0f82d82a823a8d834b94e33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 03:53:59 +0000 Subject: [PATCH 218/579] Bump com.apollographql.apollo:apollo-runtime from 2.4.5 to 2.5.14 Bumps [com.apollographql.apollo:apollo-runtime](https://github.com/apollographql/apollo-android) from 2.4.5 to 2.5.14. - [Release notes](https://github.com/apollographql/apollo-android/releases) - [Changelog](https://github.com/apollographql/apollo-kotlin/blob/main/CHANGELOG.md) - [Commits](https://github.com/apollographql/apollo-android/compare/v2.4.5...v2.5.14) --- updated-dependencies: - dependency-name: com.apollographql.apollo:apollo-runtime dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 3e736d9ef..d528cfe51 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -65,7 +65,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' implementation 'io.projectreactor:reactor-core:3.6.4' - implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' + implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' From 1a46b3229ff79ce70911b74aab080b514f535706 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:58:11 +0000 Subject: [PATCH 219/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.2 to 6.2.3. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.2...6.2.3) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c1f9ad2bd..e500fa550 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.4" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.2" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.3" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.5" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 61daefa945a7f63f4fc9730d742aed3687c50182 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:58:30 +0000 Subject: [PATCH 220/579] Bump org.apache.logging.log4j:log4j-core from 2.17.2 to 2.23.1 Bumps org.apache.logging.log4j:log4j-core from 2.17.2 to 2.23.1. --- updated-dependencies: - dependency-name: org.apache.logging.log4j:log4j-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e3daf0881..01ea7d43a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -39,7 +39,7 @@ com-squareup-okhttp3-okhttp = "com.squareup.okhttp3:okhttp:3.14.9" org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org-apache-derby" } org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" -org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" +org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.23.1" org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.2" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" From 97b804b93c9fcef7bca9c235c208f20fd640a03d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:58:37 +0000 Subject: [PATCH 221/579] Bump org-apache-derby from 10.16.1.1 to 10.17.1.0 Bumps `org-apache-derby` from 10.16.1.1 to 10.17.1.0. Updates `org.apache.derby:derby` from 10.16.1.1 to 10.17.1.0 Updates `org.apache.derby:derbytools` from 10.16.1.1 to 10.17.1.0 --- updated-dependencies: - dependency-name: org.apache.derby:derby dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.apache.derby:derbytools dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 01ea7d43a..32dfa34ac 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] ch-qos-logback = "1.5.3" jakarta-websocket = "2.1.1" -org-apache-derby = "10.16.1.1" +org-apache-derby = "10.17.1.0" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.5.0" From b321bc78a0ddc78ba834fef6aac83f9d744e7845 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:58:41 +0000 Subject: [PATCH 222/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.15.4 to 2.17.0 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.15.4 to 2.17.0. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 32dfa34ac..1b03483f6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ org-springframework-boot = "3.2.3" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.0" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.4" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.0" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.3.6" From 397c437eaa2345151bcb8e1f3afff5180d8746e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:58:50 +0000 Subject: [PATCH 223/579] Bump net.sourceforge.htmlunit:htmlunit from 2.37.0 to 2.70.0 Bumps [net.sourceforge.htmlunit:htmlunit](https://github.com/HtmlUnit/htmlunit) from 2.37.0 to 2.70.0. - [Release notes](https://github.com/HtmlUnit/htmlunit/releases) - [Commits](https://github.com/HtmlUnit/htmlunit/compare/2.37.0...2.70.0) --- updated-dependencies: - dependency-name: net.sourceforge.htmlunit:htmlunit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index d528cfe51..8e3a979ba 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -70,7 +70,7 @@ dependencies { implementation 'com.github.spullara.mustache.java:compiler:0.9.11' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' - implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' + implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.29.4' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' From ce12512723e1cb6f7fde6cf060b76c7f06cf008a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:58:58 +0000 Subject: [PATCH 224/579] Bump org.mockito:mockito-bom from 5.5.0 to 5.11.0 Bumps [org.mockito:mockito-bom](https://github.com/mockito/mockito) from 5.5.0 to 5.11.0. - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.5.0...v5.11.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1b03483f6..8ac495ad3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,7 +4,7 @@ jakarta-websocket = "2.1.1" org-apache-derby = "10.17.1.0" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" -org-mockito = "5.5.0" +org-mockito = "5.11.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.12" From 67648b52b25d2de444b81044990fb7b3999baf79 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:59:06 +0000 Subject: [PATCH 225/579] Bump org.junit:junit-bom from 5.8.2 to 5.10.2 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.8.2 to 5.10.2. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.8.2...r5.10.2) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 8e3a979ba..ee88c9fa7 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -77,7 +77,7 @@ dependencies { implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin - testImplementation platform('org.junit:junit-bom:5.8.2') + testImplementation platform('org.junit:junit-bom:5.10.2') testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8ac495ad3..8fbc789ac 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.2" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" -org-junit-junit-bom = "org.junit:junit-bom:5.8.2" +org-junit-junit-bom = "org.junit:junit-bom:5.10.2" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } From a2a3ff8eb41ec22b78fbff3b4cead6faad28dc2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:59:30 +0000 Subject: [PATCH 226/579] Bump org.testcontainers:testcontainers-bom from 1.18.3 to 1.19.7 Bumps [org.testcontainers:testcontainers-bom](https://github.com/testcontainers/testcontainers-java) from 1.18.3 to 1.19.7. - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.18.3...1.19.7) --- updated-dependencies: - dependency-name: org.testcontainers:testcontainers-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 8fbc789ac..ef21ea443 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ org-mockito = "5.11.0" org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.12" -org-testcontainers = "1.18.3" +org-testcontainers = "1.19.7" org-springframework-boot = "3.2.3" [libraries] From ae70f760b5efcb1a7ae9a92c422d696cc10b4767 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:59:46 +0000 Subject: [PATCH 227/579] Bump org.postgresql:postgresql from 42.7.2 to 42.7.3 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.2 to 42.7.3. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.2...REL42.7.3) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ef21ea443..0a12022bf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -50,7 +50,7 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "org-mongodb" } -org-postgresql = "org.postgresql:postgresql:42.7.2" +org-postgresql = "org.postgresql:postgresql:42.7.3" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" From c93a58a8c7281892fa44f4fb3c37d91b5a62ef12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:59:10 +0000 Subject: [PATCH 228/579] Bump com.oracle.database.jdbc:ojdbc8 from 21.10.0.0 to 21.13.0.0 Bumps com.oracle.database.jdbc:ojdbc8 from 21.10.0.0 to 21.13.0.0. --- updated-dependencies: - dependency-name: com.oracle.database.jdbc:ojdbc8 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0a12022bf..9849b290e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,7 +22,7 @@ com-hazelcast = "com.hazelcast:hazelcast:5.3.6" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.9.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" -com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" +com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" From f6f802a60285c476638955333b035c028af37cca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:59:15 +0000 Subject: [PATCH 229/579] Bump com.maxmind.geoip2:geoip2 from 2.16.1 to 2.17.0 Bumps [com.maxmind.geoip2:geoip2](https://github.com/maxmind/GeoIP2-java) from 2.16.1 to 2.17.0. - [Release notes](https://github.com/maxmind/GeoIP2-java/releases) - [Changelog](https://github.com/maxmind/GeoIP2-java/blob/v2.17.0/CHANGELOG.md) - [Commits](https://github.com/maxmind/GeoIP2-java/compare/v2.16.1...v2.17.0) --- updated-dependencies: - dependency-name: com.maxmind.geoip2:geoip2 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9849b290e..7850dadd7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.3.6" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.9.0" -com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" +com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.17.0" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" From 21bb9f849fd61ca384e0a9ba50690da1aae82e02 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 19 Mar 2024 08:05:34 -0300 Subject: [PATCH 230/579] Revert "Bump org-apache-derby from 10.16.1.1 to 10.17.1.0" This reverts commit 97b804b93c9fcef7bca9c235c208f20fd640a03d. --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7850dadd7..eec48467c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] ch-qos-logback = "1.5.3" jakarta-websocket = "2.1.1" -org-apache-derby = "10.17.1.0" +org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.11.0" From de710cfc1b0ff669708ddeca7a0d0661816a2607 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Mar 2024 03:58:29 +0000 Subject: [PATCH 231/579] Bump io.spring.gradle:dependency-management-plugin Bumps [io.spring.gradle:dependency-management-plugin](https://github.com/spring-gradle-plugins/dependency-management-plugin) from 1.0.15.RELEASE to 1.1.4. - [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases) - [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.0.15.RELEASE...v1.1.4) --- updated-dependencies: - dependency-name: io.spring.gradle:dependency-management-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index ee88c9fa7..877fa6e89 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation localGroovy() implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' - implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' + implementation 'io.spring.gradle:dependency-management-plugin:1.1.4' implementation 'io.projectreactor:reactor-core:3.6.4' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' From 14bfa2af2a2fe65ce5fc726705da16cd2ecb45a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Mar 2024 03:54:09 +0000 Subject: [PATCH 232/579] Bump org-seleniumhq-selenium from 4.8.3 to 4.13.0 Bumps `org-seleniumhq-selenium` from 4.8.3 to 4.13.0. Updates `org.seleniumhq.selenium:htmlunit-driver` from 4.8.3 to 4.13.0 - [Release notes](https://github.com/SeleniumHQ/htmlunit-driver/releases) - [Commits](https://github.com/SeleniumHQ/htmlunit-driver/compare/htmlunit-driver-4.8.3...htmlunit-driver-4.13.0) Updates `org.seleniumhq.selenium:selenium-support` from 4.8.3 to 4.13.0 - [Release notes](https://github.com/SeleniumHQ/selenium/releases) - [Commits](https://github.com/SeleniumHQ/selenium/commits/selenium-4.13.0) --- updated-dependencies: - dependency-name: org.seleniumhq.selenium:htmlunit-driver dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.seleniumhq.selenium:selenium-support dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index eec48467c..446d844d1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -6,7 +6,7 @@ org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.11.0" org-mongodb = "4.11.1" -org-seleniumhq-selenium = "4.8.3" +org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.12" org-testcontainers = "1.19.7" org-springframework-boot = "3.2.3" From 63662d83841a8d67a7c4768ca38d88eaed83fad0 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 Mar 2024 13:20:09 +0000 Subject: [PATCH 233/579] Release 3.3.0-M3 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2b02f3d6d..54c3156ec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-SNAPSHOT +version=3.3.0-M3 From 234653ca32ad12465a06f5727e76374090340879 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 Mar 2024 13:20:10 +0000 Subject: [PATCH 234/579] Release 3.2.2 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 77cb1d2fd..f620e4cf9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.2-SNAPSHOT +version=3.2.2 From c91e6a579f63ab9e91656cd8eed8fe898d05ca18 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 Mar 2024 13:46:31 +0000 Subject: [PATCH 235/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index f620e4cf9..e87c8c2e5 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.2 +version=3.2.3-SNAPSHOT From 830d226d98153898dab5e62444904f7620705a26 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 19 Mar 2024 13:03:16 -0300 Subject: [PATCH 236/579] Revert "Release 3.3.0-M3" This reverts commit 63662d83841a8d67a7c4768ca38d88eaed83fad0. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 54c3156ec..2b02f3d6d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-M3 +version=3.3.0-SNAPSHOT From 2716a4c065999e8b2e77421ef49bf1fcfc8a2658 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 19 Mar 2024 13:03:29 -0300 Subject: [PATCH 237/579] Update to Spring Security 6.3.0-M3 Closes gh-2887 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 446d844d1..1601c4c6d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-M1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-SNAPSHOT" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M3" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.5" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 9055b8cc79a3edbc9ad76c7b7631b17f5ff8a493 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 Mar 2024 16:04:57 +0000 Subject: [PATCH 238/579] Release 3.3.0-M3 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2b02f3d6d..54c3156ec 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-SNAPSHOT +version=3.3.0-M3 From 588c5817a5a42350872f20b3805a706bd6371e6a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 Mar 2024 16:19:31 +0000 Subject: [PATCH 239/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 54c3156ec..2b02f3d6d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-M3 +version=3.3.0-SNAPSHOT From fe0e16bd2604ea1ba171575b990b5420d0ff6ce4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 03:45:36 +0000 Subject: [PATCH 240/579] Bump org-apache-derby from 10.16.1.1 to 10.17.1.0 Bumps `org-apache-derby` from 10.16.1.1 to 10.17.1.0. Updates `org.apache.derby:derby` from 10.16.1.1 to 10.17.1.0 Updates `org.apache.derby:derbytools` from 10.16.1.1 to 10.17.1.0 --- updated-dependencies: - dependency-name: org.apache.derby:derby dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.apache.derby:derbytools dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1601c4c6d..c5da40db5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] ch-qos-logback = "1.5.3" jakarta-websocket = "2.1.1" -org-apache-derby = "10.16.1.1" +org-apache-derby = "10.17.1.0" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.11.0" From b0e6f6f9ee8e7cdd7403fbb57abdd8aaace96f5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 03:45:49 +0000 Subject: [PATCH 241/579] Bump org.yaml:snakeyaml from 1.30 to 1.33 Bumps [org.yaml:snakeyaml](https://bitbucket.org/snakeyaml/snakeyaml) from 1.30 to 1.33. - [Commits](https://bitbucket.org/snakeyaml/snakeyaml/branches/compare/snakeyaml-1.33..snakeyaml-1.30) --- updated-dependencies: - dependency-name: org.yaml:snakeyaml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 877fa6e89..743d6ffb5 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -59,7 +59,7 @@ configurations { dependencies { implementation 'com.google.code.gson:gson:2.8.9' implementation 'net.sourceforge.saxon:saxon:9.1.0.8' - implementation 'org.yaml:snakeyaml:1.30' + implementation 'org.yaml:snakeyaml:1.33' implementation localGroovy() implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' From fc39c8befdde342b5d79bb1cb7f40d5adb5230bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 03:45:59 +0000 Subject: [PATCH 242/579] Bump com.google.code.gson:gson from 2.8.9 to 2.10.1 Bumps [com.google.code.gson:gson](https://github.com/google/gson) from 2.8.9 to 2.10.1. - [Release notes](https://github.com/google/gson/releases) - [Changelog](https://github.com/google/gson/blob/main/CHANGELOG.md) - [Commits](https://github.com/google/gson/compare/gson-parent-2.8.9...gson-parent-2.10.1) --- updated-dependencies: - dependency-name: com.google.code.gson:gson dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 743d6ffb5..4ab538fce 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -57,7 +57,7 @@ configurations { } dependencies { - implementation 'com.google.code.gson:gson:2.8.9' + implementation 'com.google.code.gson:gson:2.10.1' implementation 'net.sourceforge.saxon:saxon:9.1.0.8' implementation 'org.yaml:snakeyaml:1.33' implementation localGroovy() From 1afc57f2be82340864838fcdb7f43bd7565cc718 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 03:46:22 +0000 Subject: [PATCH 243/579] Bump com.github.ben-manes:gradle-versions-plugin from 0.41.0 to 0.51.0 Bumps [com.github.ben-manes:gradle-versions-plugin](https://github.com/ben-manes/gradle-versions-plugin) from 0.41.0 to 0.51.0. - [Release notes](https://github.com/ben-manes/gradle-versions-plugin/releases) - [Commits](https://github.com/ben-manes/gradle-versions-plugin/compare/v0.41.0...v0.51.0) --- updated-dependencies: - dependency-name: com.github.ben-manes:gradle-versions-plugin dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 4ab538fce..91d7e2989 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -66,7 +66,7 @@ dependencies { implementation 'io.spring.gradle:dependency-management-plugin:1.1.4' implementation 'io.projectreactor:reactor-core:3.6.4' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' - implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' + implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' From ac2866755cf5c22f76e4c1cacd29f7aa1bcedd42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Mar 2024 03:46:38 +0000 Subject: [PATCH 244/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.29.4 to 4.33.13. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.29.4...build-info-gradle-extractor-4.33.13) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 91d7e2989..052b39f6c 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -72,7 +72,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.29.4' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.13' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 87317335ad16deb90119e0aaa4cfe0909da350a1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 03:14:19 +0000 Subject: [PATCH 245/579] Bump io.spring.gradle:spring-security-release-plugin from 1.0.1 to 1.0.2 Bumps [io.spring.gradle:spring-security-release-plugin](https://github.com/spring-io/spring-security-release-tools) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/spring-io/spring-security-release-tools/releases) - [Commits](https://github.com/spring-io/spring-security-release-tools/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: io.spring.gradle:spring-security-release-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c5da40db5..ff664f67e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,6 +64,6 @@ org-springframework-boot-spring-boot-dependencies = { module = "org.springframew org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } org-awaitility-awaitility = "org.awaitility:awaitility:4.2.1" -io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.1" +io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.2" [plugins] From db541c6f2e515d88123047cb09f2666e818a4a05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Mar 2024 03:57:28 +0000 Subject: [PATCH 246/579] Bump io.spring.gradle:spring-security-release-plugin from 1.0.1 to 1.0.2 Bumps [io.spring.gradle:spring-security-release-plugin](https://github.com/spring-io/spring-security-release-tools) from 1.0.1 to 1.0.2. - [Release notes](https://github.com/spring-io/spring-security-release-tools/releases) - [Commits](https://github.com/spring-io/spring-security-release-tools/compare/v1.0.1...v1.0.2) --- updated-dependencies: - dependency-name: io.spring.gradle:spring-security-release-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e500fa550..76bc791f3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -63,6 +63,6 @@ org-springframework-spring-framework-bom = "org.springframework:spring-framework org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } -io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.1" +io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.2" [plugins] From a90a9764a9779567854f10127220c871008dc0f3 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Thu, 21 Mar 2024 08:11:24 -0300 Subject: [PATCH 247/579] Revert "Bump org-apache-derby from 10.16.1.1 to 10.17.1.0" This reverts commit fe0e16bd2604ea1ba171575b990b5420d0ff6ce4. --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ff664f67e..f2467af2c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] ch-qos-logback = "1.5.3" jakarta-websocket = "2.1.1" -org-apache-derby = "10.17.1.0" +org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.11.0" From 5d80aa762dcc18801800307eaacbbd3008ceb31d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 03:22:58 +0000 Subject: [PATCH 248/579] Bump org-springframework-boot from 3.2.3 to 3.2.4 Bumps `org-springframework-boot` from 3.2.3 to 3.2.4. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.3 to 3.2.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.3...v3.2.4) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.3 to 3.2.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.3...v3.2.4) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f2467af2c..6c0b41d88 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.12" org-testcontainers = "1.19.7" -org-springframework-boot = "3.2.3" +org-springframework-boot = "3.2.4" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 4283d1d73325400fe8ca7899f49b8f31c3eb4fc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 03:22:56 +0000 Subject: [PATCH 249/579] Bump org.aspectj:aspectjweaver from 1.9.21.2 to 1.9.22 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21.2 to 1.9.22. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6c0b41d88..473cf0ced 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.23.1" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.2" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From 95fb21e2558e96e5517d1b1a3a951be8d5ea740d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Mar 2024 03:28:40 +0000 Subject: [PATCH 250/579] Bump org.aspectj:aspectjweaver from 1.9.21.2 to 1.9.22 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.21.2 to 1.9.22. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 76bc791f3..caf865178 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.21.2" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From ddf34c76d183d514e8358ce516d31ff7dabd8690 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Mar 2024 04:07:17 +0000 Subject: [PATCH 251/579] Bump org-springframework-boot from 3.2.3 to 3.2.4 Bumps `org-springframework-boot` from 3.2.3 to 3.2.4. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.3 to 3.2.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.3...v3.2.4) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.3 to 3.2.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.3...v3.2.4) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index caf865178..52819974b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.1" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.12" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.3" +org-springframework-boot = "3.2.4" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 1e2fda2483643c5ed8bd071629fde88608fe57fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Mar 2024 03:18:28 +0000 Subject: [PATCH 252/579] Bump io.spring.ge.conventions from 0.0.15 to 0.0.16 Bumps [io.spring.ge.conventions](https://github.com/spring-io/gradle-enterprise-conventions) from 0.0.15 to 0.0.16. - [Release notes](https://github.com/spring-io/gradle-enterprise-conventions/releases) - [Commits](https://github.com/spring-io/gradle-enterprise-conventions/compare/v0.0.15...v0.0.16) --- updated-dependencies: - dependency-name: io.spring.ge.conventions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 7b5ccc356..71ed6fb18 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,7 +7,7 @@ pluginManagement { plugins { id "com.gradle.enterprise" version "3.16.2" - id "io.spring.ge.conventions" version "0.0.15" + id "io.spring.ge.conventions" version "0.0.16" } rootProject.name = 'spring-session-build' From 5543fb45bb1faa9d03ab6f9dfa5d710cd4b279a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 29 Mar 2024 03:36:55 +0000 Subject: [PATCH 253/579] Bump io.spring.ge.conventions from 0.0.15 to 0.0.16 Bumps [io.spring.ge.conventions](https://github.com/spring-io/gradle-enterprise-conventions) from 0.0.15 to 0.0.16. - [Release notes](https://github.com/spring-io/gradle-enterprise-conventions/releases) - [Commits](https://github.com/spring-io/gradle-enterprise-conventions/compare/v0.0.15...v0.0.16) --- updated-dependencies: - dependency-name: io.spring.ge.conventions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 7b5ccc356..71ed6fb18 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,7 +7,7 @@ pluginManagement { plugins { id "com.gradle.enterprise" version "3.16.2" - id "io.spring.ge.conventions" version "0.0.15" + id "io.spring.ge.conventions" version "0.0.16" } rootProject.name = 'spring-session-build' From 7c15b1fb4f08a3525e348c51e692572196d23694 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 03:29:57 +0000 Subject: [PATCH 254/579] Bump org-mongodb from 4.11.1 to 4.11.2 Bumps `org-mongodb` from 4.11.1 to 4.11.2. Updates `org.mongodb:mongodb-driver-core` from 4.11.1 to 4.11.2 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.1...r4.11.2) Updates `org.mongodb:mongodb-driver-reactivestreams` from 4.11.1 to 4.11.2 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.1...r4.11.2) Updates `org.mongodb:mongodb-driver-sync` from 4.11.1 to 4.11.2 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.1...r4.11.2) --- updated-dependencies: - dependency-name: org.mongodb:mongodb-driver-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-reactivestreams dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-sync dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 52819974b..2a773a9d1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.5.0" -org-mongodb = "4.11.1" +org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.12" org-testcontainers = "1.18.3" From fab2d42755ed63ab2b1e7ccc554e9359256317df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Apr 2024 03:43:39 +0000 Subject: [PATCH 255/579] Bump org-mongodb from 4.11.1 to 4.11.2 Bumps `org-mongodb` from 4.11.1 to 4.11.2. Updates `org.mongodb:mongodb-driver-core` from 4.11.1 to 4.11.2 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.1...r4.11.2) Updates `org.mongodb:mongodb-driver-reactivestreams` from 4.11.1 to 4.11.2 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.1...r4.11.2) Updates `org.mongodb:mongodb-driver-sync` from 4.11.1 to 4.11.2 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.1...r4.11.2) --- updated-dependencies: - dependency-name: org.mongodb:mongodb-driver-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-reactivestreams dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-sync dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 473cf0ced..cffa52c8e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.11.0" -org-mongodb = "4.11.1" +org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.12" org-testcontainers = "1.19.7" From a331931b3e94405ffab24ac331571aeb614cc34f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Apr 2024 03:36:21 +0000 Subject: [PATCH 256/579] Bump com.hazelcast:hazelcast from 5.3.6 to 5.3.7 Bumps [com.hazelcast:hazelcast](https://github.com/hazelcast/hazelcast) from 5.3.6 to 5.3.7. - [Release notes](https://github.com/hazelcast/hazelcast/releases) - [Commits](https://github.com/hazelcast/hazelcast/compare/v5.3.6...v5.3.7) --- updated-dependencies: - dependency-name: com.hazelcast:hazelcast dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2a773a9d1..b1e27a3e6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.4" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.4" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" -com-hazelcast = "com.hazelcast:hazelcast:5.3.6" +com-hazelcast = "com.hazelcast:hazelcast:5.3.7" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.9.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" From 545709edef23d02d924b46aa207751147e433a5a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Apr 2024 03:49:44 +0000 Subject: [PATCH 257/579] Bump com.hazelcast:hazelcast from 5.3.6 to 5.3.7 Bumps [com.hazelcast:hazelcast](https://github.com/hazelcast/hazelcast) from 5.3.6 to 5.3.7. - [Release notes](https://github.com/hazelcast/hazelcast/releases) - [Commits](https://github.com/hazelcast/hazelcast/compare/v5.3.6...v5.3.7) --- updated-dependencies: - dependency-name: com.hazelcast:hazelcast dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cffa52c8e..bcd1b5169 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.0" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.0" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" -com-hazelcast = "com.hazelcast:hazelcast:5.3.6" +com-hazelcast = "com.hazelcast:hazelcast:5.3.7" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.9.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.17.0" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" From 8f0400cd76cef6d335fa3dfdba34ba351235601d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 03:27:20 +0000 Subject: [PATCH 258/579] Bump io.projectreactor:reactor-bom from 2023.0.4 to 2023.0.5 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.4 to 2023.0.5. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.4...2023.0.5) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b1e27a3e6..e0592f6d6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.4" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.5" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 8ab130a00f7be4a6b48eaf1ee56c6fe8d290c86f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 03:46:55 +0000 Subject: [PATCH 259/579] Bump ch-qos-logback from 1.5.3 to 1.5.4 Bumps `ch-qos-logback` from 1.5.3 to 1.5.4. Updates `ch.qos.logback:logback-classic` from 1.5.3 to 1.5.4 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.3...v_1.5.4) Updates `ch.qos.logback:logback-core` from 1.5.3 to 1.5.4 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.3...v_1.5.4) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bcd1b5169..5b7cb9191 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.3" +ch-qos-logback = "1.5.4" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 016914526c27e8f3c8671a10cfe0f205df65c462 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 03:27:49 +0000 Subject: [PATCH 260/579] Bump io.projectreactor:reactor-core from 3.4.36 to 3.4.37 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.36 to 3.4.37. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.36...v3.4.37) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 81a41007c..12e180541 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.36' + implementation 'io.projectreactor:reactor-core:3.4.37' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' From e41455d63ff33ee21c65a355b1c97b34b5eaf283 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 03:47:18 +0000 Subject: [PATCH 261/579] Bump io.projectreactor:reactor-core from 3.6.4 to 3.6.5 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.4 to 3.6.5. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.4...v3.6.5) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 052b39f6c..ddba94e53 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.4' - implementation 'io.projectreactor:reactor-core:3.6.4' + implementation 'io.projectreactor:reactor-core:3.6.5' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.11' From d2f62e186333726fffffad2ee353fca58b9a52d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Apr 2024 03:47:47 +0000 Subject: [PATCH 262/579] Bump io.projectreactor:reactor-bom from 2023.0.4 to 2023.0.5 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.4 to 2023.0.5. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.4...2023.0.5) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5b7cb9191..ce8cc0c81 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.4" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.5" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 9dd55e8ae08eade4872e7eeb22fa09a8705f7c42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Apr 2024 03:09:53 +0000 Subject: [PATCH 263/579] Bump org.springframework:spring-framework-bom from 6.1.5 to 6.1.6 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.5 to 6.1.6. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.5...v6.1.6) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ce8cc0c81..94ff5297b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-M1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M3" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.5" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.6" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From a8cc5eba24507ec2565940957f98adce4a7a8638 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Apr 2024 03:54:34 +0000 Subject: [PATCH 264/579] Bump org.springframework:spring-framework-bom from 6.1.5 to 6.1.6 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.5 to 6.1.6. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.5...v6.1.6) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e0592f6d6..fa78be28f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.4" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.3" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.5" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.6" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From a70de8b90f0b57b779ffa7a25689fff071ab9e8b Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Fri, 12 Apr 2024 17:55:46 -0300 Subject: [PATCH 265/579] Upgrade to Spring Data Bom 2024.0.0-RC1 Closes gh-2929 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 94ff5297b..f90361b45 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-M1" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-RC1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M3" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.6" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From f62639ed340c76ff44f3b98df0e6539970541e48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 03:09:42 +0000 Subject: [PATCH 266/579] Bump org-slf4j from 2.0.12 to 2.0.13 Bumps `org-slf4j` from 2.0.12 to 2.0.13. Updates `org.slf4j:jcl-over-slf4j` from 2.0.12 to 2.0.13 Updates `org.slf4j:log4j-over-slf4j` from 2.0.12 to 2.0.13 Updates `org.slf4j:slf4j-api` from 2.0.12 to 2.0.13 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fa78be28f..d73c7ee9e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.12" +org-slf4j = "2.0.13" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.4" From 80113268feed1d669f0794490a7536f292ce7118 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 03:09:51 +0000 Subject: [PATCH 267/579] Bump org.springframework.data:spring-data-bom from 2023.1.4 to 2023.1.5 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.4 to 2023.1.5. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.4...2023.1.5) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d73c7ee9e..f0fafb625 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.4" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.5" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.3" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.6" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 581bbad2a4a85224c262697570d1f171b0b912fb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 19:13:29 +0000 Subject: [PATCH 268/579] Bump gradle/wrapper-validation-action from 2 to 3 Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 2 to 3. - [Release notes](https://github.com/gradle/wrapper-validation-action/releases) - [Commits](https://github.com/gradle/wrapper-validation-action/compare/v2...v3) --- updated-dependencies: - dependency-name: gradle/wrapper-validation-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 95cce8bab..b1889d479 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v2 + - uses: gradle/wrapper-validation-action@v3 From d902918cbeb3e7428e71e5378b2aa02001600c5e Mon Sep 17 00:00:00 2001 From: Marcus Hert da Coregio Date: Mon, 15 Apr 2024 16:26:50 -0300 Subject: [PATCH 269/579] Upgrade to MongoDB 5.0.1 Closes gh-2937 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f90361b45..92e7ec499 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.11.0" -org-mongodb = "4.11.2" +org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.12" org-testcontainers = "1.19.7" From 07eb882dcc6c1192445591016cdfbcffd2101f21 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 19:27:54 +0000 Subject: [PATCH 270/579] Bump org-slf4j from 2.0.12 to 2.0.13 Bumps `org-slf4j` from 2.0.12 to 2.0.13. Updates `org.slf4j:jcl-over-slf4j` from 2.0.12 to 2.0.13 Updates `org.slf4j:log4j-over-slf4j` from 2.0.12 to 2.0.13 Updates `org.slf4j:slf4j-api` from 2.0.12 to 2.0.13 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 92e7ec499..d7c9980ae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.11.0" org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" -org-slf4j = "2.0.12" +org-slf4j = "2.0.13" org-testcontainers = "1.19.7" org-springframework-boot = "3.2.4" From 82282e437842041ed09abfbcfa33552c9d64fbe2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 19:27:58 +0000 Subject: [PATCH 271/579] Bump ch-qos-logback from 1.5.4 to 1.5.5 Bumps `ch-qos-logback` from 1.5.4 to 1.5.5. Updates `ch.qos.logback:logback-classic` from 1.5.4 to 1.5.5 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.4...v_1.5.5) Updates `ch.qos.logback:logback-core` from 1.5.4 to 1.5.5 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.4...v_1.5.5) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d7c9980ae..1d593ffa8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.4" +ch-qos-logback = "1.5.5" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From b13b0ee829487f6c78c7dab113da4225b9e3af82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Apr 2024 19:44:07 +0000 Subject: [PATCH 272/579] Bump gradle/wrapper-validation-action from 2 to 3 Bumps [gradle/wrapper-validation-action](https://github.com/gradle/wrapper-validation-action) from 2 to 3. - [Release notes](https://github.com/gradle/wrapper-validation-action/releases) - [Commits](https://github.com/gradle/wrapper-validation-action/compare/v2...v3) --- updated-dependencies: - dependency-name: gradle/wrapper-validation-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index 95cce8bab..b1889d479 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: gradle/wrapper-validation-action@v2 + - uses: gradle/wrapper-validation-action@v3 From 4f7211b09f6ec8ed05df69df16bcb7f20626d247 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 03:10:03 +0000 Subject: [PATCH 273/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.3 to 6.2.4. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.3...6.2.4) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f0fafb625..375329b34 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.5" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.3" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.4" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.6" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 53aff951f8d7acbc93612aaab32c533cf3f24a53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 16 Apr 2024 03:12:22 +0000 Subject: [PATCH 274/579] Bump com.hazelcast:hazelcast from 5.3.7 to 5.4.0 Bumps [com.hazelcast:hazelcast](https://github.com/hazelcast/hazelcast) from 5.3.7 to 5.4.0. - [Release notes](https://github.com/hazelcast/hazelcast/releases) - [Commits](https://github.com/hazelcast/hazelcast/compare/v5.3.7...v5.4.0) --- updated-dependencies: - dependency-name: com.hazelcast:hazelcast dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1d593ffa8..f37437cfe 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.0" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.0" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" -com-hazelcast = "com.hazelcast:hazelcast:5.3.7" +com-hazelcast = "com.hazelcast:hazelcast:5.4.0" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.9.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.17.0" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" From be10b2c71e182a43cf6240234fd0a3e19590301c Mon Sep 17 00:00:00 2001 From: Marcus Hert da Coregio Date: Tue, 16 Apr 2024 09:05:09 -0300 Subject: [PATCH 275/579] Update to Spring Security 6.3.0-RC1 Closes gh-2943 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f37437cfe..578fb13aa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-RC1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-M3" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-RC1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.6" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 894a03ece60e70e0039ff5f4698b08284b0b6d51 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Apr 2024 13:20:41 +0000 Subject: [PATCH 276/579] Release 3.3.0-RC1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2b02f3d6d..f8a0fb457 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-SNAPSHOT +version=3.3.0-RC1 From 19e99689e05a2d314d6dd37ff8ef3542fe98635b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Apr 2024 13:34:55 +0000 Subject: [PATCH 277/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index f8a0fb457..2b02f3d6d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-RC1 +version=3.3.0-SNAPSHOT From 3495deab5419aaa282996d175f7434c72ba23e01 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Wed, 17 Apr 2024 20:52:54 -0300 Subject: [PATCH 278/579] Remove minor version dependency updates for main --- .github/dependabot.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 82b46174f..63381738e 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -23,10 +23,8 @@ updates: update-types: [ "version-update:semver-major" ] - dependency-name: "org.mockito:mockito-bom" update-types: [ "version-update:semver-major" ] - - dependency-name: "org.springframework.*" - update-types: [ "version-update:semver-major" ] - dependency-name: "*" - update-types: [ "version-update:semver-major" ] + update-types: [ "version-update:semver-major", "version-update:semver-minor" ] - package-ecosystem: "gradle" target-branch: "3.2.x" From 60a795cfc2c8a2122554062eab63473c4cd2c9f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Apr 2024 23:53:21 +0000 Subject: [PATCH 279/579] Bump io.spring.gradle:spring-security-release-plugin from 1.0.2 to 1.0.3 Bumps [io.spring.gradle:spring-security-release-plugin](https://github.com/spring-io/spring-security-release-tools) from 1.0.2 to 1.0.3. - [Release notes](https://github.com/spring-io/spring-security-release-tools/releases) - [Commits](https://github.com/spring-io/spring-security-release-tools/compare/v1.0.2...v1.0.3) --- updated-dependencies: - dependency-name: io.spring.gradle:spring-security-release-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 375329b34..82c2e4288 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -63,6 +63,6 @@ org-springframework-spring-framework-bom = "org.springframework:spring-framework org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } -io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.2" +io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.3" [plugins] From 11b694f5fcccfc773126feb8cbe2cb6ca63b2c77 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 03:07:26 +0000 Subject: [PATCH 280/579] Bump org-springframework-boot from 3.2.4 to 3.2.5 Bumps `org-springframework-boot` from 3.2.4 to 3.2.5. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.4 to 3.2.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.4...v3.2.5) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.4 to 3.2.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.4...v3.2.5) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 82c2e4288..54c731b4f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.13" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.4" +org-springframework-boot = "3.2.5" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 112239f6301e6271b4c82d775a81638c9b610fce Mon Sep 17 00:00:00 2001 From: oliviarla Date: Wed, 24 Apr 2024 15:41:12 +0900 Subject: [PATCH 281/579] Fix typos --- .../data/redis/RedisIndexedSessionRepositoryTests.java | 6 +++--- .../session/data/redis/RedisSessionRepositoryTests.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java index b734e62b2..3303eebbf 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java @@ -463,12 +463,12 @@ void onMessageCreated() { MapSession session = this.cached; byte[] pattern = "".getBytes(StandardCharsets.UTF_8); String channel = "spring:session:event:0:created:" + session.getId(); - JdkSerializationRedisSerializer defaultSerailizer = new JdkSerializationRedisSerializer(); - this.redisRepository.setDefaultSerializer(defaultSerailizer); + JdkSerializationRedisSerializer defaultSerializer = new JdkSerializationRedisSerializer(); + this.redisRepository.setDefaultSerializer(defaultSerializer); Map map = map(RedisSessionMapper.CREATION_TIME_KEY, Instant.EPOCH.toEpochMilli(), RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, 0, RedisSessionMapper.LAST_ACCESSED_TIME_KEY, System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(5)); - byte[] body = defaultSerailizer.serialize(map); + byte[] body = defaultSerializer.serialize(map); DefaultMessage message = new DefaultMessage(channel.getBytes(StandardCharsets.UTF_8), body); this.redisRepository.setApplicationEventPublisher(this.publisher); diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java index c6d025fe4..759c6a0c4 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisSessionRepositoryTests.java @@ -238,7 +238,7 @@ void save_SessionExistsAndNoChanges_ShouldSaveSession() { } @Test - void save_WithSaveModeOnSetAttribute_SholdSaveSession() { + void save_WithSaveModeOnSetAttribute_ShouldSaveSession() { given(this.sessionRedisOperations.hasKey(eq(TEST_SESSION_KEY))).willReturn(true); this.sessionRepository.setSaveMode(SaveMode.ON_SET_ATTRIBUTE); Map attributes = new HashMap<>(); From 3a4527528c2dfdc6172e71623ed3ff546da7fcbf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Apr 2024 03:09:20 +0000 Subject: [PATCH 282/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.13 to 4.33.15. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.13...build-info-gradle-extractor-4.33.15) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index ddba94e53..f1adf1143 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -72,7 +72,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.13' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.15' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 594d31cb84a85bbf91bea60fc70482c3613cabdc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Apr 2024 03:15:25 +0000 Subject: [PATCH 283/579] Bump org-springframework-boot from 3.2.4 to 3.2.5 Bumps `org-springframework-boot` from 3.2.4 to 3.2.5. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.4 to 3.2.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.4...v3.2.5) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.4 to 3.2.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.4...v3.2.5) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 578fb13aa..30b0b337d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.13" org-testcontainers = "1.19.7" -org-springframework-boot = "3.2.4" +org-springframework-boot = "3.2.5" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 4aace4714bfb54d03092394af5f8dba9ab141164 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Apr 2024 23:53:32 +0000 Subject: [PATCH 284/579] Bump io.spring.gradle:spring-security-release-plugin from 1.0.2 to 1.0.3 Bumps [io.spring.gradle:spring-security-release-plugin](https://github.com/spring-io/spring-security-release-tools) from 1.0.2 to 1.0.3. - [Release notes](https://github.com/spring-io/spring-security-release-tools/releases) - [Commits](https://github.com/spring-io/spring-security-release-tools/compare/v1.0.2...v1.0.3) --- updated-dependencies: - dependency-name: io.spring.gradle:spring-security-release-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 30b0b337d..00c1200e0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,6 +64,6 @@ org-springframework-boot-spring-boot-dependencies = { module = "org.springframew org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } org-awaitility-awaitility = "org.awaitility:awaitility:4.2.1" -io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.2" +io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.3" [plugins] From 9edbd3b34a5963bae68045861f94da2e46f039e7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Apr 2024 23:53:23 +0000 Subject: [PATCH 285/579] Bump ch-qos-logback from 1.5.5 to 1.5.6 Bumps `ch-qos-logback` from 1.5.5 to 1.5.6. Updates `ch.qos.logback:logback-classic` from 1.5.5 to 1.5.6 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.5...v_1.5.6) Updates `ch.qos.logback:logback-core` from 1.5.5 to 1.5.6 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.5...v_1.5.6) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 00c1200e0..1a04ec232 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.5" +ch-qos-logback = "1.5.6" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 1c52ac6276ababc6768c3084656ccd3b25dc2632 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Apr 2024 03:47:07 +0000 Subject: [PATCH 286/579] Bump com.github.spullara.mustache.java:compiler from 0.9.11 to 0.9.12 Bumps [com.github.spullara.mustache.java:compiler](https://github.com/spullara/mustache.java) from 0.9.11 to 0.9.12. - [Commits](https://github.com/spullara/mustache.java/compare/mustache.java-0.9.11...mustache.java-0.9.12) --- updated-dependencies: - dependency-name: com.github.spullara.mustache.java:compiler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 12e180541..89a050dc6 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation 'io.projectreactor:reactor-core:3.4.37' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' - implementation 'com.github.spullara.mustache.java:compiler:0.9.11' + implementation 'com.github.spullara.mustache.java:compiler:0.9.12' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' From 35f1e23126437efaec07712c90791f3f054cfdbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 03:11:56 +0000 Subject: [PATCH 287/579] Bump com.github.spullara.mustache.java:compiler from 0.9.11 to 0.9.13 Bumps [com.github.spullara.mustache.java:compiler](https://github.com/spullara/mustache.java) from 0.9.11 to 0.9.13. - [Commits](https://github.com/spullara/mustache.java/compare/mustache.java-0.9.11...mustache.java-0.9.13) --- updated-dependencies: - dependency-name: com.github.spullara.mustache.java:compiler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index f1adf1143..f0ab82397 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation 'io.projectreactor:reactor-core:3.6.5' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' - implementation 'com.github.spullara.mustache.java:compiler:0.9.11' + implementation 'com.github.spullara.mustache.java:compiler:0.9.13' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' From d520b8c962c065cd10b942707617dcfc47ce4004 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 May 2024 03:16:37 +0000 Subject: [PATCH 288/579] Bump com.github.spullara.mustache.java:compiler from 0.9.12 to 0.9.13 Bumps [com.github.spullara.mustache.java:compiler](https://github.com/spullara/mustache.java) from 0.9.12 to 0.9.13. - [Commits](https://github.com/spullara/mustache.java/compare/mustache.java-0.9.12...mustache.java-0.9.13) --- updated-dependencies: - dependency-name: com.github.spullara.mustache.java:compiler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 89a050dc6..c3562cc51 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation 'io.projectreactor:reactor-core:3.4.37' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' - implementation 'com.github.spullara.mustache.java:compiler:0.9.12' + implementation 'com.github.spullara.mustache.java:compiler:0.9.13' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' From 396f9b912db159c0d3820f9b7ebfadd91e655277 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 03:32:55 +0000 Subject: [PATCH 289/579] Bump com.fasterxml.jackson:jackson-bom from 2.17.0 to 2.17.1 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.17.0 to 2.17.1. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.17.0...jackson-bom-2.17.1) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1a04ec232..740a63ec5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ org-springframework-boot = "3.2.5" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.0" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.1" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.0" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" From 540a078a389f612d176a7079909e531de3f02726 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 May 2024 03:43:54 +0000 Subject: [PATCH 290/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.17.0 to 2.17.1 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.17.0 to 2.17.1. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 740a63ec5..e470e9043 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ org-springframework-boot = "3.2.5" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.1" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.0" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.1" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.4.0" From 4701220f48e71e2878b150b7931027f1b52c3c95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 May 2024 04:01:52 +0000 Subject: [PATCH 291/579] Bump org.testcontainers:testcontainers-bom from 1.19.7 to 1.19.8 Bumps [org.testcontainers:testcontainers-bom](https://github.com/testcontainers/testcontainers-java) from 1.19.7 to 1.19.8. - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.19.7...1.19.8) --- updated-dependencies: - dependency-name: org.testcontainers:testcontainers-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e470e9043..4e27891ca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ org-mockito = "5.11.0" org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.13" -org-testcontainers = "1.19.7" +org-testcontainers = "1.19.8" org-springframework-boot = "3.2.5" [libraries] From 2f1db9ecb5ca62305889100f8df060ed46a71462 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 03:17:06 +0000 Subject: [PATCH 292/579] Bump org.aspectj:aspectjweaver from 1.9.22 to 1.9.22.1 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.22 to 1.9.22.1. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 54c731b4f..2d1b2b57b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17.2" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From c235d9a313f4420ca4fdbaba45f56d7ccbb3e716 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 04:05:32 +0000 Subject: [PATCH 293/579] Bump org.aspectj:aspectjweaver from 1.9.22 to 1.9.22.1 Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.22 to 1.9.22.1. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4e27891ca..040639863 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ org-apache-derby-derby = { module = "org.apache.derby:derby", version.ref = "org org-apache-derby-derbytools = { module = "org.apache.derby:derbytools", version.ref = "org-apache-derby" } org-apache-httpcomponents-httpclient = "org.apache.httpcomponents:httpclient:4.5.14" org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.23.1" -org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22" +org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.2" From 44a6da43fa0f212d7d28947bf26a240460b7eaf8 Mon Sep 17 00:00:00 2001 From: Stephen Kinser Date: Mon, 8 Apr 2024 17:05:58 -0600 Subject: [PATCH 294/579] Redis reads session once not twice during cleanup I noticed that the session gets read twice at https://github.com/spring-projects/spring-session/blob/4dc81ec10d0e2870bb6f208df924b2ab933a835e/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java#L441-L442. This alters the code to only read it once. --- .../redis/ReactiveRedisIndexedSessionRepository.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java index 4d4c4c230..0b3bdbb06 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java @@ -385,13 +385,17 @@ private Mono getSession(String sessionId, boolean allowExpired) { @Override public Mono deleteById(String id) { + return internalDeleteById(id).then(); + } + + public Mono internalDeleteById(String id) { // @formatter:off return getSession(id, true) .flatMap((session) -> this.sessionRedisOperations.delete(getExpiredKey(session.getId())) .thenReturn(session)) .flatMap((session) -> this.sessionRedisOperations.delete(getSessionKey(session.getId())).thenReturn(session)) .flatMap((session) -> this.indexer.delete(session.getId()).thenReturn(session)) - .flatMap((session) -> this.expirationStore.remove(session.getId())); + .flatMap((session) -> this.expirationStore.remove(session.getId()).thenReturn(session)); // @formatter:on } @@ -438,8 +442,7 @@ private Mono onKeyDestroyedMessage(ReactiveSubscription.Message getSession(sessionId, true)) - .flatMap((session) -> this.deleteById(session.getId()).thenReturn(session)) + .flatMap(this::internalDeleteById) .map((session) -> { if (message.getChannel().equals(this.sessionDeletedChannel)) { return new SessionDeletedEvent(this, session); From 21260787d33f6c4e67dadbf86dda3ded085fb981 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Mon, 13 May 2024 10:46:47 -0300 Subject: [PATCH 295/579] Polish Closes gh-2917 --- .../ReactiveRedisIndexedSessionRepository.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java index 0b3bdbb06..d6ba106d7 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/ReactiveRedisIndexedSessionRepository.java @@ -385,10 +385,10 @@ private Mono getSession(String sessionId, boolean allowExpired) { @Override public Mono deleteById(String id) { - return internalDeleteById(id).then(); + return deleteAndReturn(id).then(); } - public Mono internalDeleteById(String id) { + private Mono deleteAndReturn(String id) { // @formatter:off return getSession(id, true) .flatMap((session) -> this.sessionRedisOperations.delete(getExpiredKey(session.getId())) @@ -438,11 +438,13 @@ private Mono onSessionCreatedChannelMessage(ReactiveSubscription.Message onKeyDestroyedMessage(ReactiveSubscription.Message message) { - return Mono.just(message.getMessage()).filter((key) -> key.startsWith(getExpiredKeyPrefix())).map((key) -> { - int sessionIdBeginIndex = key.lastIndexOf(":") + 1; - return key.substring(sessionIdBeginIndex); - }) - .flatMap(this::internalDeleteById) + // @formatter:off + return Mono.just(message.getMessage()) + .filter((key) -> key.startsWith(getExpiredKeyPrefix())).map((key) -> { + int sessionIdBeginIndex = key.lastIndexOf(":") + 1; + return key.substring(sessionIdBeginIndex); + }) + .flatMap(this::deleteAndReturn) .map((session) -> { if (message.getChannel().equals(this.sessionDeletedChannel)) { return new SessionDeletedEvent(this, session); @@ -451,6 +453,7 @@ private Mono onKeyDestroyedMessage(ReactiveSubscription.Message Date: Mon, 13 May 2024 17:33:26 +0000 Subject: [PATCH 296/579] Bump io.spring.ge.conventions from 0.0.16 to 0.0.17 Bumps [io.spring.ge.conventions](https://github.com/spring-io/gradle-enterprise-conventions) from 0.0.16 to 0.0.17. - [Release notes](https://github.com/spring-io/gradle-enterprise-conventions/releases) - [Commits](https://github.com/spring-io/gradle-enterprise-conventions/compare/v0.0.16...v0.0.17) --- updated-dependencies: - dependency-name: io.spring.ge.conventions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index e7e998275..348b12c4d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,7 +7,7 @@ pluginManagement { plugins { id "com.gradle.develocity" version "3.17.2" - id "io.spring.ge.conventions" version "0.0.16" + id "io.spring.ge.conventions" version "0.0.17" } rootProject.name = 'spring-session-build' From 4e55dd2749a3eacbf520f2632dcbe8d669885127 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 May 2024 17:33:26 +0000 Subject: [PATCH 297/579] Bump io.spring.ge.conventions from 0.0.16 to 0.0.17 Bumps [io.spring.ge.conventions](https://github.com/spring-io/gradle-enterprise-conventions) from 0.0.16 to 0.0.17. - [Release notes](https://github.com/spring-io/gradle-enterprise-conventions/releases) - [Commits](https://github.com/spring-io/gradle-enterprise-conventions/compare/v0.0.16...v0.0.17) --- updated-dependencies: - dependency-name: io.spring.ge.conventions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index e7e998275..348b12c4d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -7,7 +7,7 @@ pluginManagement { plugins { id "com.gradle.develocity" version "3.17.2" - id "io.spring.ge.conventions" version "0.0.16" + id "io.spring.ge.conventions" version "0.0.17" } rootProject.name = 'spring-session-build' From 424823782876e6448b99507f865ab3e88c008fce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 03:29:22 +0000 Subject: [PATCH 298/579] Bump com.gradle.develocity from 3.17.2 to 3.17.3 Bumps com.gradle.develocity from 3.17.2 to 3.17.3. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 348b12c4d..63a5af7b3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.2" + id "com.gradle.develocity" version "3.17.3" id "io.spring.ge.conventions" version "0.0.17" } From 653d073fc5b0b4129ccc0f6c662832301a63aba9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 May 2024 03:46:49 +0000 Subject: [PATCH 299/579] Bump com.gradle.develocity from 3.17.2 to 3.17.3 Bumps com.gradle.develocity from 3.17.2 to 3.17.3. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 348b12c4d..63a5af7b3 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.2" + id "com.gradle.develocity" version "3.17.3" id "io.spring.ge.conventions" version "0.0.17" } From 0da473cc2d969ad86765e86ea6783e9560d5d447 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 03:32:06 +0000 Subject: [PATCH 300/579] Bump io.projectreactor:reactor-bom from 2023.0.5 to 2023.0.6 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.5 to 2023.0.6. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.5...2023.0.6) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2d1b2b57b..f7ee74494 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.5" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.6" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 9a650e142540703f9382c46b3efcbbe2a249c52b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 03:55:28 +0000 Subject: [PATCH 301/579] Bump io.projectreactor:reactor-core from 3.6.5 to 3.6.6 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.5 to 3.6.6. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.5...v3.6.6) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index f0ab82397..e3fbf8d69 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.4' - implementation 'io.projectreactor:reactor-core:3.6.5' + implementation 'io.projectreactor:reactor-core:3.6.6' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' From 7b70d69241a0a06cb084f0fa85ca71ad83dfef05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 03:55:54 +0000 Subject: [PATCH 302/579] Bump io.projectreactor:reactor-bom from 2023.0.5 to 2023.0.6 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.5 to 2023.0.6. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.5...2023.0.6) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 040639863..ac193dedd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.5" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.6" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 9fb2407257d56367511b0e66a56cdcca5ad0a16f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 04:06:46 +0000 Subject: [PATCH 303/579] Bump io.spring.gradle:dependency-management-plugin from 1.1.4 to 1.1.5 Bumps [io.spring.gradle:dependency-management-plugin](https://github.com/spring-gradle-plugins/dependency-management-plugin) from 1.1.4 to 1.1.5. - [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases) - [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.1.4...v1.1.5) --- updated-dependencies: - dependency-name: io.spring.gradle:dependency-management-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index e3fbf8d69..fd48342b8 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation localGroovy() implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' - implementation 'io.spring.gradle:dependency-management-plugin:1.1.4' + implementation 'io.spring.gradle:dependency-management-plugin:1.1.5' implementation 'io.projectreactor:reactor-core:3.6.6' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' From 739ef4b410cc67c2162507b012d5dbb64640d4da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 03:16:11 +0000 Subject: [PATCH 304/579] Bump org.springframework:spring-framework-bom from 6.1.6 to 6.1.7 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.6 to 6.1.7. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.6...v6.1.7) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ac193dedd..75f75f80a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-RC1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-RC1" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.6" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.7" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From e82e140ac5b7bc07aad72940c527841ecebeafe5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 May 2024 03:20:18 +0000 Subject: [PATCH 305/579] Bump org.springframework:spring-framework-bom from 6.1.6 to 6.1.7 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.6 to 6.1.7. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.6...v6.1.7) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f7ee74494..5f21ba033 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.5" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.4" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.6" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.7" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 67fafec4ffad8dbd875edd52bad82b55a5375e71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 May 2024 03:32:25 +0000 Subject: [PATCH 306/579] Bump io.projectreactor:reactor-core from 3.4.37 to 3.4.38 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.37 to 3.4.38. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.37...v3.4.38) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index c3562cc51..a16771efc 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.37' + implementation 'io.projectreactor:reactor-core:3.4.38' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' From bf3339620b13728f3b7054a2bcff2a2ae5afe0de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 03:41:42 +0000 Subject: [PATCH 307/579] Bump com.gradle.develocity from 3.17.3 to 3.17.4 Bumps com.gradle.develocity from 3.17.3 to 3.17.4. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 63a5af7b3..dd6e562d5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.3" + id "com.gradle.develocity" version "3.17.4" id "io.spring.ge.conventions" version "0.0.17" } From 95d4006c985cd2f5358a85de77c1e5adc6445e12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 03:41:37 +0000 Subject: [PATCH 308/579] Bump org.springframework.data:spring-data-bom Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.0-RC1 to 2024.0.0. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.0-RC1...2024.0.0) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 75f75f80a..f102e0855 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0-RC1" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-RC1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.7" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 4ac6b735a6bad120d18190f8d3089bfffe53789b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 04:00:55 +0000 Subject: [PATCH 309/579] Bump org.springframework.data:spring-data-bom from 2023.1.5 to 2023.1.6 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.5 to 2023.1.6. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.5...2023.1.6) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5f21ba033..68fd3801e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.5" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.6" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.4" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.7" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 539a14d57938a10a76c2da7ca5e750016f9e5baf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 04:01:04 +0000 Subject: [PATCH 310/579] Bump com.gradle.develocity from 3.17.3 to 3.17.4 Bumps com.gradle.develocity from 3.17.3 to 3.17.4. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 63a5af7b3..dd6e562d5 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.3" + id "com.gradle.develocity" version "3.17.4" id "io.spring.ge.conventions" version "0.0.17" } From 92fff3ccd726ac662d8c6c6a47910deb2cf54be1 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 21 May 2024 09:30:35 -0300 Subject: [PATCH 311/579] Update to Spring Security 6.3.0 Closes gh-2995 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f102e0855..21053ef6c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0-RC1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.7" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 69638d469d065a28ef03a6eb06e66a821bbb6471 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 21 May 2024 13:21:16 +0000 Subject: [PATCH 312/579] Release 3.3.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2b02f3d6d..197b65a2a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0-SNAPSHOT +version=3.3.0 From bd16f107362a92db539b5d2fcf3ed2a1bc74ded5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 21 May 2024 13:21:26 +0000 Subject: [PATCH 313/579] Release 3.2.3 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e87c8c2e5..58fa1a19c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.3-SNAPSHOT +version=3.2.3 From 7d7831885bfc0b960f41796183066673a2fc29df Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 21 May 2024 13:47:59 +0000 Subject: [PATCH 314/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 197b65a2a..1a321a9c2 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.0 +version=3.3.1-SNAPSHOT From e80fedee5dba6ad7955150506804bcd1ea01f3d4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 21 May 2024 13:48:04 +0000 Subject: [PATCH 315/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 58fa1a19c..11c174c8f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.3 +version=3.2.4-SNAPSHOT From e30ccf3e90a3b9697f705f4b4c327f6381c4c146 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Wed, 22 May 2024 15:09:56 -0300 Subject: [PATCH 316/579] Add update-antora-ui-spring.yml workflow --- .github/workflows/update-antora-ui-spring.yml | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/update-antora-ui-spring.yml diff --git a/.github/workflows/update-antora-ui-spring.yml b/.github/workflows/update-antora-ui-spring.yml new file mode 100644 index 000000000..29abe3d23 --- /dev/null +++ b/.github/workflows/update-antora-ui-spring.yml @@ -0,0 +1,22 @@ +name: Update Antora UI Spring + +on: + schedule: + - cron: '0 10 * * *' # Once per day at 10am UTC + workflow_dispatch: + +permissions: + pull-requests: write + issues: write + contents: write + +jobs: + update-antora-ui-spring-docs-build: + runs-on: ubuntu-latest + name: Update on docs-build + steps: + - uses: spring-io/spring-doc-actions/update-antora-spring-ui@17ed79ea5fbd65813c69ef1062a024d4a37ff0ca + name: Update + with: + docs-branch: 'docs-build' + token: ${{ secrets.GITHUB_TOKEN }} From 833ca48e8bace83fd4506d775c9a693d2a8d72a2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 May 2024 03:39:03 +0000 Subject: [PATCH 317/579] Bump org.springframework:spring-framework-bom from 6.1.7 to 6.1.8 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.7 to 6.1.8. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.7...v6.1.8) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 68fd3801e..872d64a2b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.6" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.4" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.7" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.8" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 77f0b4372d85494bdef80a400dddbf7c6b329fd3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 03:24:42 +0000 Subject: [PATCH 318/579] Bump org-springframework-boot from 3.2.5 to 3.2.6 Bumps `org-springframework-boot` from 3.2.5 to 3.2.6. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.5 to 3.2.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.5...v3.2.6) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.5 to 3.2.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.5...v3.2.6) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 21053ef6c..01bfa94ff 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.13" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.5" +org-springframework-boot = "3.2.6" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 6631aaa94e91218c473420d216416a93f6509843 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 04:03:12 +0000 Subject: [PATCH 319/579] Bump org-springframework-boot from 3.2.5 to 3.2.6 Bumps `org-springframework-boot` from 3.2.5 to 3.2.6. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.5 to 3.2.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.5...v3.2.6) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.5 to 3.2.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.5...v3.2.6) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 872d64a2b..725659e84 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.13" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.5" +org-springframework-boot = "3.2.6" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 749153478cc9412cb31deb6c54c2968458efaf0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 14:33:11 +0000 Subject: [PATCH 320/579] Bump org.springframework:spring-framework-bom from 6.1.7 to 6.1.8 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.7 to 6.1.8. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.7...v6.1.8) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 01bfa94ff..f555838f2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.7" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.8" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 75caa86516406bbc89786e89950a9b0eaa89df29 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 May 2024 03:11:20 +0000 Subject: [PATCH 321/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.15 to 4.33.16. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.15...build-info-gradle-extractor-4.33.16) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index fd48342b8..97de9a65e 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -72,7 +72,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.15' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.16' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 8862df484b9707b8faeca261e6889f1554d4ead2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 03:15:41 +0000 Subject: [PATCH 322/579] Bump org.hsqldb:hsqldb from 2.7.2 to 2.7.3 Bumps org.hsqldb:hsqldb from 2.7.2 to 2.7.3. --- updated-dependencies: - dependency-name: org.hsqldb:hsqldb dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 725659e84..c445edb72 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,7 +43,7 @@ org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.17. org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.24.2" org-hamcrest = "org.hamcrest:hamcrest:2.2" -org-hsqldb = "org.hsqldb:hsqldb:2.7.2" +org-hsqldb = "org.hsqldb:hsqldb:2.7.3" org-junit-junit-bom = "org.junit:junit-bom:5.8.2" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.1.4" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } From f1c12369b7f3d0134e0b71e08e54021ed64e5602 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 03:50:47 +0000 Subject: [PATCH 323/579] Bump org.hsqldb:hsqldb from 2.7.2 to 2.7.3 Bumps org.hsqldb:hsqldb from 2.7.2 to 2.7.3. --- updated-dependencies: - dependency-name: org.hsqldb:hsqldb dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f555838f2..3a088f745 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,7 +43,7 @@ org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.23. org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" -org-hsqldb = "org.hsqldb:hsqldb:2.7.2" +org-hsqldb = "org.hsqldb:hsqldb:2.7.3" org-junit-junit-bom = "org.junit:junit-bom:5.10.2" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } From 439517920dbec8b045541755b6b4dce57721bfbe Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Mon, 3 Jun 2024 11:11:24 -0300 Subject: [PATCH 324/579] Prepare for 3.4 --- .github/dependabot.yml | 11 ++++------- git/hooks/prepare-forward-merge | 2 +- gradle.properties | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 63381738e..ba54d5c90 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,7 +9,6 @@ updates: - package-ecosystem: "gradle" target-branch: "main" - milestone: 154 directory: "/" schedule: interval: "daily" @@ -27,8 +26,7 @@ updates: update-types: [ "version-update:semver-major", "version-update:semver-minor" ] - package-ecosystem: "gradle" - target-branch: "3.2.x" - milestone: 152 + target-branch: "3.3.x" directory: "/" schedule: interval: "daily" @@ -46,8 +44,7 @@ updates: update-types: [ "version-update:semver-major", "version-update:semver-minor" ] - package-ecosystem: "gradle" - target-branch: "3.1.x" - milestone: 151 + target-branch: "3.2.x" directory: "/" schedule: interval: "daily" @@ -71,13 +68,13 @@ updates: schedule: interval: weekly - package-ecosystem: github-actions - target-branch: "3.2.x" + target-branch: "3.3.x" milestone: 152 directory: "/" schedule: interval: weekly - package-ecosystem: github-actions - target-branch: "3.1.x" + target-branch: "3.2.x" milestone: 151 directory: "/" schedule: diff --git a/git/hooks/prepare-forward-merge b/git/hooks/prepare-forward-merge index dfc548995..a7e35bffd 100755 --- a/git/hooks/prepare-forward-merge +++ b/git/hooks/prepare-forward-merge @@ -4,7 +4,7 @@ require 'net/http' require 'yaml' require 'logger' -$main_branch = "3.3.x" +$main_branch = "3.4.x" $log = Logger.new(STDOUT) $log.level = Logger::WARN diff --git a/gradle.properties b/gradle.properties index 1a321a9c2..c79736f87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.1-SNAPSHOT +version=3.4.0-SNAPSHOT From df620158623bb1ebc92bf340a99fda8ab45c3a31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 19:44:24 +0000 Subject: [PATCH 325/579] Bump spring-io/spring-doc-actions Bumps [spring-io/spring-doc-actions](https://github.com/spring-io/spring-doc-actions) from 17ed79ea5fbd65813c69ef1062a024d4a37ff0ca to 5a57bcc6a0da2a1474136cf29571b277850432bc. - [Commits](https://github.com/spring-io/spring-doc-actions/compare/17ed79ea5fbd65813c69ef1062a024d4a37ff0ca...5a57bcc6a0da2a1474136cf29571b277850432bc) --- updated-dependencies: - dependency-name: spring-io/spring-doc-actions dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- .github/workflows/update-antora-ui-spring.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-antora-ui-spring.yml b/.github/workflows/update-antora-ui-spring.yml index 29abe3d23..681ff6e95 100644 --- a/.github/workflows/update-antora-ui-spring.yml +++ b/.github/workflows/update-antora-ui-spring.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest name: Update on docs-build steps: - - uses: spring-io/spring-doc-actions/update-antora-spring-ui@17ed79ea5fbd65813c69ef1062a024d4a37ff0ca + - uses: spring-io/spring-doc-actions/update-antora-spring-ui@5a57bcc6a0da2a1474136cf29571b277850432bc name: Update with: docs-branch: 'docs-build' From bde31df0b5ec2e90b328fa22e7adeae0841a3529 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:11:59 +0000 Subject: [PATCH 326/579] Bump spring-io/spring-doc-actions Bumps [spring-io/spring-doc-actions](https://github.com/spring-io/spring-doc-actions) from 17ed79ea5fbd65813c69ef1062a024d4a37ff0ca to 5a57bcc6a0da2a1474136cf29571b277850432bc. - [Commits](https://github.com/spring-io/spring-doc-actions/compare/17ed79ea5fbd65813c69ef1062a024d4a37ff0ca...5a57bcc6a0da2a1474136cf29571b277850432bc) --- updated-dependencies: - dependency-name: spring-io/spring-doc-actions dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- .github/workflows/update-antora-ui-spring.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-antora-ui-spring.yml b/.github/workflows/update-antora-ui-spring.yml index 29abe3d23..681ff6e95 100644 --- a/.github/workflows/update-antora-ui-spring.yml +++ b/.github/workflows/update-antora-ui-spring.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest name: Update on docs-build steps: - - uses: spring-io/spring-doc-actions/update-antora-spring-ui@17ed79ea5fbd65813c69ef1062a024d4a37ff0ca + - uses: spring-io/spring-doc-actions/update-antora-spring-ui@5a57bcc6a0da2a1474136cf29571b277850432bc name: Update with: docs-branch: 'docs-build' From d5daa283f79646e08d70d35dfd45f004d7d8bf39 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 4 Jun 2024 15:47:54 -0300 Subject: [PATCH 327/579] Add instructions if object is not deserialized into the right type Closes gh-3009 --- .../modules/ROOT/pages/configuration/jdbc.adoc | 8 +++++++- .../src/main/java/sample/config/SessionConfig.java | 12 +++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/spring-session-docs/modules/ROOT/pages/configuration/jdbc.adoc b/spring-session-docs/modules/ROOT/pages/configuration/jdbc.adoc index b8420e0d7..07b72eac8 100644 --- a/spring-session-docs/modules/ROOT/pages/configuration/jdbc.adoc +++ b/spring-session-docs/modules/ROOT/pages/configuration/jdbc.adoc @@ -294,7 +294,7 @@ You can create a new one if you prefer. You might need to do the same for other objects that are persisted in the session. <4> Add the `JsonSerializer`/`JsonDeserializer` that we created into the `ConversionService`. -Now that we configured how Spring Session JDBC converts our attributes values into `byte[]`, we must customize the query that insert the session attributes. +Now that we configured how Spring Session JDBC converts our attributes values into `byte[]`, we must customize the query that inserts and updates the session attributes. The customization is necessary because Spring Session JDBC sets content as bytes in the SQL statement, however, `bytea` is not compatible with `jsonb`, therefore we need to encode the `bytea` value to text and then convert it to `jsonb`. [tabs] @@ -336,6 +336,12 @@ public class SessionConfig { And that's it, you should now be able to see the session attributes saved as JSON in the database. There is a https://github.com/spring-projects/spring-session/tree/main/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute[sample available] where you can see the whole implementation and run the tests. +[NOTE] +==== +If your https://docs.spring.io/spring-security/reference/servlet/authentication/passwords/user-details.html#page-title[`UserDetails` implementation] extends Spring Security's `org.springframework.security.core.userdetails.User` class, it is important that you register a custom deserializer for it. +Otherwise, Jackson will use the existing `org.springframework.security.jackson2.UserDeserializer` which won't result in the expected `UserDetails` implementation. See https://github.com/spring-projects/spring-session/issues/3009[gh-3009] for more details. +==== + [[specifying-datasource]] == Specifying an alternative `DataSource` diff --git a/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute/src/main/java/sample/config/SessionConfig.java b/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute/src/main/java/sample/config/SessionConfig.java index ee2f4e507..817d17a05 100644 --- a/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute/src/main/java/sample/config/SessionConfig.java +++ b/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute/src/main/java/sample/config/SessionConfig.java @@ -26,11 +26,21 @@ public class SessionConfig implements BeanClassLoaderAware { VALUES (?, ?, encode(?, 'escape')::jsonb) """; + private static final String UPDATE_SESSION_ATTRIBUTE_QUERY = """ + UPDATE %TABLE_NAME%_ATTRIBUTES + SET ATTRIBUTE_BYTES = encode(?, 'escape')::jsonb + WHERE SESSION_PRIMARY_ID = ? + AND ATTRIBUTE_NAME = ? + """; + private ClassLoader classLoader; @Bean SessionRepositoryCustomizer customizer() { - return (sessionRepository) -> sessionRepository.setCreateSessionAttributeQuery(CREATE_SESSION_ATTRIBUTE_QUERY); + return (sessionRepository) -> { + sessionRepository.setCreateSessionAttributeQuery(CREATE_SESSION_ATTRIBUTE_QUERY); + sessionRepository.setUpdateSessionAttributeQuery(UPDATE_SESSION_ATTRIBUTE_QUERY); + }; } @Bean("springSessionConversionService") From 77b3366922615c0dcc85e5351040cd8779256004 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 03:18:20 +0000 Subject: [PATCH 328/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.41 to 0.0.42. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.41...v0.0.42) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 97de9a65e..2bf0819ba 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From 695e82947848919aa8bf9c0598e6dd9e4aa47b88 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 03:18:36 +0000 Subject: [PATCH 329/579] Bump io.spring.javaformat:spring-javaformat-checkstyle Bumps [io.spring.javaformat:spring-javaformat-checkstyle](https://github.com/spring-io/spring-javaformat) from 0.0.41 to 0.0.42. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.41...v0.0.42) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3a088f745..b88cfadcb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.6" -io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" +io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" From 2ceb6cb891cb5d479e7fe4f6b21fa8e37bee9a7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 03:18:05 +0000 Subject: [PATCH 330/579] Bump io.spring.javaformat:spring-javaformat-checkstyle Bumps [io.spring.javaformat:spring-javaformat-checkstyle](https://github.com/spring-io/spring-javaformat) from 0.0.41 to 0.0.42. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.41...v0.0.42) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3a088f745..b88cfadcb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.6" -io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" +io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" From dadfae606c3d724e0d43b2cf1fae7249f88888a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 03:18:26 +0000 Subject: [PATCH 331/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.16 to 4.33.17. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.16...build-info-gradle-extractor-4.33.17) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 97de9a65e..de0801e5f 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -72,7 +72,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.16' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.17' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 44b083e14f5e5bb33ea85899677452ff52c4cfdc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 03:17:57 +0000 Subject: [PATCH 332/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.16 to 4.33.17. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.16...build-info-gradle-extractor-4.33.17) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 2bf0819ba..02c7b3092 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -72,7 +72,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.16' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.17' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From d3eae8b8ffd4ffe741139a8e861ff69b16d2e976 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 03:53:45 +0000 Subject: [PATCH 333/579] Bump io.spring.javaformat:spring-javaformat-checkstyle Bumps [io.spring.javaformat:spring-javaformat-checkstyle](https://github.com/spring-io/spring-javaformat) from 0.0.41 to 0.0.42. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.41...v0.0.42) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c445edb72..7fcf9a2e7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.6" -io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.41" +io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" From db0db00950423dac48016125070c2400888e0cde Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 03:53:54 +0000 Subject: [PATCH 334/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.41 to 0.0.42. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.41...v0.0.42) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a16771efc..a2f8e69be 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From c93215627f19d7d1669a1a8fd79858aa47f64c70 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 03:18:19 +0000 Subject: [PATCH 335/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.41 to 0.0.42. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.41...v0.0.42) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index de0801e5f..02c7b3092 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.41' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From c3cfa2e59dbea8171907f7e67f73a601d18ed018 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 03:20:05 +0000 Subject: [PATCH 336/579] Bump io.projectreactor:reactor-core from 3.6.6 to 3.6.7 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.6 to 3.6.7. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.6...v3.6.7) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 02c7b3092..a631053ce 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.5' - implementation 'io.projectreactor:reactor-core:3.6.6' + implementation 'io.projectreactor:reactor-core:3.6.7' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' From 180cf31791de1441fb85816c54dcbcee13387824 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 03:19:42 +0000 Subject: [PATCH 337/579] Bump io.projectreactor:reactor-bom from 2023.0.6 to 2023.0.7 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.6 to 2023.0.7. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.6...2023.0.7) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b88cfadcb..5340ee679 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.6" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.7" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 0dccd940c56b7e93ac4f2d87c30ebfdfaf2aa4ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 03:51:39 +0000 Subject: [PATCH 338/579] Bump io.projectreactor:reactor-bom from 2023.0.6 to 2023.0.7 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.6 to 2023.0.7. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.6...2023.0.7) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b88cfadcb..5340ee679 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.6" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.7" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From f2fe92e10617ed30ece2cf0c3cf12f3f775b62a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 03:51:53 +0000 Subject: [PATCH 339/579] Bump io.projectreactor:reactor-core from 3.6.6 to 3.6.7 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.6 to 3.6.7. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.6...v3.6.7) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 02c7b3092..a631053ce 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.5' - implementation 'io.projectreactor:reactor-core:3.6.6' + implementation 'io.projectreactor:reactor-core:3.6.7' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' From b8615c8ddca8c8e94d8e70db77d88f2adff94c47 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 03:57:07 +0000 Subject: [PATCH 340/579] Bump io.projectreactor:reactor-core from 3.4.38 to 3.4.39 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.38 to 3.4.39. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.38...v3.4.39) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a2f8e69be..c74d51018 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.38' + implementation 'io.projectreactor:reactor-core:3.4.39' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' From 333cc281ffaee04e7ad399545a9a1464631074a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 03:57:18 +0000 Subject: [PATCH 341/579] Bump io.projectreactor:reactor-bom from 2023.0.6 to 2023.0.7 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.6 to 2023.0.7. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.6...2023.0.7) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7fcf9a2e7..da2f069d5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.6" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.7" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 52eaba5ccabb64e8e0a747669e2b624479aad441 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 03:14:39 +0000 Subject: [PATCH 342/579] Bump com.gradle.develocity from 3.17.4 to 3.17.5 Bumps com.gradle.develocity from 3.17.4 to 3.17.5. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index dd6e562d5..a3df36eea 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.4" + id "com.gradle.develocity" version "3.17.5" id "io.spring.ge.conventions" version "0.0.17" } From 2d382094172259f694857eef7f7cc4ae32f7f695 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 03:27:09 +0000 Subject: [PATCH 343/579] Bump com.gradle.develocity from 3.17.4 to 3.17.5 Bumps com.gradle.develocity from 3.17.4 to 3.17.5. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index dd6e562d5..a3df36eea 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.4" + id "com.gradle.develocity" version "3.17.5" id "io.spring.ge.conventions" version "0.0.17" } From f6ca2c47194f21f966082d757cf20784f4278811 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 03:43:14 +0000 Subject: [PATCH 344/579] Bump com.gradle.develocity from 3.17.4 to 3.17.5 Bumps com.gradle.develocity from 3.17.4 to 3.17.5. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index dd6e562d5..a3df36eea 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.4" + id "com.gradle.develocity" version "3.17.5" id "io.spring.ge.conventions" version "0.0.17" } From 60efefd9487f193a23a2cb54afaf7ba97e5bd759 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Thu, 13 Jun 2024 15:43:04 -0300 Subject: [PATCH 345/579] Upgrade to Spring Framework 6.2.0-M4 Closes gh-3036 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5340ee679..91e1f97c5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.8" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 5dc161d75d420c7860054b63f8b848327fd23948 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Thu, 13 Jun 2024 16:29:03 -0300 Subject: [PATCH 346/579] Add Partitioned Cookie Support to DefaultCookieSerializer Closes gh-2787 --- .../session/web/http/DefaultCookieSerializer.java | 15 ++++++++++++++- .../web/http/DefaultCookieSerializerTests.java | 9 ++++++++- .../modules/ROOT/pages/whats-new.adoc | 5 ++--- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java b/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java index 7b350ac38..d357993bf 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2021 the original author or authors. + * Copyright 2014-2024 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. @@ -86,6 +86,8 @@ public class DefaultCookieSerializer implements CookieSerializer { private String sameSite = "Lax"; + private boolean partitioned; + /* * @see * org.springframework.session.web.http.CookieSerializer#readCookieValues(jakarta. @@ -153,6 +155,9 @@ public void writeCookieValue(CookieValue cookieValue) { if (this.sameSite != null) { sb.append("; SameSite=").append(this.sameSite); } + if (this.partitioned) { + sb.append("; Partitioned"); + } response.addHeader("Set-Cookie", sb.toString()); } @@ -444,4 +449,12 @@ public String getRememberMeRequestAttribute() { return this.rememberMeRequestAttribute; } + /** + * Allows defining whether the generated cookie carries the Partitioned attribute + * @since 3.4 + */ + public void setPartitioned(boolean partitioned) { + this.partitioned = partitioned; + } + } diff --git a/spring-session-core/src/test/java/org/springframework/session/web/http/DefaultCookieSerializerTests.java b/spring-session-core/src/test/java/org/springframework/session/web/http/DefaultCookieSerializerTests.java index 358b884c1..890fe53f8 100644 --- a/spring-session-core/src/test/java/org/springframework/session/web/http/DefaultCookieSerializerTests.java +++ b/spring-session-core/src/test/java/org/springframework/session/web/http/DefaultCookieSerializerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2014-2021 the original author or authors. + * Copyright 2014-2024 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. @@ -460,6 +460,13 @@ void writeCookieSetSameSiteNull() { assertThat(getCookie().getSameSite()).isNull(); } + @Test + void writeCookieWhenPartitionedTrueThenSetPartitionedAttribute() { + this.serializer.setPartitioned(true); + this.serializer.writeCookieValue(cookieValue(this.sessionId)); + assertThat(getCookie().isPartitioned()).isTrue(); + } + void setCookieName(String cookieName) { this.cookieName = cookieName; this.serializer.setCookieName(cookieName); diff --git a/spring-session-docs/modules/ROOT/pages/whats-new.adoc b/spring-session-docs/modules/ROOT/pages/whats-new.adoc index ea07f330e..5fd76654f 100644 --- a/spring-session-docs/modules/ROOT/pages/whats-new.adoc +++ b/spring-session-docs/modules/ROOT/pages/whats-new.adoc @@ -1,4 +1,3 @@ -= What's New += What's New in 3.4 -- xref:configuration/common.adoc#changing-how-session-ids-are-generated[docs] - https://github.com/spring-projects/spring-session/issues/11[gh-11] - Introduce `SessionIdGenerator` to allow custom session id generation -- xref:configuration/redis.adoc#configuring-redis-session-mapper[docs] - https://github.com/spring-projects/spring-session/issues/2021[gh-2021] - Allow safe deserialization of Redis sessions +- https://github.com/spring-projects/spring-session/issues/2787[gh-2787] - Add Partitioned Cookie Support to `DefaultCookieSerializer` From a2ff4eb4ad890ac336cc30f77f64937f228effd4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 03:15:20 +0000 Subject: [PATCH 347/579] Bump org.springframework:spring-framework-bom from 6.1.8 to 6.1.9 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.8 to 6.1.9. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.8...v6.1.9) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index da2f069d5..b86c0c161 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.6" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.4" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.8" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.9" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 057d43ade335adfcfcd05f30b9a6701a96e9c337 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jun 2024 03:53:56 +0000 Subject: [PATCH 348/579] Bump org.springframework:spring-framework-bom from 6.1.8 to 6.1.9 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.8 to 6.1.9. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.8...v6.1.9) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5340ee679..afd1d2b95 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.8" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.9" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 026535def5e6a7270e0cb813c83eeab9b9fcb9ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 03:18:35 +0000 Subject: [PATCH 349/579] Bump org.springframework.data:spring-data-bom from 2024.0.0 to 2024.0.1 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.0 to 2024.0.1. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.0...2024.0.1) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index afd1d2b95..04fe06635 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.9" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 632155aea7ab5ad82e0a6eeab882a63d970f2b87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jun 2024 04:02:14 +0000 Subject: [PATCH 350/579] Bump org.springframework.data:spring-data-bom from 2023.1.6 to 2023.1.7 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.6 to 2023.1.7. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.6...2023.1.7) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b86c0c161..50372aac8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.6" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.7" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.4" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.9" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 3bf34684d95c134299f3a06c5f19fdea13d75736 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Mon, 17 Jun 2024 14:51:45 -0300 Subject: [PATCH 351/579] Fix javadoc Issue gh-2787 --- .../session/web/http/DefaultCookieSerializer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java b/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java index d357993bf..afb9b231a 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/http/DefaultCookieSerializer.java @@ -450,7 +450,8 @@ public String getRememberMeRequestAttribute() { } /** - * Allows defining whether the generated cookie carries the Partitioned attribute + * Allows defining whether the generated cookie carries the Partitioned attribute. + * @param partitioned whether the generate cookie is partitioned * @since 3.4 */ public void setPartitioned(boolean partitioned) { From a7fe5e138c8b6ce9914b637dd79b2315243ab152 Mon Sep 17 00:00:00 2001 From: James Doyle Date: Mon, 17 Jun 2024 08:23:02 -0600 Subject: [PATCH 352/579] Make MongoSession public final Closes gh-2217 --- .../session/data/mongo/MongoSession.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java index d3bb813e8..8be09ea46 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoSession.java @@ -39,7 +39,7 @@ * @author Greg Turnquist * @since 1.2 */ -class MongoSession implements Session { +public final class MongoSession implements Session { /** * Mongo doesn't support {@literal dot} in field names. We replace it with a unicode @@ -74,20 +74,19 @@ class MongoSession implements Session { * @param sessionId the session id to use * @since 3.2 */ - MongoSession(String sessionId) { + public MongoSession(String sessionId) { this(sessionId, MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); } - MongoSession() { + public MongoSession() { this(MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); } - MongoSession(long maxInactiveIntervalInSeconds) { + public MongoSession(long maxInactiveIntervalInSeconds) { this(UuidSessionIdGenerator.getInstance().generate(), maxInactiveIntervalInSeconds); } - MongoSession(String id, long maxInactiveIntervalInSeconds) { - + public MongoSession(String id, long maxInactiveIntervalInSeconds) { this.id = id; this.originalSessionId = id; this.intervalSeconds = maxInactiveIntervalInSeconds; @@ -99,7 +98,7 @@ class MongoSession implements Session { * @param sessionIdGenerator the {@link SessionIdGenerator} to use * @since 3.2 */ - MongoSession(SessionIdGenerator sessionIdGenerator) { + public MongoSession(SessionIdGenerator sessionIdGenerator) { this(sessionIdGenerator.generate(), MapSession.DEFAULT_MAX_INACTIVE_INTERVAL_SECONDS); this.sessionIdGenerator = sessionIdGenerator; } From 4c7419cd84e6be2e52edd1e72ebab0168c3056d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 03:07:17 +0000 Subject: [PATCH 353/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.4 to 6.2.5. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.4...6.2.5) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 50372aac8..077cff944 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.7" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.4" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.5" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.9" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From eb14f98527d475941d90375fe18522c66df12d6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 03:55:03 +0000 Subject: [PATCH 354/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.17 to 4.33.20. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.17...build-info-gradle-extractor-4.33.20) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a631053ce..3530af4b1 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -72,7 +72,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.17' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.20' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 26a2b287667c111c534673d0026f0a0adfd73b4d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 Jun 2024 03:55:10 +0000 Subject: [PATCH 355/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.3.0 to 6.3.1. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.3.0...6.3.1) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 04fe06635..9ef0fe6ae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.9" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 5e8ee7d8e34fd884575f5c44bb28b21e4e345c57 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 18 Jun 2024 13:21:00 +0000 Subject: [PATCH 356/579] Release 3.2.4 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 11c174c8f..cd2ad1f38 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.4-SNAPSHOT +version=3.2.4 From 9a60012f208343c2dc0594d98fbdff199135072b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 18 Jun 2024 13:48:45 +0000 Subject: [PATCH 357/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index cd2ad1f38..732febb09 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.4 +version=3.2.5-SNAPSHOT From 6dd7ed1e01571942fd8ac2988a132549e0e7c6cd Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 18 Jun 2024 10:51:43 -0300 Subject: [PATCH 358/579] Include 3.3.x in release-scheduler.yml --- .github/workflows/release-scheduler.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release-scheduler.yml b/.github/workflows/release-scheduler.yml index 04f640d10..c4e6b5083 100644 --- a/.github/workflows/release-scheduler.yml +++ b/.github/workflows/release-scheduler.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: # List of active maintenance branches. - branch: [ main, 3.2.x, 3.1.x ] + branch: [ main, 3.3.x, 3.2.x ] runs-on: ubuntu-latest steps: - name: Checkout From 534513d2d62f7f11184f721ed45c2c16f2ba07be Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 18 Jun 2024 13:53:11 +0000 Subject: [PATCH 359/579] Release 3.3.1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1a321a9c2..ef7820db3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.1-SNAPSHOT +version=3.3.1 From f4c8a53ede67daa7fa9768b581417c868724171b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 18 Jun 2024 14:18:28 +0000 Subject: [PATCH 360/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ef7820db3..cacc95d54 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.1 +version=3.3.2-SNAPSHOT From 95de201eb2ee36a35f1933f8d49caa590da79bb5 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 18 Jun 2024 13:17:56 -0300 Subject: [PATCH 361/579] Include npm updates for docs-build --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index ba54d5c90..98cc815d0 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -84,3 +84,9 @@ updates: directory: "/" schedule: interval: weekly + + - package-ecosystem: npm + target-branch: docs-build + directory: / + schedule: + interval: weekly From 22828ebba480b4ce11d33039ea03da3b2baabef5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Jun 2024 03:29:08 +0000 Subject: [PATCH 362/579] Bump org.springframework:spring-framework-bom from 6.1.9 to 6.1.10 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.9 to 6.1.10. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.9...v6.1.10) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 077cff944..22afa2a2d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.7" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.5" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.9" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.10" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 6c5eeaa4daeeb566eb8fc92da9aac419ffa1f06d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Jun 2024 03:30:43 +0000 Subject: [PATCH 363/579] Bump org.springframework:spring-framework-bom from 6.1.9 to 6.1.10 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.9 to 6.1.10. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.9...v6.1.10) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9ef0fe6ae..5aa200568 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.1" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.9" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.10" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 7c7fe432e43d23c5336521aa9a20d31b82e54a42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 03:22:26 +0000 Subject: [PATCH 364/579] Bump org-springframework-boot from 3.2.6 to 3.2.7 Bumps `org-springframework-boot` from 3.2.6 to 3.2.7. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.6 to 3.2.7 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.6...v3.2.7) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.6 to 3.2.7 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.6...v3.2.7) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 22afa2a2d..f8067a0dc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.13" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.6" +org-springframework-boot = "3.2.7" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 3f907ca2f043ae5ab2d11113e0b0271cb19efecd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Jun 2024 03:45:00 +0000 Subject: [PATCH 365/579] Bump org-springframework-boot from 3.2.6 to 3.2.7 Bumps `org-springframework-boot` from 3.2.6 to 3.2.7. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.6 to 3.2.7 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.6...v3.2.7) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.6 to 3.2.7 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.6...v3.2.7) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5aa200568..d70535a64 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.13" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.6" +org-springframework-boot = "3.2.7" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From b9fb12f7da0b81f7ec70ce9b622f8c4fe97233d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 03:51:36 +0000 Subject: [PATCH 366/579] Bump org.skyscreamer:jsonassert from 1.5.1 to 1.5.2 Bumps [org.skyscreamer:jsonassert](https://github.com/skyscreamer/JSONassert) from 1.5.1 to 1.5.2. - [Release notes](https://github.com/skyscreamer/JSONassert/releases) - [Changelog](https://github.com/skyscreamer/JSONassert/blob/master/CHANGELOG.md) - [Commits](https://github.com/skyscreamer/JSONassert/compare/jsonassert-1.5.1...jsonassert-1.5.2) --- updated-dependencies: - dependency-name: org.skyscreamer:jsonassert dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d70535a64..3d867ac54 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,7 +53,7 @@ org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", org-postgresql = "org.postgresql:postgresql:42.7.3" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } -org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" +org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.2" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } From 9458a16026559ed93c06e33dcf99df077a82d020 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 19:59:17 +0000 Subject: [PATCH 367/579] Bump spring-io/spring-doc-actions Bumps [spring-io/spring-doc-actions](https://github.com/spring-io/spring-doc-actions) from 5a57bcc6a0da2a1474136cf29571b277850432bc to 852920ba3fb1f28b35a2f13201133bc00ef33677. - [Commits](https://github.com/spring-io/spring-doc-actions/compare/5a57bcc6a0da2a1474136cf29571b277850432bc...852920ba3fb1f28b35a2f13201133bc00ef33677) --- updated-dependencies: - dependency-name: spring-io/spring-doc-actions dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- .github/workflows/update-antora-ui-spring.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-antora-ui-spring.yml b/.github/workflows/update-antora-ui-spring.yml index 681ff6e95..1004d233e 100644 --- a/.github/workflows/update-antora-ui-spring.yml +++ b/.github/workflows/update-antora-ui-spring.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest name: Update on docs-build steps: - - uses: spring-io/spring-doc-actions/update-antora-spring-ui@5a57bcc6a0da2a1474136cf29571b277850432bc + - uses: spring-io/spring-doc-actions/update-antora-spring-ui@852920ba3fb1f28b35a2f13201133bc00ef33677 name: Update with: docs-branch: 'docs-build' From a8f8a547469507085c9918ecb7341484ecc2a2d6 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 25 Jun 2024 14:11:49 -0300 Subject: [PATCH 368/579] Update to Spring Security 6.4.0-SNAPSHOT --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 91e1f97c5..cba12ab19 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.0" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 8bcabe582230eaded5d911c9789ae08f6e93ff45 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 Jun 2024 17:12:35 +0000 Subject: [PATCH 369/579] Bump org.springframework.data:spring-data-bom from 2024.0.0 to 2024.0.1 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.0 to 2024.0.1. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.0...2024.0.1) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cba12ab19..65e3e368a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.0" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From cb92fe67c90b39528a2d09298e46ca19a37b4ff7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Jun 2024 04:04:18 +0000 Subject: [PATCH 370/579] Bump org.skyscreamer:jsonassert from 1.5.1 to 1.5.2 Bumps [org.skyscreamer:jsonassert](https://github.com/skyscreamer/JSONassert) from 1.5.1 to 1.5.2. - [Release notes](https://github.com/skyscreamer/JSONassert/releases) - [Changelog](https://github.com/skyscreamer/JSONassert/blob/master/CHANGELOG.md) - [Commits](https://github.com/skyscreamer/JSONassert/compare/jsonassert-1.5.1...jsonassert-1.5.2) --- updated-dependencies: - dependency-name: org.skyscreamer:jsonassert dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 65e3e368a..44cd0b59e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,7 +53,7 @@ org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", org-postgresql = "org.postgresql:postgresql:42.7.3" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } -org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" +org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.2" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } From d38f215b1980099a0d4a94f2be9ba15adb0a5cd8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 03:22:55 +0000 Subject: [PATCH 371/579] Bump org.junit:junit-bom from 5.10.2 to 5.10.3 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 3530af4b1..516f637dc 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -77,7 +77,7 @@ dependencies { implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin - testImplementation platform('org.junit:junit-bom:5.10.2') + testImplementation platform('org.junit:junit-bom:5.10.3') testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3d867ac54..9e5ecb77f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.3" -org-junit-junit-bom = "org.junit:junit-bom:5.10.2" +org-junit-junit-bom = "org.junit:junit-bom:5.10.3" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } From c41370571dff7fdd0da24b4b75cd1c075912a8bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 03:24:42 +0000 Subject: [PATCH 372/579] Bump org.junit:junit-bom from 5.10.2 to 5.10.3 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a631053ce..c5f191acc 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -77,7 +77,7 @@ dependencies { implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin - testImplementation platform('org.junit:junit-bom:5.10.2') + testImplementation platform('org.junit:junit-bom:5.10.3') testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 44cd0b59e..d96afb09a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.3" -org-junit-junit-bom = "org.junit:junit-bom:5.10.2" +org-junit-junit-bom = "org.junit:junit-bom:5.10.3" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } From fbdd6d3a7d30802a45753a5de5c8d76a0ba1471c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 17:04:13 +0000 Subject: [PATCH 373/579] Bump org-springframework-boot from 3.2.6 to 3.2.7 Bumps `org-springframework-boot` from 3.2.6 to 3.2.7. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.6 to 3.2.7 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.6...v3.2.7) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.6 to 3.2.7 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.6...v3.2.7) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d96afb09a..b8f6ff0d7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.13" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.6" +org-springframework-boot = "3.2.7" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From e64fa10f849a8809318fdc997e85734c256d0a1d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:36:52 +0000 Subject: [PATCH 374/579] Bump org.skyscreamer:jsonassert from 1.5.2 to 1.5.3 Bumps [org.skyscreamer:jsonassert](https://github.com/skyscreamer/JSONassert) from 1.5.2 to 1.5.3. - [Release notes](https://github.com/skyscreamer/JSONassert/releases) - [Changelog](https://github.com/skyscreamer/JSONassert/blob/master/CHANGELOG.md) - [Commits](https://github.com/skyscreamer/JSONassert/compare/jsonassert-1.5.2...jsonassert-1.5.3) --- updated-dependencies: - dependency-name: org.skyscreamer:jsonassert dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9e5ecb77f..1151d26bd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,7 +53,7 @@ org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", org-postgresql = "org.postgresql:postgresql:42.7.3" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } -org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.2" +org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } From 9c5299cdc7bde849e1b5956d17176d3f6dd9e042 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:37:42 +0000 Subject: [PATCH 375/579] Bump org.skyscreamer:jsonassert from 1.5.2 to 1.5.3 Bumps [org.skyscreamer:jsonassert](https://github.com/skyscreamer/JSONassert) from 1.5.2 to 1.5.3. - [Release notes](https://github.com/skyscreamer/JSONassert/releases) - [Changelog](https://github.com/skyscreamer/JSONassert/blob/master/CHANGELOG.md) - [Commits](https://github.com/skyscreamer/JSONassert/compare/jsonassert-1.5.2...jsonassert-1.5.3) --- updated-dependencies: - dependency-name: org.skyscreamer:jsonassert dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b8f6ff0d7..249d5a3c9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,7 +53,7 @@ org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", org-postgresql = "org.postgresql:postgresql:42.7.3" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } -org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.2" +org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } From d2508868b5a9314b21c4e0d514d7a7c70627b64e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Jul 2024 03:56:09 +0000 Subject: [PATCH 376/579] Bump org.skyscreamer:jsonassert from 1.5.1 to 1.5.3 Bumps [org.skyscreamer:jsonassert](https://github.com/skyscreamer/JSONassert) from 1.5.1 to 1.5.3. - [Release notes](https://github.com/skyscreamer/JSONassert/releases) - [Changelog](https://github.com/skyscreamer/JSONassert/blob/master/CHANGELOG.md) - [Commits](https://github.com/skyscreamer/JSONassert/compare/jsonassert-1.5.1...jsonassert-1.5.3) --- updated-dependencies: - dependency-name: org.skyscreamer:jsonassert dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f8067a0dc..33ab3e823 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,7 +53,7 @@ org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", org-postgresql = "org.postgresql:postgresql:42.6.2" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } -org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.1" +org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } From 96c4b4cfebb7b780a0229a9002dd224e481fed4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 17:04:24 +0000 Subject: [PATCH 377/579] Bump spring-io/spring-doc-actions Bumps [spring-io/spring-doc-actions](https://github.com/spring-io/spring-doc-actions) from 5a57bcc6a0da2a1474136cf29571b277850432bc to 852920ba3fb1f28b35a2f13201133bc00ef33677. - [Commits](https://github.com/spring-io/spring-doc-actions/compare/5a57bcc6a0da2a1474136cf29571b277850432bc...852920ba3fb1f28b35a2f13201133bc00ef33677) --- updated-dependencies: - dependency-name: spring-io/spring-doc-actions dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- .github/workflows/update-antora-ui-spring.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-antora-ui-spring.yml b/.github/workflows/update-antora-ui-spring.yml index 681ff6e95..1004d233e 100644 --- a/.github/workflows/update-antora-ui-spring.yml +++ b/.github/workflows/update-antora-ui-spring.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest name: Update on docs-build steps: - - uses: spring-io/spring-doc-actions/update-antora-spring-ui@5a57bcc6a0da2a1474136cf29571b277850432bc + - uses: spring-io/spring-doc-actions/update-antora-spring-ui@852920ba3fb1f28b35a2f13201133bc00ef33677 name: Update with: docs-branch: 'docs-build' From 5d6540b18ce91172527a50aa7326608756e0754b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 Jun 2024 17:04:23 +0000 Subject: [PATCH 378/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.17 to 4.33.20. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.17...build-info-gradle-extractor-4.33.20) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index c5f191acc..516f637dc 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -72,7 +72,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.17' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.20' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 7f6d09eab10a1043b92c482079cef4815118638f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 03:16:08 +0000 Subject: [PATCH 379/579] Bump com.github.spullara.mustache.java:compiler from 0.9.13 to 0.9.14 Bumps [com.github.spullara.mustache.java:compiler](https://github.com/spullara/mustache.java) from 0.9.13 to 0.9.14. - [Commits](https://github.com/spullara/mustache.java/compare/mustache.java-0.9.13...mustache.java-0.9.14) --- updated-dependencies: - dependency-name: com.github.spullara.mustache.java:compiler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index c74d51018..443b6ec04 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation 'io.projectreactor:reactor-core:3.4.39' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' - implementation 'com.github.spullara.mustache.java:compiler:0.9.13' + implementation 'com.github.spullara.mustache.java:compiler:0.9.14' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' From 7356a9ad1c9e97b5312eb029a85903a0043dc0f0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 03:37:05 +0000 Subject: [PATCH 380/579] Bump com.fasterxml.jackson:jackson-bom from 2.17.1 to 2.17.2 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.17.1 to 2.17.2. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.17.1...jackson-bom-2.17.2) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 249d5a3c9..f44a4a4dd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ org-springframework-boot = "3.2.7" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.1" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.2" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.1" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" From e4945d2046f6d2fc4ef56cebd389fccae9d2fb1e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 03:37:17 +0000 Subject: [PATCH 381/579] Bump com.github.spullara.mustache.java:compiler from 0.9.13 to 0.9.14 Bumps [com.github.spullara.mustache.java:compiler](https://github.com/spullara/mustache.java) from 0.9.13 to 0.9.14. - [Commits](https://github.com/spullara/mustache.java/compare/mustache.java-0.9.13...mustache.java-0.9.14) --- updated-dependencies: - dependency-name: com.github.spullara.mustache.java:compiler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 516f637dc..31515b4a0 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation 'io.projectreactor:reactor-core:3.6.7' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' - implementation 'com.github.spullara.mustache.java:compiler:0.9.13' + implementation 'com.github.spullara.mustache.java:compiler:0.9.14' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' From 0f44f59b82144690fd7e9b4266ffdb5b5a04ec7c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 03:48:02 +0000 Subject: [PATCH 382/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.17.1 to 2.17.2 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.17.1 to 2.17.2. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f44a4a4dd..24e4eb744 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ org-springframework-boot = "3.2.7" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.2" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.1" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.2" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.4.0" From 9ab512e32cdc3245b34e3d1cc19fc8bc22104c1c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 03:48:57 +0000 Subject: [PATCH 383/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.17.1 to 2.17.2 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.17.1 to 2.17.2. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1151d26bd..073321454 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ org-springframework-boot = "3.2.7" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.1" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.1" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.2" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.4.0" From 1390e7888881efca50417bd1ab919bab8ce144b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Jul 2024 03:59:45 +0000 Subject: [PATCH 384/579] Bump com.fasterxml.jackson:jackson-bom from 2.17.1 to 2.17.2 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.17.1 to 2.17.2. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.17.1...jackson-bom-2.17.2) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 073321454..60bb73a0f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ org-springframework-boot = "3.2.7" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.1" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.2" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.2" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" From 16f9c4c7e06d3eb6d533ddcb0edb32221aae6005 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jul 2024 03:45:41 +0000 Subject: [PATCH 385/579] Bump io.spring.gradle:dependency-management-plugin from 1.1.5 to 1.1.6 Bumps [io.spring.gradle:dependency-management-plugin](https://github.com/spring-gradle-plugins/dependency-management-plugin) from 1.1.5 to 1.1.6. - [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases) - [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.1.5...v1.1.6) --- updated-dependencies: - dependency-name: io.spring.gradle:dependency-management-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 31515b4a0..6d9066915 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation localGroovy() implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' - implementation 'io.spring.gradle:dependency-management-plugin:1.1.5' + implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' implementation 'io.projectreactor:reactor-core:3.6.7' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' From 7ac8fe7d7b80c6365b7c6bcd11565364f870f359 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:06:55 +0000 Subject: [PATCH 386/579] Bump io.projectreactor:reactor-core from 3.4.39 to 3.4.40 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.39 to 3.4.40. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.39...v3.4.40) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 443b6ec04..4c7528dd4 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.39' + implementation 'io.projectreactor:reactor-core:3.4.40' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From c7fef3d5e88c9dd1e486da0a149305025746580d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:06:51 +0000 Subject: [PATCH 387/579] Bump io.projectreactor:reactor-bom from 2023.0.7 to 2023.0.8 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.7 to 2023.0.8. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.7...2023.0.8) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 33ab3e823..fef3dcd99 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.7" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.8" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 613077a3d4329cfcf9a85163b615b77c6d95e2f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:16:01 +0000 Subject: [PATCH 388/579] Bump io.projectreactor:reactor-bom from 2023.0.7 to 2023.0.8 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.7 to 2023.0.8. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.7...2023.0.8) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 24e4eb744..b1ef726ff 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.7" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.8" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From ff6dbf597d00f649a2ec90f4bcbbbc7f3b2c01d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:15:57 +0000 Subject: [PATCH 389/579] Bump io.projectreactor:reactor-core from 3.6.7 to 3.6.8 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.7 to 3.6.8. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.7...v3.6.8) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 6d9066915..f52217b95 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.7' + implementation 'io.projectreactor:reactor-core:3.6.8' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From de25fcf96f940b0cd040499c57cc524d6cfe24df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:27:18 +0000 Subject: [PATCH 390/579] Bump io.projectreactor:reactor-core from 3.6.7 to 3.6.8 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.7 to 3.6.8. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.7...v3.6.8) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 516f637dc..b4fd86cf1 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.5' - implementation 'io.projectreactor:reactor-core:3.6.7' + implementation 'io.projectreactor:reactor-core:3.6.8' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.13' From 3d902c6961f085c1209172b2b78ab61ab6f9012b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:38:25 +0000 Subject: [PATCH 391/579] Bump com.github.spullara.mustache.java:compiler from 0.9.13 to 0.9.14 Bumps [com.github.spullara.mustache.java:compiler](https://github.com/spullara/mustache.java) from 0.9.13 to 0.9.14. - [Commits](https://github.com/spullara/mustache.java/compare/mustache.java-0.9.13...mustache.java-0.9.14) --- updated-dependencies: - dependency-name: com.github.spullara.mustache.java:compiler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index b4fd86cf1..9cc327e5b 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation 'io.projectreactor:reactor-core:3.6.8' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' - implementation 'com.github.spullara.mustache.java:compiler:0.9.13' + implementation 'com.github.spullara.mustache.java:compiler:0.9.14' implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' From c5298feaca65a4f896fd67f6a5fe2e1cfe3bd842 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:38:27 +0000 Subject: [PATCH 392/579] Bump io.spring.gradle:dependency-management-plugin from 1.1.5 to 1.1.6 Bumps [io.spring.gradle:dependency-management-plugin](https://github.com/spring-gradle-plugins/dependency-management-plugin) from 1.1.5 to 1.1.6. - [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases) - [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.1.5...v1.1.6) --- updated-dependencies: - dependency-name: io.spring.gradle:dependency-management-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 9cc327e5b..f52217b95 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation localGroovy() implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' - implementation 'io.spring.gradle:dependency-management-plugin:1.1.5' + implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' implementation 'io.projectreactor:reactor-core:3.6.8' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' From 9c9b60717104601f52f764dd39a7474059226557 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Wed, 10 Jul 2024 13:56:11 -0300 Subject: [PATCH 393/579] Declare webSocketRegistryListener() as static method Closes gh-3077 --- .../AbstractSessionWebSocketMessageBrokerConfigurer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-session-core/src/main/java/org/springframework/session/web/socket/config/annotation/AbstractSessionWebSocketMessageBrokerConfigurer.java b/spring-session-core/src/main/java/org/springframework/session/web/socket/config/annotation/AbstractSessionWebSocketMessageBrokerConfigurer.java index ebc5de364..bc5c06c84 100644 --- a/spring-session-core/src/main/java/org/springframework/session/web/socket/config/annotation/AbstractSessionWebSocketMessageBrokerConfigurer.java +++ b/spring-session-core/src/main/java/org/springframework/session/web/socket/config/annotation/AbstractSessionWebSocketMessageBrokerConfigurer.java @@ -112,7 +112,7 @@ public void configureWebSocketTransport(WebSocketTransportRegistration registrat } @Bean - public WebSocketRegistryListener webSocketRegistryListener() { + public static WebSocketRegistryListener webSocketRegistryListener() { return new WebSocketRegistryListener(); } From 773b92bd8aac15d8955f7a68a83e41748746379c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 03:35:12 +0000 Subject: [PATCH 394/579] Bump org.springframework:spring-framework-bom from 6.1.10 to 6.1.11 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.10 to 6.1.11. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.10...v6.1.11) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fef3dcd99..1fa7c155f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.7" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.5" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.10" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.11" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From f2abc2ce96f47413e74093d6376b432387b0842d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Jul 2024 04:06:43 +0000 Subject: [PATCH 395/579] Bump org.springframework:spring-framework-bom from 6.1.10 to 6.1.11 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.10 to 6.1.11. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.10...v6.1.11) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 60bb73a0f..2fb5e8e4a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.1" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.10" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.11" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 0bfc41965400820249d83ccf1759155e402a0f64 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 10 Jul 2024 03:27:41 +0000 Subject: [PATCH 396/579] Bump io.projectreactor:reactor-bom from 2023.0.7 to 2023.0.8 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.7 to 2023.0.8. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.7...2023.0.8) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2fb5e8e4a..20888b6c7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.7" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.8" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 41342dd0312d60d6a6eda322bcfda4a737d99178 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 03:16:00 +0000 Subject: [PATCH 397/579] Bump org.springframework.data:spring-data-bom from 2024.0.1 to 2024.0.2 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.1 to 2024.0.2. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.1...2024.0.2) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 20888b6c7..245e9a566 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.1" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.11" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 6721b8062a0e7c9dd742bc7c0b0e427aebce9d9b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 03:33:21 +0000 Subject: [PATCH 398/579] Bump org.springframework.data:spring-data-bom from 2024.0.1 to 2024.0.2 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.1 to 2024.0.2. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.1...2024.0.2) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b1ef726ff..ce226a86f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.1" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 43736d2bb1f17e43ea6d9512265197152f05fca0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Jul 2024 03:46:26 +0000 Subject: [PATCH 399/579] Bump org.springframework.data:spring-data-bom from 2023.1.7 to 2023.1.8 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.7 to 2023.1.8. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.7...2023.1.8) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1fa7c155f..720a2da6a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.7" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.8" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.5" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.11" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 9c487a514b9d2854b1c67bf7715ffbf53ae65d60 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Jul 2024 13:19:28 +0000 Subject: [PATCH 400/579] Release 3.4.0-M1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c79736f87..2c68f3e1a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-SNAPSHOT +version=3.4.0-M1 From 6c49206af200711cf8e9f6755bc44a20899a6ff7 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 16 Jul 2024 15:01:10 -0300 Subject: [PATCH 401/579] Revert "Release 3.4.0-M1" This reverts commit 9c487a514b9d2854b1c67bf7715ffbf53ae65d60. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2c68f3e1a..c79736f87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-M1 +version=3.4.0-SNAPSHOT From 8cf11eb5149a155a2785e4939df0d19f9555ac2d Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 16 Jul 2024 15:01:52 -0300 Subject: [PATCH 402/579] Update to Spring Security 6.4.0-M1 Closes gh-3100 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ce226a86f..08cb20d4c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.2" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-M1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 9dc77166754f1d9314dbfdfba7e1517c31a57bb7 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 16 Jul 2024 15:02:28 -0300 Subject: [PATCH 403/579] Release 3.4.0-M1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c79736f87..2c68f3e1a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-SNAPSHOT +version=3.4.0-M1 From 2e7b9688482cffafbe52828ffa843e8cb861929d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 16 Jul 2024 18:16:04 +0000 Subject: [PATCH 404/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 2c68f3e1a..c79736f87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-M1 +version=3.4.0-SNAPSHOT From a86bcf808e25396aecce16ad3fa5173d14037563 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Jul 2024 03:27:41 +0000 Subject: [PATCH 405/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.4.0-M1 to 6.4.0-SNAPSHOT. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/commits) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 08cb20d4c..ce226a86f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.2" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-M1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From b34e953f017b9b72ef178e971144131d443db498 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Jul 2024 03:59:09 +0000 Subject: [PATCH 406/579] Bump com.hazelcast:hazelcast from 5.3.7 to 5.3.8 Bumps [com.hazelcast:hazelcast](https://github.com/hazelcast/hazelcast) from 5.3.7 to 5.3.8. - [Release notes](https://github.com/hazelcast/hazelcast/releases) - [Commits](https://github.com/hazelcast/hazelcast/compare/v5.3.7...v5.3.8) --- updated-dependencies: - dependency-name: com.hazelcast:hazelcast dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 720a2da6a..88453982e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,7 +18,7 @@ com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.15.4" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.15.4" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" -com-hazelcast = "com.hazelcast:hazelcast:5.3.7" +com-hazelcast = "com.hazelcast:hazelcast:5.3.8" com-ibm-db2-jcc = "com.ibm.db2:jcc:11.5.9.0" com-maxmind-geoip2 = "com.maxmind.geoip2:geoip2:2.16.1" com-microsoft-sqlserver-mssql-jdbc = "com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17" From 490c3aeb02413beddf2c79b764e0781c78549c3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 03:24:33 +0000 Subject: [PATCH 407/579] Bump org-springframework-boot from 3.2.7 to 3.2.8 Bumps `org-springframework-boot` from 3.2.7 to 3.2.8. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.7 to 3.2.8 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.7...v3.2.8) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.7 to 3.2.8 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.7...v3.2.8) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ce226a86f..6cbd54ea3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.13" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.7" +org-springframework-boot = "3.2.8" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 32386c461c136d8786a708aa09e4a9f5e00bb6f2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 03:28:03 +0000 Subject: [PATCH 408/579] Bump org-springframework-boot from 3.2.7 to 3.2.8 Bumps `org-springframework-boot` from 3.2.7 to 3.2.8. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.7 to 3.2.8 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.7...v3.2.8) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.7 to 3.2.8 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.7...v3.2.8) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 88453982e..9b54e058b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.13" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.7" +org-springframework-boot = "3.2.8" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From cb26dfdcb126d524d575127bcdff37124b0d7cf3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Jul 2024 03:59:05 +0000 Subject: [PATCH 409/579] Bump org-springframework-boot from 3.2.7 to 3.2.8 Bumps `org-springframework-boot` from 3.2.7 to 3.2.8. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.7 to 3.2.8 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.7...v3.2.8) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.7 to 3.2.8 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.7...v3.2.8) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 245e9a566..b329c822e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.13" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.7" +org-springframework-boot = "3.2.8" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 733aafcddd47a0e5fb0e160b3fd9c229d8aa51de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2024 03:39:42 +0000 Subject: [PATCH 410/579] Bump com.gradle.develocity from 3.17.5 to 3.17.6 Bumps com.gradle.develocity from 3.17.5 to 3.17.6. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index a3df36eea..244c2e5c1 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.5" + id "com.gradle.develocity" version "3.17.6" id "io.spring.ge.conventions" version "0.0.17" } From b70656d298dcae2b67127caf02047582f8696df9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Jul 2024 03:41:45 +0000 Subject: [PATCH 411/579] Bump com.gradle.develocity from 3.17.5 to 3.17.6 Bumps com.gradle.develocity from 3.17.5 to 3.17.6. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index a3df36eea..244c2e5c1 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.5" + id "com.gradle.develocity" version "3.17.6" id "io.spring.ge.conventions" version "0.0.17" } From d63f835045c0d68d98ca93c860455c9c0cf78595 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Fri, 26 Jul 2024 14:42:44 -0300 Subject: [PATCH 412/579] Change Skip Condition --- .github/workflows/merge-dependabot-pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/merge-dependabot-pr.yml b/.github/workflows/merge-dependabot-pr.yml index 1bda517c9..36e206bd1 100644 --- a/.github/workflows/merge-dependabot-pr.yml +++ b/.github/workflows/merge-dependabot-pr.yml @@ -9,7 +9,7 @@ permissions: write-all jobs: merge-dependabot-pr: runs-on: ubuntu-latest - if: github.actor == 'dependabot[bot]' + if: ${{ github.event.pull_request.user.login == 'dependabot[bot]' && github.repository == 'spring-projects/spring-session' }} steps: - uses: actions/checkout@v4 From b10501175676c9a478679a80b73581d82dde825e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Aug 2024 16:43:00 +0000 Subject: [PATCH 413/579] Bump com.gradle.develocity from 3.17.5 to 3.17.6 Bumps com.gradle.develocity from 3.17.5 to 3.17.6. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index a3df36eea..244c2e5c1 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,7 +6,7 @@ pluginManagement { } plugins { - id "com.gradle.develocity" version "3.17.5" + id "com.gradle.develocity" version "3.17.6" id "io.spring.ge.conventions" version "0.0.17" } From bd6ac3a930613ce011cdcc0b3497423516b11a25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 03:19:59 +0000 Subject: [PATCH 414/579] Bump org-slf4j from 2.0.13 to 2.0.14 Bumps `org-slf4j` from 2.0.13 to 2.0.14. Updates `org.slf4j:jcl-over-slf4j` from 2.0.13 to 2.0.14 Updates `org.slf4j:log4j-over-slf4j` from 2.0.13 to 2.0.14 Updates `org.slf4j:slf4j-api` from 2.0.13 to 2.0.14 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9b54e058b..eaa5ffeae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.13" +org-slf4j = "2.0.14" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.8" From abef70e268c50afb0d7486ff812f601572e40d43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 03:28:21 +0000 Subject: [PATCH 415/579] Bump org-slf4j from 2.0.13 to 2.0.14 Bumps `org-slf4j` from 2.0.13 to 2.0.14. Updates `org.slf4j:jcl-over-slf4j` from 2.0.13 to 2.0.14 Updates `org.slf4j:log4j-over-slf4j` from 2.0.13 to 2.0.14 Updates `org.slf4j:slf4j-api` from 2.0.13 to 2.0.14 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6cbd54ea3..101147c8e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.11.0" org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" -org-slf4j = "2.0.13" +org-slf4j = "2.0.14" org-testcontainers = "1.19.8" org-springframework-boot = "3.2.8" From 7f377edcb7648c4cc98291cc75d96ca7ead95046 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Aug 2024 03:57:30 +0000 Subject: [PATCH 416/579] Bump org-slf4j from 2.0.13 to 2.0.14 Bumps `org-slf4j` from 2.0.13 to 2.0.14. Updates `org.slf4j:jcl-over-slf4j` from 2.0.13 to 2.0.14 Updates `org.slf4j:log4j-over-slf4j` from 2.0.13 to 2.0.14 Updates `org.slf4j:slf4j-api` from 2.0.13 to 2.0.14 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b329c822e..cf70d52c3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.11.0" org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" -org-slf4j = "2.0.13" +org-slf4j = "2.0.14" org-testcontainers = "1.19.8" org-springframework-boot = "3.2.8" From 38a3b31a9b090aa0a1ec521bbeef3a09ea1e0968 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Mon, 5 Aug 2024 14:31:48 -0300 Subject: [PATCH 417/579] Update to Spring Boot 3.3.1 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 101147c8e..b3b7dfd9a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.14" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.8" +org-springframework-boot = "3.3.1" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From c58065f208e69e45e0c6d2a1efb45a43cd40a613 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 03:26:46 +0000 Subject: [PATCH 418/579] Bump org-springframework-boot from 3.3.1 to 3.3.2 Bumps `org-springframework-boot` from 3.3.1 to 3.3.2. Updates `org.springframework.boot:spring-boot-dependencies` from 3.3.1 to 3.3.2 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.1...v3.3.2) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.3.1 to 3.3.2 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.1...v3.3.2) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b3b7dfd9a..df466d3c3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.14" org-testcontainers = "1.19.8" -org-springframework-boot = "3.3.1" +org-springframework-boot = "3.3.2" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 6d2be85185f2c639e95efe8fddb974d8855845ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Aug 2024 03:48:33 +0000 Subject: [PATCH 419/579] Bump org.awaitility:awaitility from 4.2.1 to 4.2.2 Bumps [org.awaitility:awaitility](https://github.com/awaitility/awaitility) from 4.2.1 to 4.2.2. - [Changelog](https://github.com/awaitility/awaitility/blob/master/changelog.txt) - [Commits](https://github.com/awaitility/awaitility/compare/awaitility-4.2.1...awaitility-4.2.2) --- updated-dependencies: - dependency-name: org.awaitility:awaitility dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cf70d52c3..6a0f84252 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -63,7 +63,7 @@ org-springframework-spring-framework-bom = "org.springframework:spring-framework org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } -org-awaitility-awaitility = "org.awaitility:awaitility:4.2.1" +org-awaitility-awaitility = "org.awaitility:awaitility:4.2.2" io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.3" [plugins] From e50ec075ee2e39d209152761f7060916f75d6851 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 03:09:27 +0000 Subject: [PATCH 420/579] Bump org-slf4j from 2.0.14 to 2.0.15 Bumps `org-slf4j` from 2.0.14 to 2.0.15. Updates `org.slf4j:jcl-over-slf4j` from 2.0.14 to 2.0.15 Updates `org.slf4j:log4j-over-slf4j` from 2.0.14 to 2.0.15 Updates `org.slf4j:slf4j-api` from 2.0.14 to 2.0.15 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6a0f84252..93a425f62 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.11.0" org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" -org-slf4j = "2.0.14" +org-slf4j = "2.0.15" org-testcontainers = "1.19.8" org-springframework-boot = "3.2.8" From c50a34f561bead87d75c469db6bd832764be7a44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 03:24:18 +0000 Subject: [PATCH 421/579] Bump org-slf4j from 2.0.14 to 2.0.15 Bumps `org-slf4j` from 2.0.14 to 2.0.15. Updates `org.slf4j:jcl-over-slf4j` from 2.0.14 to 2.0.15 Updates `org.slf4j:log4j-over-slf4j` from 2.0.14 to 2.0.15 Updates `org.slf4j:slf4j-api` from 2.0.14 to 2.0.15 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index df466d3c3..86ab7df84 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.11.0" org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" -org-slf4j = "2.0.14" +org-slf4j = "2.0.15" org-testcontainers = "1.19.8" org-springframework-boot = "3.3.2" From 3b5f4bd593eacfe2934fb87f4ed4133f11ae9229 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 03:28:36 +0000 Subject: [PATCH 422/579] Bump org-slf4j from 2.0.14 to 2.0.15 Bumps `org-slf4j` from 2.0.14 to 2.0.15. Updates `org.slf4j:jcl-over-slf4j` from 2.0.14 to 2.0.15 Updates `org.slf4j:log4j-over-slf4j` from 2.0.14 to 2.0.15 Updates `org.slf4j:slf4j-api` from 2.0.14 to 2.0.15 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index eaa5ffeae..d44bb7c09 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.2" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.14" +org-slf4j = "2.0.15" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.8" From 08446be1b284877366e5810c5f0f84b65e4c17cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 03:28:31 +0000 Subject: [PATCH 423/579] Bump org-mongodb from 4.11.2 to 4.11.3 Bumps `org-mongodb` from 4.11.2 to 4.11.3. Updates `org.mongodb:mongodb-driver-core` from 4.11.2 to 4.11.3 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.2...r4.11.3) Updates `org.mongodb:mongodb-driver-reactivestreams` from 4.11.2 to 4.11.3 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.2...r4.11.3) Updates `org.mongodb:mongodb-driver-sync` from 4.11.2 to 4.11.3 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.2...r4.11.3) --- updated-dependencies: - dependency-name: org.mongodb:mongodb-driver-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-reactivestreams dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-sync dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d44bb7c09..87772ecc7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.5.0" -org-mongodb = "4.11.2" +org-mongodb = "4.11.3" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.15" org-testcontainers = "1.18.3" From a3f1141d743ac0e869331f5ec5700a7ae5c8fa3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 17:19:18 +0000 Subject: [PATCH 424/579] Bump org.awaitility:awaitility from 4.2.1 to 4.2.2 Bumps [org.awaitility:awaitility](https://github.com/awaitility/awaitility) from 4.2.1 to 4.2.2. - [Changelog](https://github.com/awaitility/awaitility/blob/master/changelog.txt) - [Commits](https://github.com/awaitility/awaitility/compare/awaitility-4.2.1...awaitility-4.2.2) --- updated-dependencies: - dependency-name: org.awaitility:awaitility dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 86ab7df84..9ea9c69da 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -63,7 +63,7 @@ org-springframework-spring-framework-bom = "org.springframework:spring-framework org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } -org-awaitility-awaitility = "org.awaitility:awaitility:4.2.1" +org-awaitility-awaitility = "org.awaitility:awaitility:4.2.2" io-spring-security-release-plugin = "io.spring.gradle:spring-security-release-plugin:1.0.3" [plugins] From 1a18603b87768419c6c4d3ee46e3c3d185975055 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 03:59:10 +0000 Subject: [PATCH 425/579] Bump org-slf4j from 2.0.15 to 2.0.16 Bumps `org-slf4j` from 2.0.15 to 2.0.16. Updates `org.slf4j:jcl-over-slf4j` from 2.0.15 to 2.0.16 Updates `org.slf4j:log4j-over-slf4j` from 2.0.15 to 2.0.16 Updates `org.slf4j:slf4j-api` from 2.0.15 to 2.0.16 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 87772ecc7..c8b43806e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.5.0" org-mongodb = "4.11.3" org-seleniumhq-selenium = "4.8.3" -org-slf4j = "2.0.15" +org-slf4j = "2.0.16" org-testcontainers = "1.18.3" org-springframework-boot = "3.2.8" From 85da08d47077b6bbb9519bc09cb7b74601ab048e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 04:04:04 +0000 Subject: [PATCH 426/579] Bump org-slf4j from 2.0.15 to 2.0.16 Bumps `org-slf4j` from 2.0.15 to 2.0.16. Updates `org.slf4j:jcl-over-slf4j` from 2.0.15 to 2.0.16 Updates `org.slf4j:log4j-over-slf4j` from 2.0.15 to 2.0.16 Updates `org.slf4j:slf4j-api` from 2.0.15 to 2.0.16 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 93a425f62..515dfeff5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.11.0" org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" -org-slf4j = "2.0.15" +org-slf4j = "2.0.16" org-testcontainers = "1.19.8" org-springframework-boot = "3.2.8" From af37d934ca59b31ac72e7451e57d9eaa6b37da3a Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Mon, 12 Aug 2024 14:22:34 -0300 Subject: [PATCH 427/579] Allow minor version updates --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 98cc815d0..c5f9cf197 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -23,7 +23,7 @@ updates: - dependency-name: "org.mockito:mockito-bom" update-types: [ "version-update:semver-major" ] - dependency-name: "*" - update-types: [ "version-update:semver-major", "version-update:semver-minor" ] + update-types: [ "version-update:semver-major" ] - package-ecosystem: "gradle" target-branch: "3.3.x" From 84f4afcaf1ad7de28ccec676541f1f9d01e60e09 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Mon, 5 Aug 2024 14:32:19 -0300 Subject: [PATCH 428/579] Introduce RedisSessionExpirationStore With this commit it is now possible to customize the expiration policy in RedisIndexedHttpSession Closes gh-2906 --- .../RedisIndexedSessionRepositoryITests.java | 17 ++ ...dSetRedisSessionExpirationStoreITests.java | 121 +++++++++++++ .../redis/RedisIndexedSessionRepository.java | 165 +++++++++++++++++- .../redis/RedisSessionExpirationStore.java | 53 ++++++ .../SortedSetRedisSessionExpirationStore.java | 141 +++++++++++++++ .../RedisIndexedHttpSessionConfiguration.java | 11 ++ .../RedisIndexedSessionRepositoryTests.java | 22 ++- ...edSetRedisSessionExpirationStoreTests.java | 86 +++++++++ .../ROOT/pages/configuration/redis.adoc | 63 +++++++ .../modules/ROOT/pages/whats-new.adoc | 1 + 10 files changed, 665 insertions(+), 15 deletions(-) create mode 100644 spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStoreITests.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionExpirationStore.java create mode 100644 spring-session-data-redis/src/main/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStore.java create mode 100644 spring-session-data-redis/src/test/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStoreTests.java diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java index 29b603dca..b9798a95f 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryITests.java @@ -19,6 +19,7 @@ import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.UUID; +import java.util.concurrent.TimeUnit; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -135,6 +136,22 @@ void saves() throws InterruptedException { .isEqualTo(expectedAttributeValue); } + @Test + void saveThenSaveSessionKeyAndShadowKeyWith5MinutesDifference() { + RedisSession toSave = this.repository.createSession(); + String expectedAttributeName = "a"; + String expectedAttributeValue = "b"; + toSave.setAttribute(expectedAttributeName, expectedAttributeValue); + this.repository.save(toSave); + + Long sessionKeyExpire = this.redis.getExpire("RedisIndexedSessionRepositoryITests:sessions:" + toSave.getId(), + TimeUnit.SECONDS); + Long shadowKeyExpire = this.redis + .getExpire("RedisIndexedSessionRepositoryITests:sessions:expires:" + toSave.getId(), TimeUnit.SECONDS); + long differenceInSeconds = sessionKeyExpire - shadowKeyExpire; + assertThat(differenceInSeconds).isEqualTo(300); + } + @Test void putAllOnSingleAttrDoesNotRemoveOld() { RedisSession toSave = this.repository.createSession(); diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStoreITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStoreITests.java new file mode 100644 index 000000000..9ee2582a1 --- /dev/null +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStoreITests.java @@ -0,0 +1,121 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Clock; +import java.time.Duration; +import java.time.Instant; +import java.time.LocalDateTime; +import java.time.ZoneOffset; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.RedisSerializer; +import org.springframework.session.data.redis.RedisIndexedSessionRepository.RedisSession; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.context.web.WebAppConfiguration; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; + +/** + * Tests for {@link SortedSetRedisSessionExpirationStore} + * + * @author Marcus da Coregio + */ +@ExtendWith(SpringExtension.class) +@ContextConfiguration(classes = SortedSetRedisSessionExpirationStoreITests.Config.class) +@WebAppConfiguration +class SortedSetRedisSessionExpirationStoreITests { + + @Autowired + private SortedSetRedisSessionExpirationStore expirationStore; + + @Autowired + private RedisTemplate redisTemplate; + + private static final Instant mockedTime = LocalDateTime.of(2024, 5, 8, 10, 30, 0) + .atZone(ZoneOffset.UTC) + .toInstant(); + + private static final Clock clock; + + static { + clock = Clock.fixed(mockedTime, ZoneOffset.UTC); + } + + @Test + void saveThenStoreSessionWithItsExpiration() { + Instant expireAt = mockedTime.plusSeconds(5); + RedisSession session = createSession("123", expireAt); + this.expirationStore.save(session); + Double score = this.redisTemplate.opsForZSet().score("spring:session:sessions:expirations", "123"); + assertThat(score).isEqualTo(expireAt.toEpochMilli()); + } + + @Test + void removeWhenSessionIdExistsThenRemoved() { + RedisSession session = createSession("toBeRemoved", mockedTime); + this.expirationStore.save(session); + Double score = this.redisTemplate.opsForZSet().score("spring:session:sessions:expirations", "toBeRemoved"); + assertThat(score).isEqualTo(mockedTime.toEpochMilli()); + this.expirationStore.remove("toBeRemoved"); + score = this.redisTemplate.opsForZSet().score("spring:session:sessions:expirations", "toBeRemoved"); + assertThat(score).isNull(); + } + + private RedisSession createSession(String sessionId, Instant expireAt) { + RedisSession session = mock(); + given(session.getId()).willReturn(sessionId); + given(session.getLastAccessedTime()).willReturn(expireAt); + given(session.getMaxInactiveInterval()).willReturn(Duration.ZERO); + return session; + } + + @Configuration(proxyBeanMethods = false) + @Import(AbstractRedisITests.BaseConfig.class) + static class Config { + + @Bean + RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setKeySerializer(RedisSerializer.string()); + redisTemplate.setHashKeySerializer(RedisSerializer.string()); + redisTemplate.setConnectionFactory(redisConnectionFactory); + return redisTemplate; + } + + @Bean + RedisSessionExpirationStore redisSessionExpirationStore(RedisTemplate redisTemplate) { + SortedSetRedisSessionExpirationStore store = new SortedSetRedisSessionExpirationStore(redisTemplate, + RedisIndexedSessionRepository.DEFAULT_NAMESPACE); + store.setClock(SortedSetRedisSessionExpirationStoreITests.clock); + return store; + } + + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java index 9a311b027..13c9c5714 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisIndexedSessionRepository.java @@ -18,12 +18,15 @@ import java.time.Duration; import java.time.Instant; +import java.time.temporal.ChronoUnit; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; import java.util.Set; +import java.util.concurrent.TimeUnit; import java.util.function.BiFunction; +import java.util.function.Function; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -37,6 +40,8 @@ import org.springframework.data.redis.connection.Message; import org.springframework.data.redis.connection.MessageListener; import org.springframework.data.redis.core.BoundHashOperations; +import org.springframework.data.redis.core.BoundSetOperations; +import org.springframework.data.redis.core.BoundValueOperations; import org.springframework.data.redis.core.RedisOperations; import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer; import org.springframework.data.redis.serializer.RedisSerializer; @@ -61,6 +66,7 @@ import org.springframework.session.events.SessionExpiredEvent; import org.springframework.session.web.http.SessionRepositoryFilter; import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; /** @@ -306,7 +312,7 @@ public class RedisIndexedSessionRepository private final RedisOperations sessionRedisOperations; - private final RedisSessionExpirationPolicy expirationPolicy; + private RedisSessionExpirationStore expirationStore; private ApplicationEventPublisher eventPublisher = (event) -> { }; @@ -337,8 +343,8 @@ public class RedisIndexedSessionRepository public RedisIndexedSessionRepository(RedisOperations sessionRedisOperations) { Assert.notNull(sessionRedisOperations, "sessionRedisOperations cannot be null"); this.sessionRedisOperations = sessionRedisOperations; - this.expirationPolicy = new RedisSessionExpirationPolicy(sessionRedisOperations, this::getExpirationsKey, - this::getSessionKey); + this.expirationStore = new MinuteBasedRedisSessionExpirationStore(sessionRedisOperations, + this::getExpirationsKey); configureSessionChannels(); } @@ -486,7 +492,7 @@ public void save(RedisSession session) { } public void cleanUpExpiredSessions() { - this.expirationPolicy.cleanExpiredSessions(); + this.expirationStore.cleanupExpiredSessions(); } @Override @@ -543,7 +549,7 @@ public void deleteById(String sessionId) { } cleanupPrincipalIndex(session); - this.expirationPolicy.onDelete(session); + this.expirationStore.remove(sessionId); String expireKey = getExpiredKey(session.getId()); this.sessionRedisOperations.delete(expireKey); @@ -604,6 +610,7 @@ public void onMessage(Message message, byte[] pattern) { } cleanupPrincipalIndex(session); + this.expirationStore.remove(session.getId()); if (isDeleted) { handleDeleted(session); @@ -650,6 +657,18 @@ public void setRedisKeyNamespace(String namespace) { configureSessionChannels(); } + /** + * Set the {@link RedisSessionExpirationStore} to use, defaults to + * {@link MinuteBasedRedisSessionExpirationStore}. + * @param expirationStore the {@link RedisSessionExpirationStore} to use, cannot be + * null + * @since 3.4 + */ + public void setExpirationStore(RedisSessionExpirationStore expirationStore) { + Assert.notNull(expirationStore, "expirationStore cannot be null"); + this.expirationStore = expirationStore; + } + /** * Gets the Hash key for this session by prefixing it appropriately. * @param sessionId the session id @@ -754,7 +773,7 @@ public void setRedisSessionMapper(BiFunction, MapSes * * @author Rob Winch */ - final class RedisSession implements Session { + public final class RedisSession implements Session { private final MapSession cached; @@ -905,10 +924,41 @@ private void saveDelta() { RedisIndexedSessionRepository.this.sessionRedisOperations.convertAndSend(sessionCreatedKey, this.delta); this.isNew = false; } + + long sessionExpireInSeconds = getMaxInactiveInterval().getSeconds(); + + createShadowKey(sessionExpireInSeconds); + + long fiveMinutesAfterExpires = sessionExpireInSeconds + TimeUnit.MINUTES.toSeconds(5); + RedisIndexedSessionRepository.this.sessionRedisOperations.boundHashOps(getSessionKey(getId())) + .expire(fiveMinutesAfterExpires, TimeUnit.SECONDS); + + RedisIndexedSessionRepository.this.expirationStore.save(this); this.delta = new HashMap<>(this.delta.size()); - Long originalExpiration = (this.originalLastAccessTime != null) - ? this.originalLastAccessTime.plus(getMaxInactiveInterval()).toEpochMilli() : null; - RedisIndexedSessionRepository.this.expirationPolicy.onExpirationUpdated(originalExpiration, this); + } + + private void createShadowKey(long sessionExpireInSeconds) { + String keyToExpire = "expires:" + getId(); + String sessionKey = getSessionKey(keyToExpire); + + if (sessionExpireInSeconds < 0) { + BoundValueOperations valueOps = RedisIndexedSessionRepository.this.sessionRedisOperations + .boundValueOps(sessionKey); + valueOps.append(""); + valueOps.persist(); + RedisIndexedSessionRepository.this.sessionRedisOperations.boundHashOps(getSessionKey(getId())) + .persist(); + } + + if (sessionExpireInSeconds == 0) { + RedisIndexedSessionRepository.this.sessionRedisOperations.delete(sessionKey); + } + else { + BoundValueOperations valueOps = RedisIndexedSessionRepository.this.sessionRedisOperations + .boundValueOps(sessionKey); + valueOps.append(""); + valueOps.expire(sessionExpireInSeconds, TimeUnit.SECONDS); + } } private void saveChangeSessionId() { @@ -941,6 +991,7 @@ private void saveChangeSessionId() { RedisIndexedSessionRepository.this.sessionRedisOperations.boundSetOps(originalPrincipalRedisKey) .add(sessionId); } + RedisIndexedSessionRepository.this.expirationStore.remove(this.originalSessionId); } this.originalSessionId = sessionId; } @@ -954,4 +1005,100 @@ private void handleErrNoSuchKeyError(NonTransientDataAccessException ex) { } + private final class MinuteBasedRedisSessionExpirationStore implements RedisSessionExpirationStore { + + private static final String SESSION_EXPIRES_PREFIX = "expires:"; + + private final RedisOperations redis; + + private final Function lookupExpirationKey; + + MinuteBasedRedisSessionExpirationStore(RedisOperations redis, + Function lookupExpirationKey) { + this.redis = redis; + this.lookupExpirationKey = lookupExpirationKey; + } + + @Override + public void save(RedisSession session) { + Long originalExpiration = (session.originalLastAccessTime != null) + ? session.originalLastAccessTime.plus(session.getMaxInactiveInterval()).toEpochMilli() : null; + String keyToExpire = SESSION_EXPIRES_PREFIX + session.getId(); + long toExpire = roundUpToNextMinute(expiresInMillis(session)); + + if (originalExpiration != null) { + long originalRoundedUp = roundUpToNextMinute(originalExpiration); + if (toExpire != originalRoundedUp) { + String expireKey = getExpirationKey(originalRoundedUp); + this.redis.boundSetOps(expireKey).remove(keyToExpire); + } + } + + String expirationsKey = getExpirationsKey(toExpire); + long sessionExpireInSeconds = session.getMaxInactiveInterval().getSeconds(); + long fiveMinutesAfterExpires = sessionExpireInSeconds + TimeUnit.MINUTES.toSeconds(5); + this.redis.boundSetOps(expirationsKey).expire(fiveMinutesAfterExpires, TimeUnit.SECONDS); + + String expireKey = getExpirationKey(toExpire); + BoundSetOperations expireOperations = this.redis.boundSetOps(expireKey); + expireOperations.add(keyToExpire); + } + + @Override + public void remove(String sessionId) { + RedisSession session = getSession(sessionId, true); + if (session != null) { + long toExpire = roundUpToNextMinute(expiresInMillis(session)); + String expireKey = getExpirationKey(toExpire); + String entryToRemove = SESSION_EXPIRES_PREFIX + session.getId(); + this.redis.boundSetOps(expireKey).remove(entryToRemove); + } + } + + @Override + public void cleanupExpiredSessions() { + long now = System.currentTimeMillis(); + long prevMin = roundDownMinute(now); + String expirationKey = getExpirationKey(prevMin); + Set sessionsToExpire = this.redis.boundSetOps(expirationKey).members(); + this.redis.delete(expirationKey); + if (CollectionUtils.isEmpty(sessionsToExpire)) { + return; + } + for (Object sessionId : sessionsToExpire) { + touch(getSessionKey((String) sessionId)); + } + } + + /** + * By trying to access the session we only trigger a deletion if the TTL is + * expired. This is done to handle + * gh-93 + * @param sessionKey the key + */ + private void touch(String sessionKey) { + RedisIndexedSessionRepository.this.sessionRedisOperations.hasKey(sessionKey); + } + + String getExpirationKey(long expires) { + return this.lookupExpirationKey.apply(expires); + } + + private static long expiresInMillis(Session session) { + return session.getLastAccessedTime().plus(session.getMaxInactiveInterval()).toEpochMilli(); + } + + private static long roundUpToNextMinute(long timeInMs) { + Instant instant = Instant.ofEpochMilli(timeInMs).plus(1, ChronoUnit.MINUTES); + Instant nextMinute = instant.truncatedTo(ChronoUnit.MINUTES); + return nextMinute.toEpochMilli(); + } + + private static long roundDownMinute(long timeInMs) { + Instant downMinute = Instant.ofEpochMilli(timeInMs).truncatedTo(ChronoUnit.MINUTES); + return downMinute.toEpochMilli(); + } + + } + } diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionExpirationStore.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionExpirationStore.java new file mode 100644 index 000000000..6d35e994e --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/RedisSessionExpirationStore.java @@ -0,0 +1,53 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +/** + * An interface for storing {@link RedisIndexedSessionRepository.RedisSession} instances + * with their expected expiration time. This approach is necessary because Redis does not + * guarantee when the expired event will be fired if the key has not been accessed. For + * more details, see the Redis documentation on + * how + * keys expire. To address the uncertainty of expired events, sessions can be stored + * with their expected expiration time, ensuring each key is accessed when it is expected + * to expire. This interface defines common operations for tracking sessions and their + * expiration times, and allows for a strategy to clean up expired sessions. + * + * @author Marcus da Coregio + * @since 3.4 + */ +public interface RedisSessionExpirationStore { + + /** + * Saves the session and its expected expiration time, so it can be found later on by + * its expiration time in order for clean up to happen. + * @param session the session to save + */ + void save(RedisIndexedSessionRepository.RedisSession session); + + /** + * Removes the session id from the expiration store. + * @param sessionId the session id + */ + void remove(String sessionId); + + /** + * Performs clean up on the expired sessions. + */ + void cleanupExpiredSessions(); + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStore.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStore.java new file mode 100644 index 000000000..37dc163c4 --- /dev/null +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStore.java @@ -0,0 +1,141 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.time.Clock; +import java.time.Instant; +import java.util.Set; + +import org.springframework.data.redis.core.RedisOperations; +import org.springframework.session.Session; +import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; + +/** + * Uses a sorted set to store the expiration times for sessions. The score of each entry + * is the expiration time of the session (calculated via + * {@link Session#getLastAccessedTime()} + {@link Session#getMaxInactiveInterval()}). The + * value is the session id. Note that {@link #cleanupExpiredSessions()} only retrieves up + * to 100 sessions at a time by default, use {@link #setCleanupCount(int)} to increase it + * if needed. + * + * @author Marcus da Coregio + * @since 3.4 + */ +public class SortedSetRedisSessionExpirationStore implements RedisSessionExpirationStore { + + private final RedisOperations redisOps; + + private String namespace; + + private int cleanupCount = 100; + + private Clock clock = Clock.systemUTC(); + + private String expirationsKey; + + public SortedSetRedisSessionExpirationStore(RedisOperations redisOps, String namespace) { + Assert.notNull(redisOps, "redisOps cannot be null"); + this.redisOps = redisOps; + setNamespace(namespace); + } + + /** + * Save the session id associated with the expiration time into the sorted set. + * @param session the session to save + */ + @Override + public void save(RedisIndexedSessionRepository.RedisSession session) { + long expirationInMillis = getExpirationTime(session).toEpochMilli(); + this.redisOps.opsForZSet().add(this.expirationsKey, session.getId(), expirationInMillis); + } + + /** + * Remove the session id from the sorted set. + * @param sessionId the session id + */ + @Override + public void remove(String sessionId) { + this.redisOps.opsForZSet().remove(this.expirationsKey, sessionId); + } + + /** + * Retrieves the sessions that are expected to be expired and invoke + * {@link #touch(String)} on each of the session keys, resolved via + * {@link #getSessionKey(String)}. + */ + @Override + public void cleanupExpiredSessions() { + Set sessionIds = this.redisOps.opsForZSet() + .reverseRangeByScore(this.expirationsKey, 0, this.clock.millis(), 0, this.cleanupCount); + if (CollectionUtils.isEmpty(sessionIds)) { + return; + } + for (Object sessionId : sessionIds) { + String sessionKey = getSessionKey((String) sessionId); + touch(sessionKey); + } + } + + private Instant getExpirationTime(RedisIndexedSessionRepository.RedisSession session) { + return session.getLastAccessedTime().plus(session.getMaxInactiveInterval()); + } + + /** + * Checks if the session exists. By trying to access the session we only trigger a + * deletion if the TTL is expired. This is done to handle + * gh-93 + * @param sessionKey the key + */ + private void touch(String sessionKey) { + this.redisOps.hasKey(sessionKey); + } + + private String getSessionKey(String sessionId) { + return this.namespace + ":sessions:" + sessionId; + } + + /** + * Set the namespace for the keys. + * @param namespace the namespace + */ + public void setNamespace(String namespace) { + Assert.hasText(namespace, "namespace cannot be null or empty"); + this.namespace = namespace; + this.expirationsKey = this.namespace + ":sessions:expirations"; + } + + /** + * Configure the clock used when retrieving expired sessions for clean-up. + * @param clock the clock + */ + public void setClock(Clock clock) { + Assert.notNull(clock, "clock cannot be null"); + this.clock = clock; + } + + /** + * Configures how many sessions will be queried at a time to be cleaned up. Defaults + * to 100. + * @param cleanupCount how many sessions to be queried, must be bigger than 0. + */ + public void setCleanupCount(int cleanupCount) { + Assert.state(cleanupCount > 0, "cleanupCount must be greater than 0"); + this.cleanupCount = cleanupCount; + } + +} diff --git a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java index 6e8531cf9..62ef93b77 100644 --- a/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java +++ b/spring-session-data-redis/src/main/java/org/springframework/session/data/redis/config/annotation/web/http/RedisIndexedHttpSessionConfiguration.java @@ -47,6 +47,7 @@ import org.springframework.session.SessionIdGenerator; import org.springframework.session.UuidSessionIdGenerator; import org.springframework.session.data.redis.RedisIndexedSessionRepository; +import org.springframework.session.data.redis.RedisSessionExpirationStore; import org.springframework.session.data.redis.config.ConfigureNotifyKeyspaceEventsAction; import org.springframework.session.data.redis.config.ConfigureRedisAction; import org.springframework.session.web.http.SessionRepositoryFilter; @@ -84,6 +85,8 @@ public class RedisIndexedHttpSessionConfiguration private SessionIdGenerator sessionIdGenerator = UuidSessionIdGenerator.getInstance(); + private RedisSessionExpirationStore expirationStore; + @Bean @Override public RedisIndexedSessionRepository sessionRepository() { @@ -106,6 +109,9 @@ public RedisIndexedSessionRepository sessionRepository() { int database = resolveDatabase(); sessionRepository.setDatabase(database); sessionRepository.setSessionIdGenerator(this.sessionIdGenerator); + if (this.expirationStore != null) { + sessionRepository.setExpirationStore(this.expirationStore); + } getSessionRepositoryCustomizers() .forEach((sessionRepositoryCustomizer) -> sessionRepositoryCustomizer.customize(sessionRepository)); return sessionRepository; @@ -171,6 +177,11 @@ public void setRedisSubscriptionExecutor(Executor redisSubscriptionExecutor) { this.redisSubscriptionExecutor = redisSubscriptionExecutor; } + @Autowired(required = false) + public void setExpirationStore(RedisSessionExpirationStore expirationStore) { + this.expirationStore = expirationStore; + } + @Override public void setEmbeddedValueResolver(StringValueResolver resolver) { this.embeddedValueResolver = resolver; diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java index 3303eebbf..f1bc11cbb 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryTests.java @@ -504,11 +504,16 @@ void onMessageDeletedSessionFound() { String deletedId = "deleted-id"; given(this.redisOperations.boundHashOps(getKey(deletedId))) .willReturn(this.boundHashOperations); + long lastAccessedTimeMillis = System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(5); Map map = map(RedisSessionMapper.CREATION_TIME_KEY, Instant.EPOCH.toEpochMilli(), RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, 0, RedisSessionMapper.LAST_ACCESSED_TIME_KEY, - System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(5)); + lastAccessedTimeMillis); given(this.boundHashOperations.entries()).willReturn(map); + String backgroundExpireKey = "spring:session:expirations:" + + RedisSessionExpirationPolicy.roundUpToNextMinute(lastAccessedTimeMillis); + given(this.redisOperations.boundSetOps(backgroundExpireKey)).willReturn(this.boundSetOperations); + String channel = "__keyevent@0__:del"; String body = "spring:session:sessions:expires:" + deletedId; DefaultMessage message = new DefaultMessage(channel.getBytes(StandardCharsets.UTF_8), @@ -517,8 +522,8 @@ void onMessageDeletedSessionFound() { this.redisRepository.setApplicationEventPublisher(this.publisher); this.redisRepository.onMessage(message, "".getBytes(StandardCharsets.UTF_8)); - verify(this.redisOperations).boundHashOps(eq(getKey(deletedId))); - verify(this.boundHashOperations).entries(); + verify(this.redisOperations, times(2)).boundHashOps(eq(getKey(deletedId))); + verify(this.boundHashOperations, times(2)).entries(); verify(this.publisher).publishEvent(this.event.capture()); assertThat(this.event.getValue().getSessionId()).isEqualTo(deletedId); verifyNoMoreInteractions(this.defaultSerializer); @@ -555,11 +560,16 @@ void onMessageExpiredSessionFound() { String expiredId = "expired-id"; given(this.redisOperations.boundHashOps(getKey(expiredId))) .willReturn(this.boundHashOperations); + long lastAccessedTimeMillis = System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(5); Map map = map(RedisSessionMapper.CREATION_TIME_KEY, Instant.EPOCH.toEpochMilli(), RedisSessionMapper.MAX_INACTIVE_INTERVAL_KEY, 1, RedisSessionMapper.LAST_ACCESSED_TIME_KEY, - System.currentTimeMillis() - TimeUnit.MINUTES.toMillis(5)); + lastAccessedTimeMillis); given(this.boundHashOperations.entries()).willReturn(map); + String backgroundExpireKey = "spring:session:expirations:" + + RedisSessionExpirationPolicy.roundUpToNextMinute(lastAccessedTimeMillis + 1000); + given(this.redisOperations.boundSetOps(backgroundExpireKey)).willReturn(this.boundSetOperations); + String channel = "__keyevent@0__:expired"; String body = "spring:session:sessions:expires:" + expiredId; DefaultMessage message = new DefaultMessage(channel.getBytes(StandardCharsets.UTF_8), @@ -568,8 +578,8 @@ void onMessageExpiredSessionFound() { this.redisRepository.setApplicationEventPublisher(this.publisher); this.redisRepository.onMessage(message, "".getBytes(StandardCharsets.UTF_8)); - verify(this.redisOperations).boundHashOps(eq(getKey(expiredId))); - verify(this.boundHashOperations).entries(); + verify(this.redisOperations, times(2)).boundHashOps(eq(getKey(expiredId))); + verify(this.boundHashOperations, times(2)).entries(); verify(this.publisher).publishEvent(this.event.capture()); assertThat(this.event.getValue().getSessionId()).isEqualTo(expiredId); verifyNoMoreInteractions(this.defaultSerializer); diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStoreTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStoreTests.java new file mode 100644 index 000000000..f276bdfb3 --- /dev/null +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/SortedSetRedisSessionExpirationStoreTests.java @@ -0,0 +1,86 @@ +/* + * Copyright 2014-2024 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.session.data.redis; + +import java.util.Set; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Answers; + +import org.springframework.data.redis.core.RedisTemplate; + +import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; +import static org.assertj.core.api.Assertions.assertThatIllegalStateException; +import static org.mockito.ArgumentMatchers.anyDouble; +import static org.mockito.ArgumentMatchers.anyLong; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +/** + * Tests for {@link SortedSetRedisSessionExpirationStore} + * + * @author Marcus da Coregio + */ +class SortedSetRedisSessionExpirationStoreTests { + + private SortedSetRedisSessionExpirationStore expirationStore; + + private final RedisTemplate redisTemplate = mock(Answers.RETURNS_DEEP_STUBS); + + @BeforeEach + void setup() { + this.expirationStore = new SortedSetRedisSessionExpirationStore(this.redisTemplate, + RedisIndexedSessionRepository.DEFAULT_NAMESPACE); + } + + @Test + void setNamespaceWhenNullOrEmptyThenException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.expirationStore.setNamespace(null)) + .withMessage("namespace cannot be null or empty"); + assertThatIllegalArgumentException().isThrownBy(() -> this.expirationStore.setNamespace("")) + .withMessage("namespace cannot be null or empty"); + } + + @Test + void setClockWhenNullThenException() { + assertThatIllegalArgumentException().isThrownBy(() -> this.expirationStore.setClock(null)) + .withMessage("clock cannot be null"); + } + + @Test + void setCleanupCountWhenZeroOrNegativeThenException() { + assertThatIllegalStateException().isThrownBy(() -> this.expirationStore.setCleanupCount(0)) + .withMessage("cleanupCount must be greater than 0"); + assertThatIllegalStateException().isThrownBy(() -> this.expirationStore.setCleanupCount(-1)) + .withMessage("cleanupCount must be greater than 0"); + } + + @Test + void cleanupExpiredSessionsThenTouchExpiredSessions() { + given(this.redisTemplate.opsForZSet() + .reverseRangeByScore(anyString(), anyDouble(), anyDouble(), anyLong(), anyLong())) + .willReturn(Set.of("1", "2", "3")); + this.expirationStore.cleanupExpiredSessions(); + verify(this.redisTemplate).hasKey("spring:session:sessions:1"); + verify(this.redisTemplate).hasKey("spring:session:sessions:2"); + verify(this.redisTemplate).hasKey("spring:session:sessions:3"); + } + +} diff --git a/spring-session-docs/modules/ROOT/pages/configuration/redis.adoc b/spring-session-docs/modules/ROOT/pages/configuration/redis.adoc index 182e874e3..458f53aa6 100644 --- a/spring-session-docs/modules/ROOT/pages/configuration/redis.adoc +++ b/spring-session-docs/modules/ROOT/pages/configuration/redis.adoc @@ -10,6 +10,7 @@ Now that you have your application configured, you might want to start customizi - I want to <>. - I want to <> - I want to <> +- Customizing the <> [[serializing-session-using-json]] == Serializing the Session using JSON @@ -407,3 +408,65 @@ public class SessionConfig { } ---- ====== + +[[customizing-session-expiration-store]] +== Customizing the Session Expiration Store + +Due to the nature of Redis, there is no guarantee on when an expired event will be fired if the key has not been accessed. +For more details, refer to the Redis documentation https://redis.io/docs/latest/commands/expire/#:~:text=How%20Redis%20expires%20keys[on key expiration]. + +To mitigate the uncertainty of expired events, sessions are also stored with their expected expiration times. +This ensures that each key can be accessed when it is expected to expire. +The `RedisSessionExpirationStore` interface defines the common operations for tracking sessions and their expiration times, and it provides a strategy for cleaning up expired sessions. + +By default, each session expiration is tracked to the nearest minute. +This allows a background task to access the potentially expired sessions to ensure that Redis expired events are fired in a more deterministic fashion. + +For example: +[source] +---- +SADD spring:session:expirations:1439245080000 expires:33fdd1b6-b496-4b33-9f7d-df96679d32fe +EXPIRE spring:session:expirations:1439245080000 2100 +---- + +The background task will then use these mappings to explicitly request each session expires key. +By accessing the key, rather than deleting it, we ensure that Redis deletes the key for us only if the TTL is expired. + +By customizing the session expiration store, you can manage session expiration more effectively based on your needs. +To do that, you should provide a bean of type `RedisSessionExpirationStore` that will be picked up by Spring Session Data Redis configuration: + +[tabs] +====== +SessionConfig:: ++ +[source,java,role="primary"] +---- +import org.springframework.session.data.redis.SortedSetRedisSessionExpirationStore; + +@Configuration +@EnableRedisIndexedHttpSession +public class SessionConfig { + + @Bean + public RedisSessionExpirationStore redisSessionExpirationStore(RedisConnectionFactory redisConnectionFactory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setKeySerializer(RedisSerializer.string()); + redisTemplate.setHashKeySerializer(RedisSerializer.string()); + redisTemplate.setConnectionFactory(redisConnectionFactory); + redisTemplate.afterPropertiesSet(); + return new SortedSetRedisSessionExpirationStore(redisTemplate, RedisIndexedSessionRepository.DEFAULT_NAMESPACE); + } + +} +---- +====== + +In the code above, the `SortedSetRedisSessionExpirationStore` implementation is being used, which uses a https://redis.io/docs/latest/develop/data-types/sorted-sets/[Sorted Set] to store the session ids with their expiration time as the score. + +[NOTE] +==== +We do not explicitly delete the keys since in some instances there may be a race condition that incorrectly identifies a key as expired when it is not. +Short of using distributed locks (which would kill performance) there is no way to ensure the consistency of the expiration mapping. +By simply accessing the key, we ensure that the key is only removed if the TTL on that key is expired. +However, for your implementations you can choose the strategy that best fits. +==== diff --git a/spring-session-docs/modules/ROOT/pages/whats-new.adoc b/spring-session-docs/modules/ROOT/pages/whats-new.adoc index 5fd76654f..94ddee55e 100644 --- a/spring-session-docs/modules/ROOT/pages/whats-new.adoc +++ b/spring-session-docs/modules/ROOT/pages/whats-new.adoc @@ -1,3 +1,4 @@ = What's New in 3.4 - https://github.com/spring-projects/spring-session/issues/2787[gh-2787] - Add Partitioned Cookie Support to `DefaultCookieSerializer` +- https://github.com/spring-projects/spring-session/issues/2906[gh-2906] - xref:configuration/redis.adoc#customizing-session-expiration-store[docs] - Allow Customization of Expiration Policy in `RedisIndexedHttpSession` From b54ee7ceff57f069835db85e6345bf5d0a995bdd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:21:00 +0000 Subject: [PATCH 429/579] Bump io.projectreactor:reactor-bom from 2023.0.8 to 2023.0.9 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.8 to 2023.0.9. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.8...2023.0.9) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c8b43806e..e1196d34f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.8" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From d627fabd53240857e8cfedbf1b67bf53ebe8759d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:21:13 +0000 Subject: [PATCH 430/579] Bump io.projectreactor:reactor-core from 3.4.40 to 3.4.41 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.4.40 to 3.4.41. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.4.40...v3.4.41) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 4c7528dd4..390a6f851 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.1.0' implementation 'io.spring.gradle:dependency-management-plugin:1.0.15.RELEASE' - implementation 'io.projectreactor:reactor-core:3.4.40' + implementation 'io.projectreactor:reactor-core:3.4.41' implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From 6c6bba9ac830931300e089aa15c7310a93f3a0b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:22:09 +0000 Subject: [PATCH 431/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.42 to 0.0.43. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.42...v0.0.43) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index f52217b95..e009ec1f3 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.43' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From bfe6d3d701c286e0cb5eabbb63174c9de1641536 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:22:20 +0000 Subject: [PATCH 432/579] Bump io.projectreactor:reactor-bom from 2023.0.8 to 2023.0.9 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.8 to 2023.0.9. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.8...2023.0.9) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 515dfeff5..75113bfdc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.8" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 472547b320a38b1b82f3e36e02ae4f8332999bc6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:22:40 +0000 Subject: [PATCH 433/579] Bump io.projectreactor:reactor-core from 3.6.8 to 3.6.9 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.8 to 3.6.9. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.8...v3.6.9) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index e009ec1f3..c150445c7 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.8' + implementation 'io.projectreactor:reactor-core:3.6.9' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From 6a9c90611f64caf935e9b07517ad30bc8f91a6b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:35:09 +0000 Subject: [PATCH 434/579] Bump io.projectreactor:reactor-bom from 2023.0.8 to 2023.0.9 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.8 to 2023.0.9. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.8...2023.0.9) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9ea9c69da..07fdf4dfd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.8" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 20df163fce54398d54040a47a91f1d4edd5e1b9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Aug 2024 03:34:59 +0000 Subject: [PATCH 435/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.42 to 0.0.43. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.42...v0.0.43) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index f52217b95..e009ec1f3 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -68,7 +68,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.43' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From 5d8458e2d71f489270a5f5101cac4368c66658d6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 03:12:37 +0000 Subject: [PATCH 436/579] Bump org.springframework:spring-framework-bom from 6.1.11 to 6.1.12 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.11 to 6.1.12. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.11...v6.1.12) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e1196d34f..627820c0c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.8" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.5" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.11" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From d77fbf9d678ca658198bc8d83d9c33932c31c65a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 03:29:27 +0000 Subject: [PATCH 437/579] Bump org.springframework:spring-framework-bom from 6.1.11 to 6.1.12 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.11 to 6.1.12. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.11...v6.1.12) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 75113bfdc..5d016fc7b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.2" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.1" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.11" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 58e67fb11750a6d9b2d4d6d0f30d13bb6baeb8eb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 03:34:58 +0000 Subject: [PATCH 438/579] Bump io.projectreactor:reactor-core from 3.6.8 to 3.6.9 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.8 to 3.6.9. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.8...v3.6.9) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index e009ec1f3..c150445c7 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -64,7 +64,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.8' + implementation 'io.projectreactor:reactor-core:3.6.9' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From d36c32f1dcfef9a3362706644d3eed6a0cf9819d Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Thu, 15 Aug 2024 11:05:30 -0300 Subject: [PATCH 439/579] Remove jcenter() --- buildSrc/build.gradle | 1 - .../gradle/convention/RepositoryConventionPlugin.groovy | 5 ----- 2 files changed, 6 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 390a6f851..7e3a6b170 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -7,7 +7,6 @@ plugins { sourceCompatibility = JavaVersion.VERSION_17 repositories { - jcenter() gradlePluginPortal() mavenCentral() maven { url 'https://repo.spring.io/plugins-release/' } diff --git a/buildSrc/src/main/groovy/io/spring/gradle/convention/RepositoryConventionPlugin.groovy b/buildSrc/src/main/groovy/io/spring/gradle/convention/RepositoryConventionPlugin.groovy index c24208142..407163d82 100644 --- a/buildSrc/src/main/groovy/io/spring/gradle/convention/RepositoryConventionPlugin.groovy +++ b/buildSrc/src/main/groovy/io/spring/gradle/convention/RepositoryConventionPlugin.groovy @@ -35,11 +35,6 @@ class RepositoryConventionPlugin implements Plugin { mavenLocal() } mavenCentral() - jcenter() { - content { - includeGroup "org.gretty" - } - } if (isSnapshot) { maven { name = 'artifactory-snapshot' From 972ef97993e2dde89a3df9c9bae31f844c3acd6c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:07:59 +0000 Subject: [PATCH 440/579] Bump io.spring.javaformat:spring-javaformat-gradle-plugin Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.42 to 0.0.43. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.42...v0.0.43) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 7e3a6b170..b77cad307 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -67,7 +67,7 @@ dependencies { implementation 'com.apollographql.apollo:apollo-runtime:2.4.5' implementation 'com.github.ben-manes:gradle-versions-plugin:0.41.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' - implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.42' + implementation 'io.spring.javaformat:spring-javaformat-gradle-plugin:0.0.43' implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.37.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' From f97dca6840bc64c31b082c4150241a6523437550 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:07:40 +0000 Subject: [PATCH 441/579] Bump jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api Bumps [jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api](https://github.com/eclipse-ee4j/jstl-api) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/eclipse-ee4j/jstl-api/releases) - [Commits](https://github.com/eclipse-ee4j/jstl-api/commits) --- updated-dependencies: - dependency-name: jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 627820c0c..71632f38a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,7 @@ io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" -jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" +jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.1" jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" } mysql-mysql-connector-java = "mysql:mysql-connector-java:8.0.33" From c90cc21647fc6b02fc1e31da1aaf980ad24ee782 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:07:46 +0000 Subject: [PATCH 442/579] Bump jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api Bumps [jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api](https://github.com/eclipse-ee4j/jstl-api) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/eclipse-ee4j/jstl-api/releases) - [Commits](https://github.com/eclipse-ee4j/jstl-api/commits) --- updated-dependencies: - dependency-name: jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5d016fc7b..7888db460 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,7 @@ io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" -jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" +jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.1" jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" } mysql-mysql-connector-java = "mysql:mysql-connector-java:8.0.33" From 0a2751ccc6fc7607ae43c15aed23ee1caf922452 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 15 Aug 2024 14:07:52 +0000 Subject: [PATCH 443/579] Bump jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api Bumps [jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api](https://github.com/eclipse-ee4j/jstl-api) from 3.0.0 to 3.0.1. - [Release notes](https://github.com/eclipse-ee4j/jstl-api/releases) - [Commits](https://github.com/eclipse-ee4j/jstl-api/commits) --- updated-dependencies: - dependency-name: jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 07fdf4dfd..a08444427 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,7 @@ io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" -jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.0" +jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.1" jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" } mysql-mysql-connector-java = "mysql:mysql-connector-java:8.0.33" From d7a7ce6d80e4231357f5b5ea3d207b25be68201d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 03:09:22 +0000 Subject: [PATCH 444/579] Bump ch-qos-logback from 1.5.6 to 1.5.7 Bumps `ch-qos-logback` from 1.5.6 to 1.5.7. Updates `ch.qos.logback:logback-classic` from 1.5.6 to 1.5.7 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.6...v_1.5.7) Updates `ch.qos.logback:logback-core` from 1.5.6 to 1.5.7 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.6...v_1.5.7) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a08444427..6b40838f7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.6" +ch-qos-logback = "1.5.7" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 0cedb8ef549d6be600f5fcce39b0b027bb38bf0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 03:24:59 +0000 Subject: [PATCH 445/579] Bump ch-qos-logback from 1.5.6 to 1.5.7 Bumps `ch-qos-logback` from 1.5.6 to 1.5.7. Updates `ch.qos.logback:logback-classic` from 1.5.6 to 1.5.7 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.6...v_1.5.7) Updates `ch.qos.logback:logback-core` from 1.5.6 to 1.5.7 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.6...v_1.5.7) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7888db460..e6b190ba9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.6" +ch-qos-logback = "1.5.7" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From aa5f2032ec106b7ef242a91ea008cddae4a3ed50 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:10:08 +0000 Subject: [PATCH 446/579] Bump org.springframework.data:spring-data-bom from 2024.0.2 to 2024.0.3 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.2 to 2024.0.3. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.2...2024.0.3) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6b40838f7..d5c864942 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.2" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From e38ce2f21f9d849798b71def98ab93e61a63697e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:21:19 +0000 Subject: [PATCH 447/579] Bump org-slf4j from 2.0.15 to 2.0.16 Bumps `org-slf4j` from 2.0.15 to 2.0.16. Updates `org.slf4j:jcl-over-slf4j` from 2.0.15 to 2.0.16 Updates `org.slf4j:log4j-over-slf4j` from 2.0.15 to 2.0.16 Updates `org.slf4j:slf4j-api` from 2.0.15 to 2.0.16 --- updated-dependencies: - dependency-name: org.slf4j:jcl-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:log4j-over-slf4j dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.slf4j:slf4j-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d5c864942..2557f81aa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ org-gretty = "4.1.1" org-mockito = "5.11.0" org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" -org-slf4j = "2.0.15" +org-slf4j = "2.0.16" org-testcontainers = "1.19.8" org-springframework-boot = "3.3.2" From ce2b431fde48b24ee54e91fe4b39b0290a84bb5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:21:43 +0000 Subject: [PATCH 448/579] Bump org.springframework.data:spring-data-bom from 2024.0.2 to 2024.0.3 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.2 to 2024.0.3. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.2...2024.0.3) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e6b190ba9..b6c3a38a8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.2" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From f18567ceed6c4ba2bf5caa8693f4cc31717db30e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 03:29:19 +0000 Subject: [PATCH 449/579] Bump org.springframework.data:spring-data-bom from 2023.1.8 to 2023.1.9 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.8 to 2023.1.9. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.8...2023.1.9) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 71632f38a..ab6d13f20 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.8" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.9" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.5" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From a5efc7fff5970df5252b0d90d39bcc6bf26282b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 03:35:12 +0000 Subject: [PATCH 450/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.2.5 to 6.2.6. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.2.5...6.2.6) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ab6d13f20..f6ea694d9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.9" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.5" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.6" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 15c2c65ff749fa15ae400cc2fd6d215fa0f9c1b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 03:38:46 +0000 Subject: [PATCH 451/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.3.1 to 6.3.2. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.3.1...6.3.2) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b6c3a38a8..68ec56487 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 520abe537c08da41908dff24ac2fbb23c1572edd Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Aug 2024 13:20:59 +0000 Subject: [PATCH 452/579] Release 3.4.0-M2 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c79736f87..b3cb5b719 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-SNAPSHOT +version=3.4.0-M2 From ff40b605334cb51789d2de286f22aa41de9c62e5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Aug 2024 13:21:15 +0000 Subject: [PATCH 453/579] Release 3.3.2 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index cacc95d54..859ced30e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.2-SNAPSHOT +version=3.3.2 From cb14039e63dc5590085804b4b3d4c585106e47b5 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Aug 2024 13:21:26 +0000 Subject: [PATCH 454/579] Release 3.2.5 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 732febb09..42cea7e2c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.5-SNAPSHOT +version=3.2.5 From 77ef35ec2a3cf04c5e28a9f68484bc7243ed32af Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 20 Aug 2024 10:37:44 -0300 Subject: [PATCH 455/579] Revert "Release 3.4.0-M2" This reverts commit 520abe537c08da41908dff24ac2fbb23c1572edd. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b3cb5b719..c79736f87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-M2 +version=3.4.0-SNAPSHOT From a2ad2775cd2e18d6032aedcbd4c21254793149b3 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 20 Aug 2024 10:37:54 -0300 Subject: [PATCH 456/579] Update to Spring Security 6.4.0-M2 Closes gh-3163 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2557f81aa..b9e0f47d8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-M2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 5a40c5b86483c34985a3de3c4fc8130891f51cbe Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Tue, 20 Aug 2024 10:38:13 -0300 Subject: [PATCH 457/579] Release 3.4.0-M2 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c79736f87..b3cb5b719 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-SNAPSHOT +version=3.4.0-M2 From ec2abe35875218fd4aa6824ffa9ac1a185b6d083 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Aug 2024 13:44:57 +0000 Subject: [PATCH 458/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 859ced30e..b68391b42 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.2 +version=3.3.3-SNAPSHOT From 3fa19911e737f1680d7a0f1f64995cd57dd9d4bf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Aug 2024 13:45:26 +0000 Subject: [PATCH 459/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 42cea7e2c..a28cd95b9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.5 +version=3.2.6-SNAPSHOT From fad05fafa8fccf569c5203f6500764f87de443ea Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 20 Aug 2024 13:53:22 +0000 Subject: [PATCH 460/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b3cb5b719..c79736f87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-M2 +version=3.4.0-SNAPSHOT From 4fbd3ee5d55e35a866ca625758964b8d68bee2c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Aug 2024 03:38:50 +0000 Subject: [PATCH 461/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.4.0-M2 to 6.4.0-SNAPSHOT. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/commits) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b9e0f47d8..2557f81aa 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-M2" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From ad333a49af4946ad1152cc1493cf14ce5939f192 Mon Sep 17 00:00:00 2001 From: Marcus Hert Da Coregio Date: Wed, 21 Aug 2024 08:43:05 -0300 Subject: [PATCH 462/579] Bump io.spring.javaformat:spring-javaformat-checkstyle from 0.0.42 to 0.0.43 --- gradle/libs.versions.toml | 2 +- .../MongoDbDeleteJacksonSessionVerificationTest.java | 2 +- .../session/data/mongo/MongoDbLogoutVerificationTest.java | 2 +- .../session/data/mongo/MongoRepositoryJacksonITest.java | 2 +- .../data/mongo/MongoRepositoryJdkSerializationITest.java | 2 +- .../data/mongo/JacksonMongoSessionConverterTests.java | 2 +- .../session/data/mongo/JdkMongoSessionConverterTests.java | 2 +- .../data/mongo/MongoIndexedSessionRepositoryTests.java | 2 +- .../session/data/mongo/MongoSessionTests.java | 2 +- .../data/mongo/ReactiveMongoSessionRepositoryTests.java | 2 +- .../web/http/MongoHttpSessionConfigurationTests.java | 2 +- .../ReactiveMongoWebSessionConfigurationTests.java | 2 +- ...nConfigurationClassPathXmlApplicationContextTests.java | 2 +- ...RedisHttpSessionConfigurationXmlCustomExpireTests.java | 2 +- .../web/http/RedisHttpSessionConfigurationXmlTests.java | 2 +- ...sionConfigurationNoOpConfigureRedisActionXmlTests.java | 2 +- .../modules/ROOT/examples/java/docs/IndexDocTests.java | 8 ++++---- .../src/test/java/sample/JdbcJsonAttributeTests.java | 2 +- .../session/mongodb/examples/AttributeTests.java | 2 +- .../session/mongodb/examples/BootTests.java | 2 +- 20 files changed, 23 insertions(+), 23 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f6ea694d9..2fd276ca7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" -io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.42" +io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.1" diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbDeleteJacksonSessionVerificationTest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbDeleteJacksonSessionVerificationTest.java index 148298cab..930955744 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbDeleteJacksonSessionVerificationTest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbDeleteJacksonSessionVerificationTest.java @@ -57,7 +57,7 @@ */ @ExtendWith(SpringExtension.class) @ContextConfiguration -public class MongoDbDeleteJacksonSessionVerificationTest { +class MongoDbDeleteJacksonSessionVerificationTest { @Autowired ApplicationContext ctx; diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbLogoutVerificationTest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbLogoutVerificationTest.java index 5973e0061..200495718 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbLogoutVerificationTest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoDbLogoutVerificationTest.java @@ -57,7 +57,7 @@ */ @ExtendWith(SpringExtension.class) @ContextConfiguration -public class MongoDbLogoutVerificationTest { +class MongoDbLogoutVerificationTest { @Autowired ApplicationContext ctx; diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoRepositoryJacksonITest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoRepositoryJacksonITest.java index d94db319f..158d75db4 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoRepositoryJacksonITest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoRepositoryJacksonITest.java @@ -40,7 +40,7 @@ * @author Greg Turnquist */ @ContextConfiguration -public class MongoRepositoryJacksonITest extends AbstractMongoRepositoryITest { +class MongoRepositoryJacksonITest extends AbstractMongoRepositoryITest { @Test void findByCustomIndex() throws Exception { diff --git a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoRepositoryJdkSerializationITest.java b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoRepositoryJdkSerializationITest.java index 01ee64d26..7b3459807 100644 --- a/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoRepositoryJdkSerializationITest.java +++ b/spring-session-data-mongodb/src/integration-test/java/org/springframework/session/data/mongo/MongoRepositoryJdkSerializationITest.java @@ -38,7 +38,7 @@ * @author Greg Turnquist */ @ContextConfiguration -public class MongoRepositoryJdkSerializationITest extends AbstractMongoRepositoryITest { +class MongoRepositoryJdkSerializationITest extends AbstractMongoRepositoryITest { @Test void findByDeletedSecurityPrincipalNameReload() throws Exception { diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/JacksonMongoSessionConverterTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/JacksonMongoSessionConverterTests.java index a47cb2d55..918693015 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/JacksonMongoSessionConverterTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/JacksonMongoSessionConverterTests.java @@ -35,7 +35,7 @@ * @author Jakub Kubrynski * @author Greg Turnquist */ -public class JacksonMongoSessionConverterTests extends AbstractMongoSessionConverterTests { +class JacksonMongoSessionConverterTests extends AbstractMongoSessionConverterTests { JacksonMongoSessionConverter mongoSessionConverter = new JacksonMongoSessionConverter(); diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/JdkMongoSessionConverterTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/JdkMongoSessionConverterTests.java index 52c369f5e..f809f12b6 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/JdkMongoSessionConverterTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/JdkMongoSessionConverterTests.java @@ -30,7 +30,7 @@ * @author Rob Winch * @author Greg Turnquist */ -public class JdkMongoSessionConverterTests extends AbstractMongoSessionConverterTests { +class JdkMongoSessionConverterTests extends AbstractMongoSessionConverterTests { Duration inactiveInterval = Duration.ofMinutes(30); diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTests.java index 83ad387f2..2e966f52d 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTests.java @@ -53,7 +53,7 @@ * @author Greg Turnquist */ @ExtendWith(MockitoExtension.class) -public class MongoIndexedSessionRepositoryTests { +class MongoIndexedSessionRepositoryTests { @Mock private AbstractMongoSessionConverter converter; diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoSessionTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoSessionTests.java index d26c98a05..7ce9918e2 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoSessionTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoSessionTests.java @@ -27,7 +27,7 @@ * @author Rob Winch * @author Greg Turnquist */ -public class MongoSessionTests { +class MongoSessionTests { @Test void isExpiredWhenIntervalNegativeThenFalse() { diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTests.java index f101f0d12..c3cce0298 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTests.java @@ -56,7 +56,7 @@ * @author Greg Turnquist */ @ExtendWith(MockitoExtension.class) -public class ReactiveMongoSessionRepositoryTests { +class ReactiveMongoSessionRepositoryTests { @Mock private AbstractMongoSessionConverter converter; diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTests.java index e638d0317..742c9a1a4 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/http/MongoHttpSessionConfigurationTests.java @@ -54,7 +54,7 @@ * @author Eddú Meléndez * @author Vedran Pavic */ -public class MongoHttpSessionConfigurationTests { +class MongoHttpSessionConfigurationTests { private static final String COLLECTION_NAME = "testSessions"; diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTests.java index 7a5e1a5e4..d8c5ec1b4 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/config/annotation/web/reactive/ReactiveMongoWebSessionConfigurationTests.java @@ -61,7 +61,7 @@ * @author Greg Turnquist * @author Vedran Pavic */ -public class ReactiveMongoWebSessionConfigurationTests { +class ReactiveMongoWebSessionConfigurationTests { private AnnotationConfigApplicationContext context; diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationClassPathXmlApplicationContextTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationClassPathXmlApplicationContextTests.java index 8baeb5153..103621b60 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationClassPathXmlApplicationContextTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationClassPathXmlApplicationContextTests.java @@ -41,7 +41,7 @@ */ @ExtendWith(SpringExtension.class) @ContextConfiguration -public class RedisHttpSessionConfigurationClassPathXmlApplicationContextTests { +class RedisHttpSessionConfigurationClassPathXmlApplicationContextTests { // gh-318 @Test diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationXmlCustomExpireTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationXmlCustomExpireTests.java index 464be4e70..69505edc5 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationXmlCustomExpireTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationXmlCustomExpireTests.java @@ -38,7 +38,7 @@ @ExtendWith(SpringExtension.class) @ContextConfiguration @WebAppConfiguration -public class RedisHttpSessionConfigurationXmlCustomExpireTests { +class RedisHttpSessionConfigurationXmlCustomExpireTests { @Test void contextLoads() { diff --git a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationXmlTests.java b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationXmlTests.java index 9454b5ec6..ff619a548 100644 --- a/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationXmlTests.java +++ b/spring-session-data-redis/src/test/java/org/springframework/session/data/redis/config/annotation/web/http/RedisHttpSessionConfigurationXmlTests.java @@ -38,7 +38,7 @@ @ExtendWith(SpringExtension.class) @ContextConfiguration @WebAppConfiguration -public class RedisHttpSessionConfigurationXmlTests { +class RedisHttpSessionConfigurationXmlTests { @Test void contextLoads() { diff --git a/spring-session-docs/modules/ROOT/examples/java/docs/HttpSessionConfigurationNoOpConfigureRedisActionXmlTests.java b/spring-session-docs/modules/ROOT/examples/java/docs/HttpSessionConfigurationNoOpConfigureRedisActionXmlTests.java index 080c4c750..7105b3a64 100644 --- a/spring-session-docs/modules/ROOT/examples/java/docs/HttpSessionConfigurationNoOpConfigureRedisActionXmlTests.java +++ b/spring-session-docs/modules/ROOT/examples/java/docs/HttpSessionConfigurationNoOpConfigureRedisActionXmlTests.java @@ -41,7 +41,7 @@ @ExtendWith(SpringExtension.class) @ContextConfiguration @WebAppConfiguration -public class HttpSessionConfigurationNoOpConfigureRedisActionXmlTests { +class HttpSessionConfigurationNoOpConfigureRedisActionXmlTests { @Autowired SessionRepositoryFilter filter; diff --git a/spring-session-docs/modules/ROOT/examples/java/docs/IndexDocTests.java b/spring-session-docs/modules/ROOT/examples/java/docs/IndexDocTests.java index 886f59706..f213e68ea 100644 --- a/spring-session-docs/modules/ROOT/examples/java/docs/IndexDocTests.java +++ b/spring-session-docs/modules/ROOT/examples/java/docs/IndexDocTests.java @@ -64,11 +64,11 @@ void repositoryDemo() { } // tag::repository-demo[] - public class RepositoryDemo { + class RepositoryDemo { private SessionRepository repository; // <1> - public void demo() { + void demo() { S toSave = this.repository.createSession(); // <2> // <3> @@ -98,11 +98,11 @@ void expireRepositoryDemo() { } // tag::expire-repository-demo[] - public class ExpiringRepositoryDemo { + class ExpiringRepositoryDemo { private SessionRepository repository; // <1> - public void demo() { + void demo() { S toSave = this.repository.createSession(); // <2> // ... toSave.setMaxInactiveInterval(Duration.ofSeconds(30)); // <3> diff --git a/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute/src/test/java/sample/JdbcJsonAttributeTests.java b/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute/src/test/java/sample/JdbcJsonAttributeTests.java index b7e17e65c..0a1ee9cb3 100644 --- a/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute/src/test/java/sample/JdbcJsonAttributeTests.java +++ b/spring-session-samples/spring-session-sample-boot-jdbc-json-attribute/src/test/java/sample/JdbcJsonAttributeTests.java @@ -27,7 +27,7 @@ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @AutoConfigureMockMvc @Import(TestContainersConfig.class) -public class JdbcJsonAttributeTests { +class JdbcJsonAttributeTests { @Autowired MockMvc mvc; diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/test/java/org/springframework/session/mongodb/examples/AttributeTests.java b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/test/java/org/springframework/session/mongodb/examples/AttributeTests.java index b5aed7dcc..a284fd955 100644 --- a/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/test/java/org/springframework/session/mongodb/examples/AttributeTests.java +++ b/spring-session-samples/spring-session-sample-boot-mongodb-reactive/src/test/java/org/springframework/session/mongodb/examples/AttributeTests.java @@ -37,7 +37,7 @@ * @author Yanming Zhou */ @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) -public class AttributeTests { +class AttributeTests { @LocalServerPort int port; diff --git a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/test/java/org/springframework/session/mongodb/examples/BootTests.java b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/test/java/org/springframework/session/mongodb/examples/BootTests.java index c208098aa..7869dd9fa 100644 --- a/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/test/java/org/springframework/session/mongodb/examples/BootTests.java +++ b/spring-session-samples/spring-session-sample-boot-mongodb-traditional/src/test/java/org/springframework/session/mongodb/examples/BootTests.java @@ -42,7 +42,7 @@ */ @AutoConfigureMockMvc @SpringBootTest -public class BootTests { +class BootTests { @Autowired private MockMvc mockMvc; From d9890245c25e30c220af8922c284dcd6bdaddd81 Mon Sep 17 00:00:00 2001 From: dlscjf151 Date: Wed, 21 Aug 2024 09:05:19 -0300 Subject: [PATCH 463/579] MongoSession should be constructed using defaultMaxInactiveInterval Closes gh-2910 --- .../data/mongo/MongoIndexedSessionRepository.java | 4 +--- .../data/mongo/ReactiveMongoSessionRepository.java | 3 ++- .../data/mongo/MongoIndexedSessionRepositoryTests.java | 10 ++++++++++ .../mongo/ReactiveMongoSessionRepositoryTests.java | 9 +++++++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java index 38819de89..af56f8cce 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/MongoIndexedSessionRepository.java @@ -92,9 +92,7 @@ public MongoIndexedSessionRepository(MongoOperations mongoOperations) { @Override public MongoSession createSession() { - MongoSession session = new MongoSession(this.sessionIdGenerator); - - session.setMaxInactiveInterval(this.defaultMaxInactiveInterval); + MongoSession session = new MongoSession(this.sessionIdGenerator, this.defaultMaxInactiveInterval.toSeconds()); publishEvent(new SessionCreatedEvent(this, session)); diff --git a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java index 695f9c652..a16aebae8 100644 --- a/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java +++ b/spring-session-data-mongodb/src/main/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepository.java @@ -100,7 +100,8 @@ public ReactiveMongoSessionRepository(ReactiveMongoOperations mongoOperations) { public Mono createSession() { // @formatter:off return Mono.fromSupplier(() -> this.sessionIdGenerator.generate()) - .map(MongoSession::new) + .zipWith(Mono.just(this.defaultMaxInactiveInterval.toSeconds())) + .map((tuple) -> new MongoSession(tuple.getT1(), tuple.getT2())) .doOnNext((mongoSession) -> mongoSession.setMaxInactiveInterval(this.defaultMaxInactiveInterval)) .doOnNext( (mongoSession) -> mongoSession.setSessionIdGenerator(this.sessionIdGenerator)) diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTests.java index 2e966f52d..ab555e133 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/MongoIndexedSessionRepositoryTests.java @@ -16,6 +16,8 @@ package org.springframework.session.data.mongo; +import java.time.Duration; +import java.time.Instant; import java.util.Collections; import java.util.Map; import java.util.UUID; @@ -254,6 +256,14 @@ void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { assertThat(newSessionId).isEqualTo("456"); } + @Test + void createSessionWhenMaxInactiveIntervalSetThenUse() { + this.repository.setDefaultMaxInactiveInterval(Duration.ofSeconds(60)); + MongoSession session = this.repository.createSession(); + Instant now = Instant.now(); + assertThat(session.getExpireAt()).isBetween(now.plusSeconds(59), Instant.now().plusSeconds(61)); + } + static class FixedSessionIdGenerator implements SessionIdGenerator { private final String id; diff --git a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTests.java b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTests.java index c3cce0298..193a2c860 100644 --- a/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTests.java +++ b/spring-session-data-mongodb/src/test/java/org/springframework/session/data/mongo/ReactiveMongoSessionRepositoryTests.java @@ -17,6 +17,7 @@ package org.springframework.session.data.mongo; import java.time.Duration; +import java.time.Instant; import java.util.UUID; import com.mongodb.BasicDBObject; @@ -259,4 +260,12 @@ void findByIdWhenChangeSessionIdThenUsesSessionIdGenerator() { }).verifyComplete(); } + @Test + void createSessionWhenMaxInactiveIntervalSetThenUse() { + this.repository.setDefaultMaxInactiveInterval(Duration.ofSeconds(60)); + MongoSession session = this.repository.createSession().block(); + Instant now = Instant.now(); + assertThat(session.getExpireAt()).isBetween(now.plusSeconds(59), Instant.now().plusSeconds(61)); + } + } From ce4226c6d098f739dd2133ce30d1e0dd881378ba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:07:47 +0000 Subject: [PATCH 464/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.20 to 4.33.21. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.20...build-info-gradle-extractor-4.33.21) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 1b3fd0a2f..2386a04bb 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.20' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.21' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From d76aa9b5c0b8f90f0fe2634cb3f7fa3d32322b03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:33:18 +0000 Subject: [PATCH 465/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.3.2 to 6.3.3. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.3.2...6.3.3) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a00aadd59..e1fee6141 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.2" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.3" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From f597e9654534a1a521ecf6944cb20b5a927ac0fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Aug 2024 03:33:35 +0000 Subject: [PATCH 466/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.20 to 4.33.21. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.20...build-info-gradle-extractor-4.33.21) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 1b3fd0a2f..2386a04bb 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.20' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.21' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 977b99b69b9e6f67105ed430e751383f1e2f231d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 03:24:18 +0000 Subject: [PATCH 467/579] Bump org-springframework-boot from 3.2.8 to 3.2.9 Bumps `org-springframework-boot` from 3.2.8 to 3.2.9. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.8 to 3.2.9 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.8...v3.2.9) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.8 to 3.2.9 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.8...v3.2.9) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2fd276ca7..e093d1c76 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.3" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.16" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.8" +org-springframework-boot = "3.2.9" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 2a1be4a90016e74ce55178c1936525e3eb030067 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 03:42:43 +0000 Subject: [PATCH 468/579] Bump org.postgresql:postgresql from 42.7.3 to 42.7.4 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.3 to 42.7.4. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.3...REL42.7.4) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e6aad7437..cf6459ca8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -50,7 +50,7 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "org-mongodb" } -org-postgresql = "org.postgresql:postgresql:42.7.3" +org-postgresql = "org.postgresql:postgresql:42.7.4" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" From 23beb0fb0a085e851fbda8ea370d8e731949ce08 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 03:42:15 +0000 Subject: [PATCH 469/579] Bump org-springframework-boot from 3.3.2 to 3.3.3 Bumps `org-springframework-boot` from 3.3.2 to 3.3.3. Updates `org.springframework.boot:spring-boot-dependencies` from 3.3.2 to 3.3.3 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.2...v3.3.3) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.3.2 to 3.3.3 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.2...v3.3.3) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cf6459ca8..43b88f47e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.3.2" +org-springframework-boot = "3.3.3" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From d0579d9ee65bd1fc53b9d4fc83012eb86b0fca90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 04:04:08 +0000 Subject: [PATCH 470/579] Bump org-springframework-boot from 3.2.8 to 3.2.9 Bumps `org-springframework-boot` from 3.2.8 to 3.2.9. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.8 to 3.2.9 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.8...v3.2.9) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.8 to 3.2.9 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.8...v3.2.9) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e1fee6141..98b7f740d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.8" +org-springframework-boot = "3.2.9" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 0b149d0e1402bcff5707be56a6a851b8556b650e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Aug 2024 04:04:24 +0000 Subject: [PATCH 471/579] Bump org.postgresql:postgresql from 42.7.3 to 42.7.4 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.3 to 42.7.4. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.3...REL42.7.4) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 98b7f740d..ae356954f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -50,7 +50,7 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "org-mongodb" } -org-postgresql = "org.postgresql:postgresql:42.7.3" +org-postgresql = "org.postgresql:postgresql:42.7.4" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" From 31e579945c0cdd648bf8f7684a57ac1c159314ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 03:25:57 +0000 Subject: [PATCH 472/579] Bump jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api Bumps [jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api](https://github.com/eclipse-ee4j/jstl-api) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/eclipse-ee4j/jstl-api/releases) - [Commits](https://github.com/eclipse-ee4j/jstl-api/commits) --- updated-dependencies: - dependency-name: jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 43b88f47e..bcb706653 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,7 @@ io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" -jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.1" +jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2" jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" } mysql-mysql-connector-java = "mysql:mysql-connector-java:8.0.33" From 923eda8e20f22a87147bbae6d68282c91d2c3ae0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 03:28:50 +0000 Subject: [PATCH 473/579] Bump jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api Bumps [jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api](https://github.com/eclipse-ee4j/jstl-api) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/eclipse-ee4j/jstl-api/releases) - [Commits](https://github.com/eclipse-ee4j/jstl-api/commits) --- updated-dependencies: - dependency-name: jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ae356954f..9aa77aa75 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,7 @@ io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" -jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.1" +jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2" jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" } mysql-mysql-connector-java = "mysql:mysql-connector-java:8.0.33" From d7c1b85454cd7e5d5d1e736422860e4ce69d7104 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 03:41:35 +0000 Subject: [PATCH 474/579] Bump jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api Bumps [jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api](https://github.com/eclipse-ee4j/jstl-api) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/eclipse-ee4j/jstl-api/releases) - [Commits](https://github.com/eclipse-ee4j/jstl-api/commits) --- updated-dependencies: - dependency-name: jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e093d1c76..e2bbd7ea9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -30,7 +30,7 @@ io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" -jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.1" +jakarta-servlet-jsp-jstl-jakarta-servlet-jsp-jstl-api = "jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api:3.0.2" jakarta-websocket-jakarta-websocket-api = { module = "jakarta.websocket:jakarta.websocket-api", version.ref = "jakarta-websocket" } jakarta-websocket-jakarta-websocket-client-api = { module = "jakarta.websocket:jakarta.websocket-client-api", version.ref = "jakarta-websocket" } mysql-mysql-connector-java = "mysql:mysql-connector-java:8.0.33" From 02215a8c4b08b895fed2c35f5f331bd9e90e65da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 6 Sep 2024 03:23:49 +0000 Subject: [PATCH 475/579] Bump org-mongodb from 4.11.3 to 4.11.4 Bumps `org-mongodb` from 4.11.3 to 4.11.4. Updates `org.mongodb:mongodb-driver-core` from 4.11.3 to 4.11.4 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.3...r4.11.4) Updates `org.mongodb:mongodb-driver-reactivestreams` from 4.11.3 to 4.11.4 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.3...r4.11.4) Updates `org.mongodb:mongodb-driver-sync` from 4.11.3 to 4.11.4 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r4.11.3...r4.11.4) --- updated-dependencies: - dependency-name: org.mongodb:mongodb-driver-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-reactivestreams dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-sync dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e2bbd7ea9..1000e3ac5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.5.0" -org-mongodb = "4.11.3" +org-mongodb = "4.11.4" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.16" org-testcontainers = "1.18.3" From 335a96b5ad1c9ecb131c87bffd1d5244bfe81d4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:24:35 +0000 Subject: [PATCH 476/579] Bump ch-qos-logback from 1.5.7 to 1.5.8 Bumps `ch-qos-logback` from 1.5.7 to 1.5.8. Updates `ch.qos.logback:logback-classic` from 1.5.7 to 1.5.8 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.7...v_1.5.8) Updates `ch.qos.logback:logback-core` from 1.5.7 to 1.5.8 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.7...v_1.5.8) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bcb706653..98f5d1e64 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.7" +ch-qos-logback = "1.5.8" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 8e0427018033629457a4cabdb76034a573672c09 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 03:36:18 +0000 Subject: [PATCH 477/579] Bump ch-qos-logback from 1.5.7 to 1.5.8 Bumps `ch-qos-logback` from 1.5.7 to 1.5.8. Updates `ch.qos.logback:logback-classic` from 1.5.7 to 1.5.8 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.7...v_1.5.8) Updates `ch.qos.logback:logback-core` from 1.5.7 to 1.5.8 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.7...v_1.5.8) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9aa77aa75..0b778cfc3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.7" +ch-qos-logback = "1.5.8" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From af5a530019d9d111ae168726090815dbe741796b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 03:33:24 +0000 Subject: [PATCH 478/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.21 to 4.33.22. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.21...build-info-gradle-extractor-4.33.22) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 2386a04bb..87d9cec4c 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.21' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.22' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 8fe9ba33322a9c3d0a8f3efea8b643b0e1b00239 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 03:48:22 +0000 Subject: [PATCH 479/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.21 to 4.33.22. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.21...build-info-gradle-extractor-4.33.22) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 2386a04bb..87d9cec4c 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.21' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.22' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From 7b37e003ac8bace7c7a61bbfbb7144a5eae4e27f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:24:48 +0000 Subject: [PATCH 480/579] Bump io.projectreactor:reactor-bom from 2023.0.9 to 2023.0.10 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.9 to 2023.0.10. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.9...2023.0.10) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 98f5d1e64..d2765539a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.10" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 679be5f64a3cd1d8b63b4cb223f7908cc57bb13b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:25:11 +0000 Subject: [PATCH 481/579] Bump io.projectreactor:reactor-core from 3.6.9 to 3.6.10 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.9 to 3.6.10. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.9...v3.6.10) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 87d9cec4c..c4105ca10 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.9' + implementation 'io.projectreactor:reactor-core:3.6.10' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From fa2c1e2e60c501ab4f379530d023ddfd5599e61c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:41:22 +0000 Subject: [PATCH 482/579] Bump io.projectreactor:reactor-bom from 2023.0.9 to 2023.0.10 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.9 to 2023.0.10. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.9...2023.0.10) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0b778cfc3..a94e41238 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.10" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 15662d53decd1d8a1b28649fcb8ca97774a8bda6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:41:34 +0000 Subject: [PATCH 483/579] Bump io.projectreactor:reactor-core from 3.6.9 to 3.6.10 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.9 to 3.6.10. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.9...v3.6.10) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 87d9cec4c..c4105ca10 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.9' + implementation 'io.projectreactor:reactor-core:3.6.10' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From bb247db6594ddff8675e7fe8da41b39ab81bac03 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 03:44:11 +0000 Subject: [PATCH 484/579] Bump io.projectreactor:reactor-bom from 2023.0.9 to 2023.0.10 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.9 to 2023.0.10. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.9...2023.0.10) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1000e3ac5..985a572cf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.10.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.0.1" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.2.7.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.9" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.10" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 4b58eacbc5d841fc80917e4c1643b43e7b5b7cf7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 03:09:55 +0000 Subject: [PATCH 485/579] Bump org.springframework:spring-framework-bom from 6.1.12 to 6.1.13 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.12 to 6.1.13. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.12...v6.1.13) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a94e41238..7a87b6fae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.3" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.13" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 4f4f49aa6d1968169de30c4dce2dc8a9be3bb517 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Sep 2024 03:58:00 +0000 Subject: [PATCH 486/579] Bump org.springframework:spring-framework-bom from 6.1.12 to 6.1.13 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.12 to 6.1.13. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.12...v6.1.13) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 985a572cf..c9329aa3e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.9" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.6" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.12" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.13" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 7d2608d50c72ea288bbab4d67dd2162a6d04b59f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 03:11:16 +0000 Subject: [PATCH 487/579] Bump org.springframework.data:spring-data-bom from 2023.1.9 to 2023.1.10 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2023.1.9 to 2023.1.10. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2023.1.9...2023.1.10) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c9329aa3e..f2ce74c80 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.9" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.10" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.6" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.13" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From d824506af57845847d70e45b5ca39f05c83e3a04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 03:12:53 +0000 Subject: [PATCH 488/579] Bump org.springframework.data:spring-data-bom from 2024.0.3 to 2024.0.4 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.3 to 2024.0.4. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.3...2024.0.4) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d2765539a..bf2c7806d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.4" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 6c0c8277ae6fd869bc76dce6e754550e8fe71ba5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Sep 2024 03:26:57 +0000 Subject: [PATCH 489/579] Bump org.springframework.data:spring-data-bom from 2024.0.3 to 2024.0.4 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.3 to 2024.0.4. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.3...2024.0.4) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7a87b6fae..f17574098 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.3" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.4" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.3" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.13" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From f6f4c8652e03257420bc35f44492c5dc5d4121a9 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Wed, 18 Sep 2024 22:06:13 -0500 Subject: [PATCH 490/579] Bump Spring Security 6.4.0-M4 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bf2c7806d..48e1b99ec 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.4" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-M4" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From b0be6a26c3bbc1ca31a5f87c7337f3f046442562 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Thu, 26 Sep 2024 09:16:01 -0500 Subject: [PATCH 491/579] Update to 2022-CU14-ubuntu-22.04 Closes gh-3215 --- .../org/springframework/session/jdbc/DatabaseContainers.java | 2 +- .../integration-test/resources/container-license-acceptance.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java index 372076236..4b7cc91a6 100644 --- a/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java +++ b/spring-session-jdbc/src/integration-test/java/org/springframework/session/jdbc/DatabaseContainers.java @@ -55,7 +55,7 @@ static JdbcDatabaseContainer postgreSql() { } static JdbcDatabaseContainer sqlServer() { - return new MSSQLServerContainerProvider().newInstance("2019-CU17-ubuntu-20.04"); + return new MSSQLServerContainerProvider().newInstance("2022-CU14-ubuntu-22.04"); } } diff --git a/spring-session-jdbc/src/integration-test/resources/container-license-acceptance.txt b/spring-session-jdbc/src/integration-test/resources/container-license-acceptance.txt index 265b9de8f..85d62c3fb 100644 --- a/spring-session-jdbc/src/integration-test/resources/container-license-acceptance.txt +++ b/spring-session-jdbc/src/integration-test/resources/container-license-acceptance.txt @@ -1,2 +1,2 @@ ibmcom/db2:11.5.7.0a -mcr.microsoft.com/mssql/server:2019-CU17-ubuntu-20.04 +mcr.microsoft.com/mssql/server:2022-CU14-ubuntu-22.04 From 66c6242c17a366f4ddf808c00b04d5cc27f7d124 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 15:57:30 +0000 Subject: [PATCH 492/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.4.0-M4 to 6.4.0-SNAPSHOT. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/commits) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 48e1b99ec..bf2c7806d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.4" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-M4" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 031d9a379ba295caa67ad09f74fa7ec324acb5cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 15:59:57 +0000 Subject: [PATCH 493/579] Bump org-springframework-boot from 3.2.9 to 3.2.10 Bumps `org-springframework-boot` from 3.2.9 to 3.2.10. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.9 to 3.2.10 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.9...v3.2.10) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.9 to 3.2.10 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.9...v3.2.10) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f2ce74c80..0b90ec4be 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "4.11.4" org-seleniumhq-selenium = "4.8.3" org-slf4j = "2.0.16" org-testcontainers = "1.18.3" -org-springframework-boot = "3.2.9" +org-springframework-boot = "3.2.10" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From b5ce5b6332dd619200915bb1b45870f3f5f569ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:00:01 +0000 Subject: [PATCH 494/579] Bump org.junit:junit-bom from 5.10.3 to 5.10.4 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.3 to 5.10.4. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.3...r5.10.4) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index c4105ca10..5820c0c98 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -76,7 +76,7 @@ dependencies { implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin - testImplementation platform('org.junit:junit-bom:5.10.3') + testImplementation platform('org.junit:junit-bom:5.10.4') testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f17574098..4a1d39bd1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.3" -org-junit-junit-bom = "org.junit:junit-bom:5.10.3" +org-junit-junit-bom = "org.junit:junit-bom:5.10.4" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } From efe7b32d903c743aef5b349eaf3291791815ebff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:00:12 +0000 Subject: [PATCH 495/579] Bump org.junit:junit-bom from 5.10.3 to 5.10.4 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.3 to 5.10.4. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.3...r5.10.4) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index c4105ca10..5820c0c98 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -76,7 +76,7 @@ dependencies { implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin - testImplementation platform('org.junit:junit-bom:5.10.3') + testImplementation platform('org.junit:junit-bom:5.10.4') testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bf2c7806d..5b00fe872 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.3" -org-junit-junit-bom = "org.junit:junit-bom:5.10.3" +org-junit-junit-bom = "org.junit:junit-bom:5.10.4" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } From a25042e3175e87c1a63975d983927ea7c319c9df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 15:59:54 +0000 Subject: [PATCH 496/579] Bump org-springframework-boot from 3.2.9 to 3.2.10 Bumps `org-springframework-boot` from 3.2.9 to 3.2.10. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.9 to 3.2.10 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.9...v3.2.10) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.9 to 3.2.10 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.9...v3.2.10) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4a1d39bd1..6d081aeb6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.9" +org-springframework-boot = "3.2.10" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 56f32189fb6850df0b8a890d9ea559a3f69d56e5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Sep 2024 16:10:15 +0000 Subject: [PATCH 497/579] Bump org-springframework-boot from 3.3.3 to 3.3.4 Bumps `org-springframework-boot` from 3.3.3 to 3.3.4. Updates `org.springframework.boot:spring-boot-dependencies` from 3.3.3 to 3.3.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.3...v3.3.4) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.3.3 to 3.3.4 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.3...v3.3.4) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5b00fe872..b5bfc17d9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.3.3" +org-springframework-boot = "3.3.4" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From e5d10f4029ee955b613495cd063fd6c689d1ac8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 03:24:13 +0000 Subject: [PATCH 498/579] Bump org.junit:junit-bom from 5.10.4 to 5.10.5 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.4 to 5.10.5. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.4...r5.10.5) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 5820c0c98..44dd2b445 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -76,7 +76,7 @@ dependencies { implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin - testImplementation platform('org.junit:junit-bom:5.10.4') + testImplementation platform('org.junit:junit-bom:5.10.5') testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b5bfc17d9..796731e03 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.3" -org-junit-junit-bom = "org.junit:junit-bom:5.10.4" +org-junit-junit-bom = "org.junit:junit-bom:5.10.5" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } From c00b1e00a71d0c121a9c66facb19401ca00ae5cb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Oct 2024 03:59:42 +0000 Subject: [PATCH 499/579] Bump org.junit:junit-bom from 5.10.4 to 5.10.5 Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.4 to 5.10.5. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.4...r5.10.5) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 5820c0c98..44dd2b445 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -76,7 +76,7 @@ dependencies { implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin - testImplementation platform('org.junit:junit-bom:5.10.4') + testImplementation platform('org.junit:junit-bom:5.10.5') testImplementation "org.junit.jupiter:junit-jupiter-api" testImplementation "org.junit.jupiter:junit-jupiter-params" testImplementation "org.junit.jupiter:junit-jupiter-engine" diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6d081aeb6..215b28243 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -44,7 +44,7 @@ org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" org-hsqldb = "org.hsqldb:hsqldb:2.7.3" -org-junit-junit-bom = "org.junit:junit-bom:5.10.4" +org-junit-junit-bom = "org.junit:junit-bom:5.10.5" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } From 10239b50f97ba2ecc44f35df456f430c924bf627 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 03:11:29 +0000 Subject: [PATCH 500/579] Bump ch-qos-logback from 1.5.8 to 1.5.9 Bumps `ch-qos-logback` from 1.5.8 to 1.5.9. Updates `ch.qos.logback:logback-classic` from 1.5.8 to 1.5.9 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.8...v_1.5.9) Updates `ch.qos.logback:logback-core` from 1.5.8 to 1.5.9 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.8...v_1.5.9) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 796731e03..3c259ea47 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.8" +ch-qos-logback = "1.5.9" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From ba3bf4aa13710ebc07ef56ee812048f9d06fe18e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 04:02:03 +0000 Subject: [PATCH 501/579] Bump ch-qos-logback from 1.5.8 to 1.5.9 Bumps `ch-qos-logback` from 1.5.8 to 1.5.9. Updates `ch.qos.logback:logback-classic` from 1.5.8 to 1.5.9 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.8...v_1.5.9) Updates `ch.qos.logback:logback-core` from 1.5.8 to 1.5.9 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.8...v_1.5.9) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 215b28243..5fd0d0b26 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.8" +ch-qos-logback = "1.5.9" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 92b195c192b486f43433261ac93a45ec1ea58e39 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 03:19:10 +0000 Subject: [PATCH 502/579] Bump ch-qos-logback from 1.5.9 to 1.5.10 Bumps `ch-qos-logback` from 1.5.9 to 1.5.10. Updates `ch.qos.logback:logback-classic` from 1.5.9 to 1.5.10 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.9...v_1.5.10) Updates `ch.qos.logback:logback-core` from 1.5.9 to 1.5.10 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.9...v_1.5.10) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3c259ea47..024eac7a7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.9" +ch-qos-logback = "1.5.10" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From efcfd7daac9e2bea0060bfb55a330ac816f9c794 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 15 Oct 2024 13:22:54 +0000 Subject: [PATCH 503/579] Release 3.2.6 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a28cd95b9..8ca21d3c7 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.6-SNAPSHOT +version=3.2.6 From 224bc14dd204ac55dc88e8f1bd26c0d8c5374287 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 15 Oct 2024 13:56:42 +0000 Subject: [PATCH 504/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 8ca21d3c7..e4b66c44e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.2.6 +version=3.2.7-SNAPSHOT From 781813eabdea7c4486f1a15ce07c7e6ecb2793ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:39:08 +0000 Subject: [PATCH 505/579] Bump io.projectreactor:reactor-bom from 2023.0.10 to 2023.0.11 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.10 to 2023.0.11. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.10...2023.0.11) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 024eac7a7..5fd4de8e7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.10" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.11" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 2327e3f30191aaaa9a332d76da9b8ca04252c936 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:39:19 +0000 Subject: [PATCH 506/579] Bump io.projectreactor:reactor-core from 3.6.10 to 3.6.11 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.10 to 3.6.11. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.10...v3.6.11) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 44dd2b445..eca5f8d6d 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.10' + implementation 'io.projectreactor:reactor-core:3.6.11' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From 7c65eb568d003f3baada58149aff1d13b4f8993d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:38:52 +0000 Subject: [PATCH 507/579] Bump ch-qos-logback from 1.5.10 to 1.5.11 Bumps `ch-qos-logback` from 1.5.10 to 1.5.11. Updates `ch.qos.logback:logback-classic` from 1.5.10 to 1.5.11 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.10...v_1.5.11) Updates `ch.qos.logback:logback-core` from 1.5.10 to 1.5.11 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.10...v_1.5.11) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5fd4de8e7..5786ebcc1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.10" +ch-qos-logback = "1.5.11" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From f2abfab81e230fea3e98d49d8a66f70896508b56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:51:02 +0000 Subject: [PATCH 508/579] Bump ch-qos-logback from 1.5.9 to 1.5.11 Bumps `ch-qos-logback` from 1.5.9 to 1.5.11. Updates `ch.qos.logback:logback-classic` from 1.5.9 to 1.5.11 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.9...v_1.5.11) Updates `ch.qos.logback:logback-core` from 1.5.9 to 1.5.11 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.9...v_1.5.11) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5fd0d0b26..6df691509 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.9" +ch-qos-logback = "1.5.11" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From d89faecf0d4ca34d5fb517502704487b91f3d4d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:51:27 +0000 Subject: [PATCH 509/579] Bump io.projectreactor:reactor-bom from 2023.0.10 to 2023.0.11 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.10 to 2023.0.11. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.10...2023.0.11) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6df691509..5e4ebb4dc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.10" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.11" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From c80bae94ff0f6f542ca5240dfb4893c1afbb4bee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Oct 2024 03:51:15 +0000 Subject: [PATCH 510/579] Bump io.projectreactor:reactor-core from 3.6.10 to 3.6.11 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.10 to 3.6.11. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.10...v3.6.11) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 44dd2b445..eca5f8d6d 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.10' + implementation 'io.projectreactor:reactor-core:3.6.11' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From aaab603d08b3822a12e20e8a830bc83e2698e50d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Oct 2024 03:16:24 +0000 Subject: [PATCH 511/579] Bump org.springframework:spring-framework-bom from 6.1.13 to 6.1.14 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.13 to 6.1.14. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.13...v6.1.14) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5e4ebb4dc..35f127357 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.4" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.3" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.13" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.14" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From cc1ea15e996c4476ebbc3e4d2e03bdb6988816f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 03:09:19 +0000 Subject: [PATCH 512/579] Bump org.springframework.data:spring-data-bom from 2024.0.4 to 2024.0.5 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.4 to 2024.0.5. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.4...2024.0.5) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5786ebcc1..3dc0d91ad 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.4" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.5" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 5933175c546fdf12d4cbae9584b03fb4494e8797 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 03:27:49 +0000 Subject: [PATCH 513/579] Bump org.springframework.data:spring-data-bom from 2024.0.4 to 2024.0.5 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.4 to 2024.0.5. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.4...2024.0.5) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 35f127357..ded6a0562 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.4" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.5" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.3" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.14" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 832aa48dbce8943ead4b6d0eb85c85551b66298f Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Mon, 21 Oct 2024 14:59:18 -0500 Subject: [PATCH 514/579] Update to Spring Data 2023.1.11 Closes gh-3239 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0b90ec4be..e3938ecd6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.10" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.11" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.6" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.13" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 2600355b7c8277b5d6c85bed55eb6b15b7688411 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:00:16 -0500 Subject: [PATCH 515/579] Update to Spring Security 6.2.7 Closes gh-3240 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e3938ecd6..c0e0bfa28 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.11" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.6" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.7" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.13" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 0592935be8fb542bcf4c18836340efe49b926c86 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Mon, 21 Oct 2024 15:01:58 -0500 Subject: [PATCH 516/579] Update to Spring Framework 6.1.14 Closes gh-3241 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c0e0bfa28..4211d0abb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2023.1.11" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.2.7" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.13" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.14" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From aedc0248c0a5d023caef6fc8e2452ee7419aa00e Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 21 Oct 2024 20:28:54 +0000 Subject: [PATCH 517/579] Release 3.3.3 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index b68391b42..9708f28e0 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.3-SNAPSHOT +version=3.3.3 From e02b9d5d24d28a3cc7df68eeccff3ae08c5b9afb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 21 Oct 2024 20:50:46 +0000 Subject: [PATCH 518/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 9708f28e0..aabd6e831 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.3.3 +version=3.3.4-SNAPSHOT From bea6b6b62ebc47ee2ca424d69fe208dc90727bec Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 21 Oct 2024 21:03:16 +0000 Subject: [PATCH 519/579] Release 3.4.0-RC1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c79736f87..e9013c500 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-SNAPSHOT +version=3.4.0-RC1 From 439cd5c6f2e379c58b05d59d976784ba28dd85ce Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:20:43 -0500 Subject: [PATCH 520/579] Update to Spring Framework 6.2.0-RC2 Closes gh-3242 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3dc0d91ad..5716955d9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.5" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-M4" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-RC2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From bc5c0da731ff1d118e88f395a39e3cc64d30c1c0 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:21:09 -0500 Subject: [PATCH 521/579] Update to Spring Data 2024.1.0-RC1 Closes gh-3243 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5716955d9..cb3e0b388 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.5" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0-RC1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-RC2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From ffec2ebb5e2a6bf2cc8a19ebb0f601a67dbad136 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Mon, 21 Oct 2024 16:22:53 -0500 Subject: [PATCH 522/579] Update to Spring Security 6.4.0-RC1 Closes gh-3244 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cb3e0b388..00505c462 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0-RC1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-RC1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-RC2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 3874c16f6234bb3393adade6f80edbd5d8b80409 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Mon, 21 Oct 2024 17:00:28 -0500 Subject: [PATCH 523/579] Update to Mongodb 5.2.0 Closes gh-3245 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 00505c462..e7348b228 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.11.0" -org-mongodb = "5.0.1" +org-mongodb = "5.2.0" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" From 31eec380957332f2808f2c00f724bcc4dc0fd126 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 21 Oct 2024 22:14:26 +0000 Subject: [PATCH 524/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e9013c500..c79736f87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-RC1 +version=3.4.0-SNAPSHOT From a563f68054da3892ab539fafb4848e53517a52c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 03:21:06 +0000 Subject: [PATCH 525/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.4.0-RC1 to 6.4.0-SNAPSHOT. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/commits) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e7348b228..ba59d97a4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0-RC1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-RC1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-RC2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 5e2811ea264b1ae37c924a1cdc71ca8fdb1cdb25 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 04:01:03 +0000 Subject: [PATCH 526/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.3.3 to 6.3.4. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.3.3...6.3.4) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ded6a0562..9600114e2 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.5" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.3" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.4" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.14" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From ac3214943d7967460d98184f405e4554f0257b30 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Oct 2024 04:29:23 +0000 Subject: [PATCH 527/579] Bump org.springframework.data:spring-data-bom Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.1.0-RC1 to 2024.1.0-SNAPSHOT. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/commits) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ba59d97a4..6788fa91d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0-RC1" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0-SNAPSHOT" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-RC2" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From e8aa5387063159698fe7a90ad817dbea8ac9aa22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 03:15:44 +0000 Subject: [PATCH 528/579] Bump org-springframework-boot from 3.2.10 to 3.2.11 Bumps `org-springframework-boot` from 3.2.10 to 3.2.11. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.10 to 3.2.11 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.10...v3.2.11) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.10 to 3.2.11 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.10...v3.2.11) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9600114e2..ba921a569 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.10" +org-springframework-boot = "3.2.11" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From da9b1f8469f8c6ca0c68a533e62e79b998a47bdf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Oct 2024 03:18:01 +0000 Subject: [PATCH 529/579] Bump org-springframework-boot from 3.3.4 to 3.3.5 Bumps `org-springframework-boot` from 3.3.4 to 3.3.5. Updates `org.springframework.boot:spring-boot-dependencies` from 3.3.4 to 3.3.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.4...v3.3.5) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.3.4 to 3.3.5 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.4...v3.3.5) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6788fa91d..6f279cfdc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.2.0" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.3.4" +org-springframework-boot = "3.3.5" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 15de020fbb9bfd1e40d8cf180a2d4fce6befdf26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 03:20:29 +0000 Subject: [PATCH 530/579] Bump ch-qos-logback from 1.5.11 to 1.5.12 Bumps `ch-qos-logback` from 1.5.11 to 1.5.12. Updates `ch.qos.logback:logback-classic` from 1.5.11 to 1.5.12 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.11...v_1.5.12) Updates `ch.qos.logback:logback-core` from 1.5.11 to 1.5.12 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.11...v_1.5.12) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6f279cfdc..83de3fc67 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.11" +ch-qos-logback = "1.5.12" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 52c01da4631d03d48cfa6abf7887e078fa35ab3c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Oct 2024 03:36:30 +0000 Subject: [PATCH 531/579] Bump ch-qos-logback from 1.5.11 to 1.5.12 Bumps `ch-qos-logback` from 1.5.11 to 1.5.12. Updates `ch.qos.logback:logback-classic` from 1.5.11 to 1.5.12 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.11...v_1.5.12) Updates `ch.qos.logback:logback-core` from 1.5.11 to 1.5.12 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.11...v_1.5.12) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ba921a569..7fd2c4a11 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.11" +ch-qos-logback = "1.5.12" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 130b3388a30a8a56bcb4402fc25770cf55986e75 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 03:14:05 +0000 Subject: [PATCH 532/579] Bump org.hsqldb:hsqldb from 2.7.3 to 2.7.4 Bumps org.hsqldb:hsqldb from 2.7.3 to 2.7.4. --- updated-dependencies: - dependency-name: org.hsqldb:hsqldb dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7fd2c4a11..874c84050 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,7 +43,7 @@ org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.23. org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" -org-hsqldb = "org.hsqldb:hsqldb:2.7.3" +org-hsqldb = "org.hsqldb:hsqldb:2.7.4" org-junit-junit-bom = "org.junit:junit-bom:5.10.5" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } From 5972d049f7bd7403c8a439300f00cdb6618d7111 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 03:13:53 +0000 Subject: [PATCH 533/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.17.2 to 2.17.3 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.17.2 to 2.17.3. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 874c84050..b0250c736 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ org-springframework-boot = "3.2.11" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.2" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.2" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.4.0" From 03330bc5c935c45fa57f3d227966b7b83a4f88bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 03:25:14 +0000 Subject: [PATCH 534/579] Bump com.fasterxml.jackson:jackson-bom from 2.17.2 to 2.17.3 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.17.2 to 2.17.3. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.17.2...jackson-bom-2.17.3) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b0250c736..1acf0fdfd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ org-springframework-boot = "3.2.11" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.2" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.3" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" From e5ca70245e487a444035ac642c56b57873f57d62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 03:48:17 +0000 Subject: [PATCH 535/579] Bump org.hsqldb:hsqldb from 2.7.3 to 2.7.4 Bumps org.hsqldb:hsqldb from 2.7.3 to 2.7.4. --- updated-dependencies: - dependency-name: org.hsqldb:hsqldb dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 83de3fc67..fd93ccc41 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -43,7 +43,7 @@ org-apache-logging-log4j-log4j-core = "org.apache.logging.log4j:log4j-core:2.23. org-aspectj-aspectjweaver = "org.aspectj:aspectjweaver:1.9.22.1" org-assertj-assertj-core = "org.assertj:assertj-core:3.25.3" org-hamcrest = "org.hamcrest:hamcrest:2.2" -org-hsqldb = "org.hsqldb:hsqldb:2.7.3" +org-hsqldb = "org.hsqldb:hsqldb:2.7.4" org-junit-junit-bom = "org.junit:junit-bom:5.10.5" org-mariadb-jdbc-mariadb-java-client = "org.mariadb.jdbc:mariadb-java-client:3.3.3" org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "org-mockito" } From 36cc0ab84d9a358cef2af1621f3b020dea13bb0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 03:48:28 +0000 Subject: [PATCH 536/579] Bump com.fasterxml.jackson.core:jackson-databind from 2.17.2 to 2.17.3 Bumps [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) from 2.17.2 to 2.17.3. - [Commits](https://github.com/FasterXML/jackson/commits) --- updated-dependencies: - dependency-name: com.fasterxml.jackson.core:jackson-databind dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fd93ccc41..cdc2f6271 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ org-springframework-boot = "3.3.5" ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.2" -com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.2" +com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" com-hazelcast = "com.hazelcast:hazelcast:5.4.0" From 753f15a61cbf1389a096b430bd5cb132e802f5fe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 03:59:14 +0000 Subject: [PATCH 537/579] Bump com.fasterxml.jackson:jackson-bom from 2.17.2 to 2.17.3 Bumps [com.fasterxml.jackson:jackson-bom](https://github.com/FasterXML/jackson-bom) from 2.17.2 to 2.17.3. - [Commits](https://github.com/FasterXML/jackson-bom/compare/jackson-bom-2.17.2...jackson-bom-2.17.3) --- updated-dependencies: - dependency-name: com.fasterxml.jackson:jackson-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cdc2f6271..559e38cae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -14,7 +14,7 @@ org-springframework-boot = "3.3.5" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } ch-qos-logback-logback-core = { module = "ch.qos.logback:logback-core", version.ref = "ch-qos-logback" } -com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.2" +com-fasterxml-jackson-jackson-bom = "com.fasterxml.jackson:jackson-bom:2.17.3" com-fasterxml-jackson-core-jackson-databind = "com.fasterxml.jackson.core:jackson-databind:2.17.3" com-google-code-findbugs-jsr305 = "com.google.code.findbugs:jsr305:3.0.2" com-h2database-h2 = "com.h2database:h2:2.2.224" From fb176f0b1791517a4c73a04256e2e514d732fefe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 04:02:06 +0000 Subject: [PATCH 538/579] Bump org-mongodb from 5.2.0 to 5.2.1 Bumps `org-mongodb` from 5.2.0 to 5.2.1. Updates `org.mongodb:mongodb-driver-core` from 5.2.0 to 5.2.1 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r5.2.0...r5.2.1) Updates `org.mongodb:mongodb-driver-reactivestreams` from 5.2.0 to 5.2.1 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r5.2.0...r5.2.1) Updates `org.mongodb:mongodb-driver-sync` from 5.2.0 to 5.2.1 - [Release notes](https://github.com/mongodb/mongo-java-driver/releases) - [Commits](https://github.com/mongodb/mongo-java-driver/compare/r5.2.0...r5.2.1) --- updated-dependencies: - dependency-name: org.mongodb:mongodb-driver-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-reactivestreams dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mongodb:mongodb-driver-sync dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 559e38cae..9e9698695 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" org-gretty = "4.1.1" org-mockito = "5.11.0" -org-mongodb = "5.2.0" +org-mongodb = "5.2.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" From 4be840b49f6d1e2e189b59f9f8d74b9f078cea1d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 03:15:13 +0000 Subject: [PATCH 539/579] Bump io.projectreactor:reactor-bom from 2023.0.11 to 2023.0.12 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.11 to 2023.0.12. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.11...2023.0.12) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1acf0fdfd..d7e55390c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.11" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.12" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 6073c5496f93db0bb37698d9e6554b0da2e77a92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 04:01:49 +0000 Subject: [PATCH 540/579] Bump io.projectreactor:reactor-bom from 2023.0.11 to 2023.0.12 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.11 to 2023.0.12. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.11...2023.0.12) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9e9698695..277df0778 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.11" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.12" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From d4f934411626dc7303822396c00afcde7c348c25 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:52:32 -0600 Subject: [PATCH 541/579] Update to Gradle 8.11 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9f4197d5f..94113f200 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 119079eec44ffff91dc378f1ca9995ba477c4d27 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Wed, 13 Nov 2024 14:52:32 -0600 Subject: [PATCH 542/579] Update to Gradle 8.11 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 9f4197d5f..94113f200 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 8dba0ec9d1a60056dd15f4106df9090ec0c1f0c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 20:54:25 +0000 Subject: [PATCH 543/579] Bump io.projectreactor:reactor-core from 3.6.11 to 3.6.12 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.11 to 3.6.12. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.11...v3.6.12) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index eca5f8d6d..a4cb24979 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.11' + implementation 'io.projectreactor:reactor-core:3.6.12' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From 2f8f55dbb12d21d0eb2cf685b3423f2578623123 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:20:25 +0000 Subject: [PATCH 544/579] Bump io.projectreactor:reactor-core from 3.6.11 to 3.6.12 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.11 to 3.6.12. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.11...v3.6.12) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index eca5f8d6d..a4cb24979 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.11' + implementation 'io.projectreactor:reactor-core:3.6.12' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From 41d0d27f96c2f4dbe1269f57e0021927569766c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 03:26:24 +0000 Subject: [PATCH 545/579] Bump org.springframework:spring-framework-bom from 6.1.14 to 6.1.15 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.1.14 to 6.1.15. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.1.14...v6.1.15) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d7e55390c..22efd90e3 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.5" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.4" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.14" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.15" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From ff1bd607193cd0dd4a90bd1e6fc4bb7a002b3e52 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Fri, 15 Nov 2024 16:20:05 -0600 Subject: [PATCH 546/579] Fix unstubbed Exception for spring-test-6.2.0 --- .../RedisIndexedSessionRepositoryDynamicITests.java | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryDynamicITests.java b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryDynamicITests.java index efe77a1c3..b7247356c 100644 --- a/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryDynamicITests.java +++ b/spring-session-data-redis/src/integration-test/java/org/springframework/session/data/redis/RedisIndexedSessionRepositoryDynamicITests.java @@ -37,10 +37,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIllegalStateException; -import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.BDDMockito.given; -import static org.mockito.BDDMockito.willAnswer; import static org.mockito.Mockito.spy; /** @@ -68,10 +66,6 @@ void findByIdWhenSessionDeletedWhileSavingDeltaThenThrowIllegalStateException() BoundHashOperations opsForHash = spy(this.spyOperations.boundHashOps(anyString())); given(this.spyOperations.boundHashOps(anyString())).willReturn(opsForHash); - willAnswer((invocation) -> { - this.sessionRepository.deleteById(session.getId()); - return invocation.callRealMethod(); - }).given(opsForHash).putAll(any()); this.sessionRepository.save(session); assertThatIllegalStateException().isThrownBy(() -> this.sessionRepository.findById(session.getId())) @@ -87,10 +81,6 @@ void findByIdWhenSessionDeletedWhileSavingDeltaAndSafeMapperThenSessionIsNull() BoundHashOperations opsForHash = spy(this.spyOperations.boundHashOps(anyString())); given(this.spyOperations.boundHashOps(anyString())).willReturn(opsForHash); - willAnswer((invocation) -> { - this.sessionRepository.deleteById(session.getId()); - return invocation.callRealMethod(); - }).given(opsForHash).putAll(any()); this.sessionRepository.save(session); assertThat(this.sessionRepository.findById(session.getId())).isNull(); From da24bd76079ee3b6048d665433aa327cd1bd4fd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 15 Nov 2024 22:26:52 +0000 Subject: [PATCH 547/579] Bump org.springframework:spring-framework-bom from 6.2.0-RC2 to 6.2.0 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.2.0-RC2 to 6.2.0. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.0-RC2...v6.2.0) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 277df0778..d5f6818bf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0-SNAPSHOT" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0-RC2" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.1-SNAPSHOT" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 92a400716ceac62b298814632f98c2f869bb0d68 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Fri, 15 Nov 2024 17:54:59 -0600 Subject: [PATCH 548/579] Update to Spring Framework 6.2.0 Closes gh-3272 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d5f6818bf..d32082e7d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0-SNAPSHOT" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.1-SNAPSHOT" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From 875e62c785ef95cafabaf40fffcca813884e34b3 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Fri, 15 Nov 2024 17:55:19 -0600 Subject: [PATCH 549/579] Update to Spring Data 2024.1.0 Closes gh-3273 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d32082e7d..86913fa3e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0-SNAPSHOT" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From e75cd3cf8f9a6c6d12ca65186b54b82934476c13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 03:54:31 +0000 Subject: [PATCH 550/579] Bump org.springframework.data:spring-data-bom from 2024.0.5 to 2024.0.6 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.0.5 to 2024.0.6. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.0.5...2024.0.6) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 22efd90e3..ce398f6eb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.5" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.6" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.4" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.15" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From 0f4bdc1c1ded2ad55d7efff931abd2739cff7c04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 03:46:58 +0000 Subject: [PATCH 551/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.4.0-SNAPSHOT to 6.4.1-SNAPSHOT. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/commits) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 86913fa3e..b305f057a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0-SNAPSHOT" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.1-SNAPSHOT" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 40e377b4acaedb054137d274c39e8402dd052313 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 19 Nov 2024 03:52:18 +0000 Subject: [PATCH 552/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.3.4 to 6.3.5. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.3.4...6.3.5) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ce398f6eb..4e890fb1d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.0.6" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.4" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.3.5" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.1.15" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From c4aec8b6fb61032daf927c476addbbd65684d9c4 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 Nov 2024 13:23:01 +0000 Subject: [PATCH 553/579] Release 3.4.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c79736f87..17ba20615 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-SNAPSHOT +version=3.4.0 From 33711a8650bf14a6f2cf1303d6ec5362d04ee4cf Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Wed, 20 Nov 2024 10:20:41 -0600 Subject: [PATCH 554/579] Revert "Release 3.4.0" This reverts commit c4aec8b6fb61032daf927c476addbbd65684d9c4. --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 17ba20615..c79736f87 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0 +version=3.4.0-SNAPSHOT From 4901361e00e9137da0f26ca8e7b28993b07fffd8 Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Wed, 20 Nov 2024 10:20:58 -0600 Subject: [PATCH 555/579] Update to Spring Security 6.4.0 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b305f057a..492a44c55 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.1-SNAPSHOT" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 85fe5879b285e45d848fec40443ab726101c9835 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 19 Nov 2024 13:23:01 +0000 Subject: [PATCH 556/579] Release 3.4.0 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c79736f87..17ba20615 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0-SNAPSHOT +version=3.4.0 From 724cac13695ac299d09f06339f750967e5a8a13b Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 20 Nov 2024 17:00:59 +0000 Subject: [PATCH 557/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 17ba20615..a3e794a1a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.0 +version=3.4.1-SNAPSHOT From 6f1b5a98a753c55c6b81ffff59312bffba1873ee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 21 Nov 2024 03:39:40 +0000 Subject: [PATCH 558/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.4.0 to 6.4.1. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.4.0...6.4.1) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 492a44c55..5c61a6a54 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.0" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 0807dde6569cf93590600a25b336e9fc24e5b4ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 03:07:47 +0000 Subject: [PATCH 559/579] Bump org-springframework-boot from 3.2.11 to 3.2.12 Bumps `org-springframework-boot` from 3.2.11 to 3.2.12. Updates `org.springframework.boot:spring-boot-dependencies` from 3.2.11 to 3.2.12 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.11...v3.2.12) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.2.11 to 3.2.12 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.2.11...v3.2.12) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4e890fb1d..11101e04f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.0.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.2.11" +org-springframework-boot = "3.2.12" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From b475ada85ae7b9d8abfef0f75f95ef5489abcf42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Nov 2024 03:37:33 +0000 Subject: [PATCH 560/579] Bump org-springframework-boot from 3.3.5 to 3.3.6 Bumps `org-springframework-boot` from 3.3.5 to 3.3.6. Updates `org.springframework.boot:spring-boot-dependencies` from 3.3.5 to 3.3.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.5...v3.3.6) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.3.5 to 3.3.6 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.5...v3.3.6) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5c61a6a54..64a9d7790 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.2.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.3.5" +org-springframework-boot = "3.3.6" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From 8c254b8d6ccf2e9646ce6b21fe23b78b515032c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 03:22:25 +0000 Subject: [PATCH 561/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.22 to 4.33.23. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.22...build-info-gradle-extractor-4.33.23) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a4cb24979..af046e8cb 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.22' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.23' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From d49fad65c2c83ec6f781035c1a151583c40db929 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 27 Nov 2024 04:03:11 +0000 Subject: [PATCH 562/579] Bump org.jfrog.buildinfo:build-info-extractor-gradle Bumps [org.jfrog.buildinfo:build-info-extractor-gradle](https://github.com/jfrog/build-info) from 4.33.22 to 4.33.23. - [Release notes](https://github.com/jfrog/build-info/releases) - [Changelog](https://github.com/jfrog/build-info/blob/master/RELEASE.md) - [Commits](https://github.com/jfrog/build-info/compare/build-info-gradle-extractor-4.33.22...build-info-gradle-extractor-4.33.23) --- updated-dependencies: - dependency-name: org.jfrog.buildinfo:build-info-extractor-gradle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a4cb24979..af046e8cb 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -71,7 +71,7 @@ dependencies { implementation 'io.spring.nohttp:nohttp-gradle:0.0.11' implementation 'net.sourceforge.htmlunit:htmlunit:2.70.0' implementation 'org.hidetake:gradle-ssh-plugin:2.10.1' - implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.22' + implementation 'org.jfrog.buildinfo:build-info-extractor-gradle:4.33.23' implementation 'org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.8.0.1969' implementation libs.com.squareup.okhttp3.okhttp implementation libs.io.spring.security.release.plugin From df8806f18ec1c8380749172bbd25aae121766089 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 03:59:56 +0000 Subject: [PATCH 563/579] Bump io.projectreactor:reactor-core from 3.6.12 to 3.6.13 Bumps [io.projectreactor:reactor-core](https://github.com/reactor/reactor-core) from 3.6.12 to 3.6.13. - [Release notes](https://github.com/reactor/reactor-core/releases) - [Commits](https://github.com/reactor/reactor-core/compare/v3.6.12...v3.6.13) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index af046e8cb..0a1ad876d 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -63,7 +63,7 @@ dependencies { implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' - implementation 'io.projectreactor:reactor-core:3.6.12' + implementation 'io.projectreactor:reactor-core:3.6.13' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' implementation 'com.github.spullara.mustache.java:compiler:0.9.14' From e75ac2c5a3e18d00bd9989a545ba927576d1f129 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Dec 2024 03:59:51 +0000 Subject: [PATCH 564/579] Bump io.projectreactor:reactor-bom from 2023.0.12 to 2023.0.13 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.12 to 2023.0.13. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.12...2023.0.13) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 64a9d7790..4f85a6287 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.12" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.13" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 8ca0eae7ed107f9a695c1dfa1e15dee39c499319 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 13 Dec 2024 03:46:21 +0000 Subject: [PATCH 565/579] Bump org.springframework:spring-framework-bom from 6.2.0 to 6.2.1 Bumps [org.springframework:spring-framework-bom](https://github.com/spring-projects/spring-framework) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v6.2.0...v6.2.1) --- updated-dependencies: - dependency-name: org.springframework:spring-framework-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4f85a6287..b1a085484 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -59,7 +59,7 @@ org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.re org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.1" -org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.0" +org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.1" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } org-testcontainers-testcontainers-bom = { module = "org.testcontainers:testcontainers-bom", version.ref = "org-testcontainers" } From a29b19597cac6dcb18a1d755e0f44b8dc2980bef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Dec 2024 03:13:59 +0000 Subject: [PATCH 566/579] Bump org.springframework.data:spring-data-bom from 2024.1.0 to 2024.1.1 Bumps [org.springframework.data:spring-data-bom](https://github.com/spring-projects/spring-data-bom) from 2024.1.0 to 2024.1.1. - [Release notes](https://github.com/spring-projects/spring-data-bom/releases) - [Commits](https://github.com/spring-projects/spring-data-bom/compare/2024.1.0...2024.1.1) --- updated-dependencies: - dependency-name: org.springframework.data:spring-data-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b1a085484..1ffb580dc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -57,7 +57,7 @@ org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3" org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = "org-slf4j" } org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } -org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.0" +org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.1" org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.1" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.1" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } From c16488ec1ab69193fabc4beace5197f27b849670 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2024 03:11:34 +0000 Subject: [PATCH 567/579] Bump org.springframework.security:spring-security-bom Bumps [org.springframework.security:spring-security-bom](https://github.com/spring-projects/spring-security) from 6.4.1 to 6.4.2. - [Release notes](https://github.com/spring-projects/spring-security/releases) - [Changelog](https://github.com/spring-projects/spring-security/blob/main/RELEASE.adoc) - [Commits](https://github.com/spring-projects/spring-security/compare/6.4.1...6.4.2) --- updated-dependencies: - dependency-name: org.springframework.security:spring-security-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1ffb580dc..7e687e3e0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -58,7 +58,7 @@ org-slf4j-jcl-over-slf4j = { module = "org.slf4j:jcl-over-slf4j", version.ref = org-slf4j-log4j-over-slf4j = { module = "org.slf4j:log4j-over-slf4j", version.ref = "org-slf4j" } org-slf4j-slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "org-slf4j" } org-springframework-data-spring-data-bom = "org.springframework.data:spring-data-bom:2024.1.1" -org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.1" +org-springframework-security-spring-security-bom = "org.springframework.security:spring-security-bom:6.4.2" org-springframework-spring-framework-bom = "org.springframework:spring-framework-bom:6.2.1" org-springframework-boot-spring-boot-dependencies = { module = "org.springframework.boot:spring-boot-dependencies", version.ref = "org-springframework-boot" } org-springframework-boot-spring-boot-gradle-plugin = { module = "org.springframework.boot:spring-boot-gradle-plugin", version.ref = "org-springframework-boot" } From 5b3cd7f6dd9c3c2cb6fbf5521649fa8db5beb200 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 17 Dec 2024 13:23:16 +0000 Subject: [PATCH 568/579] Release 3.4.1 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index a3e794a1a..414384258 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.1-SNAPSHOT +version=3.4.1 From 6e1df14a7290d4cee402f84b9836b8809f776bee Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 18 Dec 2024 04:02:27 +0000 Subject: [PATCH 569/579] Bump io.spring.gradle:dependency-management-plugin from 1.1.6 to 1.1.7 Bumps [io.spring.gradle:dependency-management-plugin](https://github.com/spring-gradle-plugins/dependency-management-plugin) from 1.1.6 to 1.1.7. - [Release notes](https://github.com/spring-gradle-plugins/dependency-management-plugin/releases) - [Commits](https://github.com/spring-gradle-plugins/dependency-management-plugin/compare/v1.1.6...v1.1.7) --- updated-dependencies: - dependency-name: io.spring.gradle:dependency-management-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- buildSrc/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 0a1ad876d..d1598dc5f 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -62,7 +62,7 @@ dependencies { implementation localGroovy() implementation 'io.github.gradle-nexus:publish-plugin:1.3.0' - implementation 'io.spring.gradle:dependency-management-plugin:1.1.6' + implementation 'io.spring.gradle:dependency-management-plugin:1.1.7' implementation 'io.projectreactor:reactor-core:3.6.13' implementation 'com.apollographql.apollo:apollo-runtime:2.5.14' implementation 'com.github.ben-manes:gradle-versions-plugin:0.51.0' From 2c65d99ae9534664fe0a64074cd1fbb370fc02cf Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 18 Dec 2024 04:34:51 +0000 Subject: [PATCH 570/579] Next development version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 414384258..9430b5086 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 org.gradle.parallel=true -version=3.4.1 +version=3.4.2-SNAPSHOT From 35e5b4d52bdd82871fbea8319d36428820d82ceb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Dec 2024 03:14:38 +0000 Subject: [PATCH 571/579] Bump ch-qos-logback from 1.5.12 to 1.5.13 Bumps `ch-qos-logback` from 1.5.12 to 1.5.13. Updates `ch.qos.logback:logback-classic` from 1.5.12 to 1.5.13 - [Commits](https://github.com/qos-ch/logback/commits) Updates `ch.qos.logback:logback-core` from 1.5.12 to 1.5.13 - [Commits](https://github.com/qos-ch/logback/commits) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7e687e3e0..084faa11f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.12" +ch-qos-logback = "1.5.13" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 1de5ca61c5f71675c42f2135349cf3a7fb99828e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 03:27:56 +0000 Subject: [PATCH 572/579] Bump ch-qos-logback from 1.5.13 to 1.5.14 Bumps `ch-qos-logback` from 1.5.13 to 1.5.14. Updates `ch.qos.logback:logback-classic` from 1.5.13 to 1.5.14 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.13...v_1.5.14) Updates `ch.qos.logback:logback-core` from 1.5.13 to 1.5.14 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.13...v_1.5.14) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 084faa11f..ada6cce96 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.13" +ch-qos-logback = "1.5.14" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From a2efffe9bc6122f9f31a1192d704589970a5de84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Dec 2024 03:28:04 +0000 Subject: [PATCH 573/579] Bump org-springframework-boot from 3.3.6 to 3.3.7 Bumps `org-springframework-boot` from 3.3.6 to 3.3.7. Updates `org.springframework.boot:spring-boot-dependencies` from 3.3.6 to 3.3.7 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.6...v3.3.7) Updates `org.springframework.boot:spring-boot-gradle-plugin` from 3.3.6 to 3.3.7 - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.3.6...v3.3.7) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework.boot:spring-boot-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ada6cce96..ed63a78bf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ org-mongodb = "5.2.1" org-seleniumhq-selenium = "4.13.0" org-slf4j = "2.0.16" org-testcontainers = "1.19.8" -org-springframework-boot = "3.3.6" +org-springframework-boot = "3.3.7" [libraries] ch-qos-logback-logback-classic = { module = "ch.qos.logback:logback-classic", version.ref = "ch-qos-logback" } From feed2b4c4df5e4fbaca973a2568f4b7e8165d3e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 03:29:26 +0000 Subject: [PATCH 574/579] Bump ch-qos-logback from 1.5.14 to 1.5.15 Bumps `ch-qos-logback` from 1.5.14 to 1.5.15. Updates `ch.qos.logback:logback-classic` from 1.5.14 to 1.5.15 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.14...v_1.5.15) Updates `ch.qos.logback:logback-core` from 1.5.14 to 1.5.15 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.14...v_1.5.15) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ed63a78bf..928523ea6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.14" +ch-qos-logback = "1.5.15" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 92f09035eac6af0214883e0638a18fe2f4302490 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Jan 2025 03:38:43 +0000 Subject: [PATCH 575/579] Bump ch-qos-logback from 1.5.15 to 1.5.16 Bumps `ch-qos-logback` from 1.5.15 to 1.5.16. Updates `ch.qos.logback:logback-classic` from 1.5.15 to 1.5.16 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.15...v_1.5.16) Updates `ch.qos.logback:logback-core` from 1.5.15 to 1.5.16 - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.15...v_1.5.16) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: ch.qos.logback:logback-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 928523ea6..30a6877cf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -ch-qos-logback = "1.5.15" +ch-qos-logback = "1.5.16" jakarta-websocket = "2.1.1" org-apache-derby = "10.16.1.1" org-codehaus-groovy = "3.0.19" From 56284e53fe607cf4df4faca070f25840837255fb Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Tue, 14 Jan 2025 14:10:31 -0600 Subject: [PATCH 576/579] Create dco.yml --- .github/dco.yml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 .github/dco.yml diff --git a/.github/dco.yml b/.github/dco.yml new file mode 100644 index 000000000..0c4b142e9 --- /dev/null +++ b/.github/dco.yml @@ -0,0 +1,2 @@ +require: + members: false From 2bb5dcf6592a5f67b978b3b136b6daf5c13297ac Mon Sep 17 00:00:00 2001 From: Rob Winch <362503+rwinch@users.noreply.github.com> Date: Tue, 14 Jan 2025 14:12:13 -0600 Subject: [PATCH 577/579] Add DCO --- CONTRIBUTING.adoc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index e3c14c80d..a9828d32d 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -33,7 +33,7 @@ Switch to a branch named `..x` from the smallest milestone in the The spring team will ensure the code gets merged forward into additional branches. -== Sign the Contributor License Agreement -If you have not previously done so, please fill out and -submit the https://cla.pivotal.io/sign/spring[Contributor License Agreement]. +== Add Signed-off-by Trailer +All commits must include a __Signed-off-by__ trailer at the end of each commit message to indicate that the contributor agrees to the Developer Certificate of Origin. +For additional details, please refer to the blog post https://spring.io/blog/2025/01/06/hello-dco-goodbye-cla-simplifying-contributions-to-spring[Hello DCO, Goodbye CLA: Simplifying Contributions to Spring]. From 13088c6ac75f5cf0d3b78ec8c2980d64dfaccb82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 03:58:47 +0000 Subject: [PATCH 578/579] Bump io.projectreactor:reactor-bom from 2023.0.13 to 2023.0.14 Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2023.0.13 to 2023.0.14. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2023.0.13...2023.0.14) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 30a6877cf..ba8581d12 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ com-oracle-database-jdbc-ojdbc8 = "com.oracle.database.jdbc:ojdbc8:21.13.0.0" com-zaxxer-HikariCP = "com.zaxxer:HikariCP:5.1.0" edu-umd-cs-mtc-multithreadedtc = "edu.umd.cs.mtc:multithreadedtc:1.01" io-lettuce-lettuce-core = "io.lettuce:lettuce-core:6.3.2.RELEASE" -io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.13" +io-projectreactor-reactor-bom = "io.projectreactor:reactor-bom:2023.0.14" io-spring-javaformat-spring-javaformat-checkstyle = "io.spring.javaformat:spring-javaformat-checkstyle:0.0.43" io-spring-nohttp-nohttp-checkstyle = "io.spring.nohttp:nohttp-checkstyle:0.0.11" jakarta-servlet-jakarta-servlet-api = "jakarta.servlet:jakarta.servlet-api:6.0.0" From 4283df46ac6dcd15aad266eaea2c958264b63f62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Jan 2025 03:59:22 +0000 Subject: [PATCH 579/579] Bump org.postgresql:postgresql from 42.7.4 to 42.7.5 Bumps [org.postgresql:postgresql](https://github.com/pgjdbc/pgjdbc) from 42.7.4 to 42.7.5. - [Release notes](https://github.com/pgjdbc/pgjdbc/releases) - [Changelog](https://github.com/pgjdbc/pgjdbc/blob/master/CHANGELOG.md) - [Commits](https://github.com/pgjdbc/pgjdbc/compare/REL42.7.4...REL42.7.5) --- updated-dependencies: - dependency-name: org.postgresql:postgresql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ba8581d12..79824bc1a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -50,7 +50,7 @@ org-mockito-mockito-bom = { module = "org.mockito:mockito-bom", version.ref = "o org-mongodb-mongodb-driver-core = { module = "org.mongodb:mongodb-driver-core", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-reactivestreams = { module = "org.mongodb:mongodb-driver-reactivestreams", version.ref = "org-mongodb" } org-mongodb-mongodb-driver-sync = { module = "org.mongodb:mongodb-driver-sync", version.ref = "org-mongodb" } -org-postgresql = "org.postgresql:postgresql:42.7.4" +org-postgresql = "org.postgresql:postgresql:42.7.5" org-seleniumhq-selenium-htmlunit-driver = { module = "org.seleniumhq.selenium:htmlunit-driver", version.ref = "org-seleniumhq-selenium" } org-seleniumhq-selenium-selenium-support = { module = "org.seleniumhq.selenium:selenium-support", version.ref = "org-seleniumhq-selenium" } org-skyscreamer-jsonassert = "org.skyscreamer:jsonassert:1.5.3"