From db9afc36ab7a7b8863e75b21062968e95a06fdc3 Mon Sep 17 00:00:00 2001 From: Luke Taylor Date: Tue, 14 Apr 2009 11:04:49 +0000 Subject: [PATCH] Refactored internal context holder strategy implementations to be package private and final and refactored getContext() methods to use a single call to ThreadLocal.get(). --- .../GlobalSecurityContextHolderStrategy.java | 2 +- ...bleThreadLocalSecurityContextHolderStrategy.java | 13 ++++++++----- .../ThreadLocalSecurityContextHolderStrategy.java | 13 ++++++++----- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/core/src/main/java/org/springframework/security/core/context/GlobalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/core/context/GlobalSecurityContextHolderStrategy.java index 74f43dbf99..4f3675c2bb 100644 --- a/core/src/main/java/org/springframework/security/core/context/GlobalSecurityContextHolderStrategy.java +++ b/core/src/main/java/org/springframework/security/core/context/GlobalSecurityContextHolderStrategy.java @@ -27,7 +27,7 @@ import org.springframework.util.Assert; * @author Ben Alex * @version $Id$ */ -public class GlobalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { +final class GlobalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { //~ Static fields/initializers ===================================================================================== private static SecurityContext contextHolder; diff --git a/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java index 3a769f2cd7..7d79bdc023 100644 --- a/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java +++ b/core/src/main/java/org/springframework/security/core/context/InheritableThreadLocalSecurityContextHolderStrategy.java @@ -28,10 +28,10 @@ import org.springframework.util.Assert; * @see java.lang.ThreadLocal * @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter */ -public class InheritableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { +final class InheritableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { //~ Static fields/initializers ===================================================================================== - private static ThreadLocal contextHolder = new InheritableThreadLocal(); + private static final ThreadLocal contextHolder = new InheritableThreadLocal(); //~ Methods ======================================================================================================== @@ -40,11 +40,14 @@ public class InheritableThreadLocalSecurityContextHolderStrategy implements Secu } public SecurityContext getContext() { - if (contextHolder.get() == null) { - contextHolder.set(new SecurityContextImpl()); + SecurityContext ctx = contextHolder.get(); + + if (ctx == null) { + ctx = createEmptyContext(); + contextHolder.set(ctx); } - return contextHolder.get(); + return ctx; } public void setContext(SecurityContext context) { diff --git a/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.java b/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.java index a5e36e8ece..1554f8ea75 100644 --- a/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.java +++ b/core/src/main/java/org/springframework/security/core/context/ThreadLocalSecurityContextHolderStrategy.java @@ -27,10 +27,10 @@ import org.springframework.util.Assert; * @see java.lang.ThreadLocal * @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter */ -public class ThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { +final class ThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { //~ Static fields/initializers ===================================================================================== - private static ThreadLocal contextHolder = new ThreadLocal(); + private static final ThreadLocal contextHolder = new ThreadLocal(); //~ Methods ======================================================================================================== @@ -39,11 +39,14 @@ public class ThreadLocalSecurityContextHolderStrategy implements SecurityContext } public SecurityContext getContext() { - if (contextHolder.get() == null) { - contextHolder.set(new SecurityContextImpl()); + SecurityContext ctx = contextHolder.get(); + + if (ctx == null) { + ctx = createEmptyContext(); + contextHolder.set(ctx); } - return contextHolder.get(); + return ctx; } public void setContext(SecurityContext context) {