Refactored internal context holder strategy implementations to be package private and final and refactored getContext() methods to use a single call to ThreadLocal.get().

This commit is contained in:
Luke Taylor 2009-04-14 11:04:49 +00:00
parent c770998d92
commit db9afc36ab
3 changed files with 17 additions and 11 deletions

View File

@ -27,7 +27,7 @@ import org.springframework.util.Assert;
* @author Ben Alex * @author Ben Alex
* @version $Id$ * @version $Id$
*/ */
public class GlobalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { final class GlobalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static SecurityContext contextHolder; private static SecurityContext contextHolder;

View File

@ -28,10 +28,10 @@ import org.springframework.util.Assert;
* @see java.lang.ThreadLocal * @see java.lang.ThreadLocal
* @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter * @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter
*/ */
public class InheritableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { final class InheritableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static ThreadLocal<SecurityContext> contextHolder = new InheritableThreadLocal<SecurityContext>(); private static final ThreadLocal<SecurityContext> contextHolder = new InheritableThreadLocal<SecurityContext>();
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
@ -40,11 +40,14 @@ public class InheritableThreadLocalSecurityContextHolderStrategy implements Secu
} }
public SecurityContext getContext() { public SecurityContext getContext() {
if (contextHolder.get() == null) { SecurityContext ctx = contextHolder.get();
contextHolder.set(new SecurityContextImpl());
if (ctx == null) {
ctx = createEmptyContext();
contextHolder.set(ctx);
} }
return contextHolder.get(); return ctx;
} }
public void setContext(SecurityContext context) { public void setContext(SecurityContext context) {

View File

@ -27,10 +27,10 @@ import org.springframework.util.Assert;
* @see java.lang.ThreadLocal * @see java.lang.ThreadLocal
* @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter * @see org.springframework.security.core.context.web.SecurityContextPersistenceFilter
*/ */
public class ThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy { final class ThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
//~ Static fields/initializers ===================================================================================== //~ Static fields/initializers =====================================================================================
private static ThreadLocal<SecurityContext> contextHolder = new ThreadLocal<SecurityContext>(); private static final ThreadLocal<SecurityContext> contextHolder = new ThreadLocal<SecurityContext>();
//~ Methods ======================================================================================================== //~ Methods ========================================================================================================
@ -39,11 +39,14 @@ public class ThreadLocalSecurityContextHolderStrategy implements SecurityContext
} }
public SecurityContext getContext() { public SecurityContext getContext() {
if (contextHolder.get() == null) { SecurityContext ctx = contextHolder.get();
contextHolder.set(new SecurityContextImpl());
if (ctx == null) {
ctx = createEmptyContext();
contextHolder.set(ctx);
} }
return contextHolder.get(); return ctx;
} }
public void setContext(SecurityContext context) { public void setContext(SecurityContext context) {