|
@@ -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<SecurityContext> contextHolder = new InheritableThreadLocal<SecurityContext>();
|
|
|
+ private static final ThreadLocal<SecurityContext> contextHolder = new InheritableThreadLocal<SecurityContext>();
|
|
|
|
|
|
//~ 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) {
|