Coverage Report - org.acegisecurity.context.InheritableThreadLocalSecurityContextHolderStrategy
 
Classes in this File Line Coverage Branch Coverage Complexity
InheritableThreadLocalSecurityContextHolderStrategy
100% 
100% 
1.333
 
 1  
 /* Copyright 2004, 2005, 2006 Acegi Technology Pty Limited
 2  
  *
 3  
  * Licensed under the Apache License, Version 2.0 (the "License");
 4  
  * you may not use this file except in compliance with the License.
 5  
  * You may obtain a copy of the License at
 6  
  *
 7  
  *     http://www.apache.org/licenses/LICENSE-2.0
 8  
  *
 9  
  * Unless required by applicable law or agreed to in writing, software
 10  
  * distributed under the License is distributed on an "AS IS" BASIS,
 11  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 12  
  * See the License for the specific language governing permissions and
 13  
  * limitations under the License.
 14  
  */
 15  
 
 16  
 package org.acegisecurity.context;
 17  
 
 18  
 import org.springframework.util.Assert;
 19  
 
 20  
 
 21  
 /**
 22  
  * An <code>InheritableThreadLocal</code>-based implementation of {@link
 23  
  * org.acegisecurity.context.SecurityContextHolderStrategy}.
 24  
  *
 25  
  * @author Ben Alex
 26  
  * @version $Id: SecurityContextHolder.java 1324 2006-02-12 06:29:53Z benalex $
 27  
  *
 28  
  * @see java.lang.ThreadLocal
 29  
  * @see org.acegisecurity.context.HttpSessionContextIntegrationFilter
 30  
  */
 31  9
 public class InheritableThreadLocalSecurityContextHolderStrategy implements SecurityContextHolderStrategy {
 32  
     //~ Static fields/initializers =====================================================================================
 33  
 
 34  1
     private static ThreadLocal contextHolder = new InheritableThreadLocal();
 35  
 
 36  
     //~ Methods ========================================================================================================
 37  
 
 38  
     public void clearContext() {
 39  6
         contextHolder.set(null);
 40  6
     }
 41  
 
 42  
     public SecurityContext getContext() {
 43  3763
         if (contextHolder.get() == null) {
 44  22
             contextHolder.set(new SecurityContextImpl());
 45  
         }
 46  
 
 47  3763
         return (SecurityContext) contextHolder.get();
 48  
     }
 49  
 
 50  
     public void setContext(SecurityContext context) {
 51  2
         Assert.notNull(context, "Only non-null SecurityContext instances are permitted");
 52  1
         contextHolder.set(context);
 53  1
     }
 54  
 }