diff --git a/core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java b/core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java index 285c6c6747f..ec2a015fbd1 100644 --- a/core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java +++ b/core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java @@ -132,17 +132,7 @@ public void registerNewSession(String sessionId, Object principal) { sessionIds.put(sessionId, new SessionInformation(principal, sessionId, new Date())); - Set sessionsUsedByPrincipal = principals.get(principal); - - if (sessionsUsedByPrincipal == null) { - sessionsUsedByPrincipal = new CopyOnWriteArraySet<>(); - Set prevSessionsUsedByPrincipal = principals.putIfAbsent(principal, - sessionsUsedByPrincipal); - if (prevSessionsUsedByPrincipal != null) { - sessionsUsedByPrincipal = prevSessionsUsedByPrincipal; - } - } - + Set sessionsUsedByPrincipal = principals.computeIfAbsent(principal, key -> new CopyOnWriteArraySet<>()); sessionsUsedByPrincipal.add(sessionId); if (logger.isTraceEnabled()) {