Ver código fonte

SessionRegistryImpl uses computeIfAbsent

Fixes: gh-5834
Robbie Martinus 6 anos atrás
pai
commit
090000c3d2

+ 1 - 11
core/src/main/java/org/springframework/security/core/session/SessionRegistryImpl.java

@@ -132,17 +132,7 @@ public class SessionRegistryImpl implements SessionRegistry,
 		sessionIds.put(sessionId,
 				new SessionInformation(principal, sessionId, new Date()));
 
-		Set<String> sessionsUsedByPrincipal = principals.get(principal);
-
-		if (sessionsUsedByPrincipal == null) {
-			sessionsUsedByPrincipal = new CopyOnWriteArraySet<>();
-			Set<String> prevSessionsUsedByPrincipal = principals.putIfAbsent(principal,
-					sessionsUsedByPrincipal);
-			if (prevSessionsUsedByPrincipal != null) {
-				sessionsUsedByPrincipal = prevSessionsUsedByPrincipal;
-			}
-		}
-
+		Set<String> sessionsUsedByPrincipal = principals.computeIfAbsent(principal, key -> new CopyOnWriteArraySet<>());
 		sessionsUsedByPrincipal.add(sessionId);
 
 		if (logger.isTraceEnabled()) {