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) {