Skip to content

Commit 2ff3c82

Browse files
Address SessionLimitStrategy
Closes gh-16206
1 parent 4f682f2 commit 2ff3c82

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

config/src/main/java/org/springframework/security/config/annotation/web/configurers/SessionManagementConfigurer.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ public final class SessionManagementConfigurer<H extends HttpSecurityBuilder<H>>
120120

121121
private SessionInformationExpiredStrategy expiredSessionStrategy;
122122

123-
private SessionLimitStrategy sessionLimitStrategy;
123+
private SessionLimitStrategy sessionLimit;
124124

125125
private List<SessionAuthenticationStrategy> sessionAuthenticationStrategies = new ArrayList<>();
126126

@@ -330,7 +330,7 @@ public SessionManagementConfigurer<H> sessionFixation(
330330
* @return the {@link SessionManagementConfigurer} for further customizations
331331
*/
332332
public ConcurrencyControlConfigurer maximumSessions(int maximumSessions) {
333-
this.sessionLimitStrategy = SessionLimitStrategy.of(maximumSessions);
333+
this.sessionLimit = SessionLimitStrategy.of(maximumSessions);
334334
this.propertiesThatRequireImplicitAuthentication.add("maximumSessions = " + maximumSessions);
335335
return new ConcurrencyControlConfigurer();
336336
}
@@ -571,8 +571,8 @@ private SessionAuthenticationStrategy getSessionAuthenticationStrategy(H http) {
571571
SessionRegistry sessionRegistry = getSessionRegistry(http);
572572
ConcurrentSessionControlAuthenticationStrategy concurrentSessionControlStrategy = new ConcurrentSessionControlAuthenticationStrategy(
573573
sessionRegistry);
574-
if (this.sessionLimitStrategy != null) {
575-
concurrentSessionControlStrategy.setMaximumSessions(this.sessionLimitStrategy);
574+
if (this.sessionLimit != null) {
575+
concurrentSessionControlStrategy.setMaximumSessions(this.sessionLimit);
576576
}
577577
concurrentSessionControlStrategy.setExceptionIfMaximumExceeded(this.maxSessionsPreventsLogin);
578578
concurrentSessionControlStrategy = postProcess(concurrentSessionControlStrategy);
@@ -617,7 +617,7 @@ private void registerDelegateApplicationListener(H http, ApplicationListener<?>
617617
* @return
618618
*/
619619
private boolean isConcurrentSessionControlEnabled() {
620-
return this.sessionLimitStrategy != null;
620+
return this.sessionLimit != null;
621621
}
622622

623623
/**
@@ -709,7 +709,7 @@ private ConcurrencyControlConfigurer() {
709709
* @return the {@link ConcurrencyControlConfigurer} for further customizations
710710
*/
711711
public ConcurrencyControlConfigurer maximumSessions(int maximumSessions) {
712-
SessionManagementConfigurer.this.sessionLimitStrategy = SessionLimitStrategy.of(maximumSessions);
712+
SessionManagementConfigurer.this.sessionLimit = SessionLimitStrategy.of(maximumSessions);
713713
return this;
714714
}
715715

@@ -719,8 +719,8 @@ public ConcurrencyControlConfigurer maximumSessions(int maximumSessions) {
719719
* maximum number of sessions for a user
720720
* @return the {@link ConcurrencyControlConfigurer} for further customizations
721721
*/
722-
public ConcurrencyControlConfigurer sessionLimitStrategy(SessionLimitStrategy sessionLimitStrategy) {
723-
SessionManagementConfigurer.this.sessionLimitStrategy = sessionLimitStrategy;
722+
public ConcurrencyControlConfigurer maximumSessions(SessionLimitStrategy sessionLimitStrategy) {
723+
SessionManagementConfigurer.this.sessionLimit = sessionLimitStrategy;
724724
return this;
725725
}
726726

config/src/main/java/org/springframework/security/config/http/HttpConfigurationBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -493,11 +493,11 @@ else if (StringUtils.hasText(sessionAuthStratRef)) {
493493
if (StringUtils.hasText(maxSessions)) {
494494
concurrentSessionStrategy.addPropertyValue("maximumSessions", maxSessions);
495495
}
496-
String sessionLimitStrategyRef = this.pc.getReaderContext()
496+
String maxSessionsRef = this.pc.getReaderContext()
497497
.getEnvironment()
498498
.resolvePlaceholders(sessionCtrlElt.getAttribute(ATT_MAX_SESSIONS_REF));
499-
if (StringUtils.hasText(sessionLimitStrategyRef)) {
500-
concurrentSessionStrategy.addPropertyReference("sessionLimitStrategy", sessionLimitStrategyRef);
499+
if (StringUtils.hasText(maxSessionsRef)) {
500+
concurrentSessionStrategy.addPropertyReference("maximumSessions", maxSessionsRef);
501501
}
502502
String exceptionIfMaximumExceeded = sessionCtrlElt.getAttribute("error-if-maximum-exceeded");
503503
if (StringUtils.hasText(exceptionIfMaximumExceeded)) {

config/src/test/java/org/springframework/security/config/annotation/web/configurers/SessionManagementConfigurerTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,7 @@ SecurityFilterChain filterChain(HttpSecurity http, SessionLimitStrategy sessionL
713713
.formLogin(withDefaults())
714714
.sessionManagement((sessionManagement) -> sessionManagement
715715
.sessionConcurrency((sessionConcurrency) -> sessionConcurrency
716-
.sessionLimitStrategy(sessionLimitStrategy)
716+
.maximumSessions(sessionLimitStrategy)
717717
.maxSessionsPreventsLogin(true)
718718
)
719719
);

web/src/main/java/org/springframework/security/web/authentication/session/ConcurrentSessionControlAuthenticationStrategy.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ public void setMaximumSessions(int maximumSessions) {
186186
* Sets the <tt>sessionLimitStrategy</tt> property. The default value is 1. Use -1 for
187187
* unlimited sessions.
188188
* @param sessionLimitStrategy the session limit strategy
189+
* @since 6.5
189190
*/
190191
public void setMaximumSessions(SessionLimitStrategy sessionLimitStrategy) {
191192
Assert.notNull(sessionLimitStrategy, "sessionLimitStrategy cannot be null");

0 commit comments

Comments
 (0)