| 
					
				 | 
			
			
				@@ -0,0 +1,247 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* Copyright 2004, 2005 Acegi Technology Pty Limited 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Licensed under the Apache License, Version 2.0 (the "License"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * you may not use this file except in compliance with the License. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * You may obtain a copy of the License at 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ *     http://www.apache.org/licenses/LICENSE-2.0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * Unless required by applicable law or agreed to in writing, software 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * distributed under the License is distributed on an "AS IS" BASIS, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * See the License for the specific language governing permissions and 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * limitations under the License. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package org.acegisecurity.taglibs.velocity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import junit.framework.TestCase; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.Authentication; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.GrantedAuthority; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.MockAclManager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.acl.AclEntry; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.acl.AclManager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.acl.basic.MockAclObjectIdentity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.acl.basic.SimpleAclEntry; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.context.SecurityContextHolder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.providers.TestingAuthenticationToken; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.acegisecurity.userdetails.User; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.context.ConfigurableApplicationContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.context.support.StaticApplicationContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ * DOCUMENT ME! 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class AuthzImplTest extends TestCase { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //~ Instance fields ======================================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Authz authz = new AuthzImpl(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private ConfigurableApplicationContext ctx; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //~ Methods ================================================================ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    protected void setUp() throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        super.setUp(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /*String[] paths = { "applicationEmpty.xml" }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           ctx = new ClassPathXmlApplicationContext(paths);*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx = new StaticApplicationContext(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Create an AclManager 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AclManager aclManager = new MockAclManager("object1", "marissa", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new AclEntry[] {new MockAclEntry(), new SimpleAclEntry( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        "marissa", new MockAclObjectIdentity(), null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        SimpleAclEntry.ADMINISTRATION), new SimpleAclEntry( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        "marissa", new MockAclObjectIdentity(), null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        SimpleAclEntry.READ)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // Register the AclManager into our ApplicationContext 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ctx.getBeanFactory().registerSingleton("aclManager", aclManager); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testIllegalArgumentExceptionThrownIfHasPermissionNotValidFormat() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken("john", "crow", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String permissions = "0,5, 6"; // shouldn't be any space 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            authz.hasPermission(null, permissions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (IllegalArgumentException iae) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            assertTrue(true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testInclusionDeniedWhenAclManagerUnawareOfObject() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken("marissa", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "koala", new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = authz.hasPermission(new Integer(54), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new Long(SimpleAclEntry.ADMINISTRATION).toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertFalse(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testInclusionDeniedWhenNoListOfPermissionsGiven() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken("marissa", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "koala", new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = authz.hasPermission("object1", null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertFalse(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testInclusionDeniedWhenPrincipalDoesNotHoldAnyPermissions() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken("john", "crow", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String permissions = new Integer(SimpleAclEntry.ADMINISTRATION) + "," 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            + new Integer(SimpleAclEntry.READ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = authz.hasPermission("object1", permissions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertFalse(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testInclusionDeniedWhenPrincipalDoesNotHoldRequiredPermissions() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken("marissa", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "koala", new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String permissions = new Integer(SimpleAclEntry.DELETE).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = authz.hasPermission("object1", permissions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertFalse(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testInclusionDeniedWhenSecurityContextEmpty() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String permissions = new Long(SimpleAclEntry.ADMINISTRATION).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = authz.hasPermission("object1", permissions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertFalse(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testInclusionPermittedWhenDomainObjectIsNull() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String permissions = new Integer(SimpleAclEntry.READ).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = authz.hasPermission(null, permissions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertTrue(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testOperationWhenPrincipalHoldsPermissionOfMultipleList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken("marissa", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "koala", new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String permissions = new Integer(SimpleAclEntry.ADMINISTRATION) + "," 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            + new Integer(SimpleAclEntry.READ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = authz.hasPermission("object1", permissions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertTrue(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testOperationWhenPrincipalHoldsPermissionOfSingleList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken("marissa", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "koala", new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        authz.setAppCtx(ctx); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String permissions = new Integer(SimpleAclEntry.READ).toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        boolean result = authz.hasPermission("object1", permissions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertTrue(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    /* 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * Test method for 'com.alibaba.exodus2.web.common.security.pulltool.AuthzImpl.getPrincipal()' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testOperationWhenPrincipalIsAString() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken("marissaAsString", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "koala", new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertEquals("marissaAsString", authz.getPrincipal()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testOperationWhenPrincipalIsAUserDetailsInstance() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken(new User( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    "marissaUserDetails", "koala", true, true, true, true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    new GrantedAuthority[] {}), "koala", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertEquals("marissaUserDetails", authz.getPrincipal()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testOperationWhenPrincipalIsNull() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Authentication auth = new TestingAuthenticationToken(null, "koala", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new GrantedAuthority[] {}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(auth); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertNull(authz.getPrincipal()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testOperationWhenSecurityContextIsNull() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertEquals(null, authz.getPrincipal()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SecurityContextHolder.getContext().setAuthentication(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //~ Inner Classes ========================================================== 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private class MockAclEntry implements AclEntry { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        private static final long serialVersionUID = 1L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // just so AclTag iterates some different types of AclEntrys 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |