File tree Expand file tree Collapse file tree 2 files changed +27
-8
lines changed
main/java/org/springframework/web/server/session
test/java/org/springframework/web/server/session Expand file tree Collapse file tree 2 files changed +27
-8
lines changed Original file line number Diff line number Diff line change @@ -280,7 +280,7 @@ public Mono<Void> save() {
280280 private void checkMaxSessionsLimit () {
281281 if (sessions .size () >= maxSessions ) {
282282 expiredSessionChecker .removeExpiredSessions (clock .instant ());
283- if (sessions .size () >= maxSessions && !sessions .containsKey (this .getId ())) {
283+ if (sessions .size () >= maxSessions && !sessions .containsKey (this .id . get ())) {
284284 throw new IllegalStateException ("Max sessions limit reached: " + sessions .size ());
285285 }
286286 }
Original file line number Diff line number Diff line change @@ -160,21 +160,40 @@ void maxSessions() {
160160
161161 @ Test
162162 void updateSession () {
163- WebSession oneWebSession = insertSession ();
163+ WebSession session = insertSession ();
164164
165- StepVerifier .create (oneWebSession .save ())
165+ StepVerifier .create (session .save ())
166166 .expectComplete ()
167167 .verify ();
168168 }
169169
170- @ Test
171- void updateSession_whenMaxSessionsReached () {
172- WebSession onceWebSession = insertSession ();
173- IntStream .range (1 , 10000 ).forEach (i -> insertSession ());
170+ @ Test // gh-35013
171+ void updateSessionAfterMaxSessionLimitIsExceeded () {
172+ this .store .setMaxSessions (10 );
173+
174+ WebSession session = insertSession ();
175+ assertNumSessions (1 );
176+
177+ IntStream .rangeClosed (1 , 9 ).forEach (i -> insertSession ());
178+ assertNumSessions (10 );
179+
180+ // Updating an existing session should succeed.
181+ StepVerifier .create (session .save ())
182+ .expectComplete ()
183+ .verify ();
184+ assertNumSessions (10 );
185+
186+ // Saving an additional new session should fail.
187+ assertThatIllegalStateException ()
188+ .isThrownBy (this ::insertSession )
189+ .withMessage ("Max sessions limit reached: 10" );
190+ assertNumSessions (10 );
174191
175- StepVerifier .create (onceWebSession .save ())
192+ // Updating an existing session again should still succeed.
193+ StepVerifier .create (session .save ())
176194 .expectComplete ()
177195 .verify ();
196+ assertNumSessions (10 );
178197 }
179198
180199
You can’t perform that action at this time.
0 commit comments