| 
					
				 | 
			
			
				@@ -1,4 +1,4 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-/* Copyright 2004, 2005 Acegi Technology Pty Limited 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/* Copyright 2004, 2005, 2006 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. 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -53,11 +53,43 @@ public class MethodInvocationPrivilegeEvaluatorTests extends TestCase { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     //~ Methods ================================================================ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Object lookupTargetObject() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ApplicationContext context = new ClassPathXmlApplicationContext( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "org/acegisecurity/intercept/method/aopalliance/applicationContext.xml"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return context.getBean("target"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public static void main(String[] args) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         junit.textui.TestRunner.run(MethodInvocationPrivilegeEvaluatorTests.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void testAllowsAccess() throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private MethodSecurityInterceptor makeSecurityInterceptor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ApplicationContext context = new ClassPathXmlApplicationContext( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "org/acegisecurity/intercept/method/aopalliance/applicationContext.xml"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return (MethodSecurityInterceptor) context.getBean( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            "securityInterceptor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testAllowsAccessUsingCreate() throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "Password", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_LOWER")}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Object object = lookupTargetObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MethodInvocation mi = MethodInvocationUtils.create(object, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "makeLowerCase", new Object[] {"foobar"}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MethodSecurityInterceptor interceptor = makeSecurityInterceptor(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MethodInvocationPrivilegeEvaluator mipe = new MethodInvocationPrivilegeEvaluator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mipe.setSecurityInterceptor(interceptor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mipe.afterPropertiesSet(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertTrue(mipe.isAllowed(mi, token)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testAllowsAccessUsingCreateFromClass() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "Password", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_LOWER")}); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -72,12 +104,13 @@ public class MethodInvocationPrivilegeEvaluatorTests extends TestCase { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assertTrue(mipe.isAllowed(mi, token)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void testDeclinesAccess() throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testDeclinesAccessUsingCreate() throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 "Password", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_NOT_HELD")}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MethodInvocation mi = MethodInvocationUtils.createFromClass(ITargetObject.class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "makeLowerCase", new Class[] {String.class}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Object object = lookupTargetObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MethodInvocation mi = MethodInvocationUtils.create(object, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "makeLowerCase", new Object[] {"foobar"}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MethodSecurityInterceptor interceptor = makeSecurityInterceptor(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         MethodInvocationPrivilegeEvaluator mipe = new MethodInvocationPrivilegeEvaluator(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -87,11 +120,19 @@ public class MethodInvocationPrivilegeEvaluatorTests extends TestCase { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         assertFalse(mipe.isAllowed(mi, token)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private MethodSecurityInterceptor makeSecurityInterceptor() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ApplicationContext context = new ClassPathXmlApplicationContext( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                "org/acegisecurity/intercept/method/aopalliance/applicationContext.xml"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void testDeclinesAccessUsingCreateFromClass() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "Password", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_NOT_HELD")}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MethodInvocation mi = MethodInvocationUtils.createFromClass(ITargetObject.class, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                "makeLowerCase", new Class[] {String.class}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MethodSecurityInterceptor interceptor = makeSecurityInterceptor(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return (MethodSecurityInterceptor) context.getBean( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            "securityInterceptor"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MethodInvocationPrivilegeEvaluator mipe = new MethodInvocationPrivilegeEvaluator(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mipe.setSecurityInterceptor(interceptor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        mipe.afterPropertiesSet(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        assertFalse(mipe.isAllowed(mi, token)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |