Bläddra i källkod

Functionality moved to new tests or mocks.

Ben Alex 21 år sedan
förälder
incheckning
a278db8df9

+ 0 - 305
core/src/test/java/org/acegisecurity/MethodDefinitionAttributesTests.java

@@ -1,305 +0,0 @@
-/* Copyright 2004 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 net.sf.acegisecurity;
-
-import junit.framework.TestCase;
-
-import net.sf.acegisecurity.context.ContextHolder;
-import net.sf.acegisecurity.context.SecureContext;
-import net.sf.acegisecurity.context.SecureContextImpl;
-import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
-
-import org.aopalliance.intercept.MethodInvocation;
-
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
-import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;
-
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.Method;
-
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.Properties;
-import java.util.Set;
-
-
-/**
- * Tests {@link MethodDefinitionAttributes}.
- *
- * @author Cameron Braid
- * @author Ben Alex
- */
-public class MethodDefinitionAttributesTests extends TestCase {
-    //~ Instance fields ========================================================
-
-    ClassPathXmlApplicationContext applicationContext;
-
-    //~ Constructors ===========================================================
-
-    public MethodDefinitionAttributesTests(String a) {
-        super(a);
-    }
-
-    //~ Methods ================================================================
-
-    public final void setUp() throws Exception {
-        super.setUp();
-    }
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(MethodDefinitionAttributesTests.class);
-    }
-
-    public void testAttributesForInterfaceTargetObject()
-        throws Exception {
-        ConfigAttributeDefinition def1 = getConfigAttributeDefinition(ITargetObject.class,
-                "countLength", new Class[] {String.class});
-        Set set1 = toSet(def1);
-        assertTrue(set1.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set1.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_COUNT_LENGTH")));
-
-        ConfigAttributeDefinition def2 = getConfigAttributeDefinition(ITargetObject.class,
-                "makeLowerCase", new Class[] {String.class});
-        Set set2 = toSet(def2);
-        assertTrue(set2.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set2.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_MAKE_LOWER_CASE")));
-
-        ConfigAttributeDefinition def3 = getConfigAttributeDefinition(ITargetObject.class,
-                "makeUpperCase", new Class[] {String.class});
-        Set set3 = toSet(def3);
-        assertTrue(set3.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set3.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_MAKE_UPPER_CASE")));
-    }
-
-    public void testAttributesForOtherTargetObject() throws Exception {
-        ConfigAttributeDefinition def1 = getConfigAttributeDefinition(OtherTargetObject.class,
-                "countLength", new Class[] {String.class});
-        Set set1 = toSet(def1);
-        assertTrue(set1.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set1.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_COUNT_LENGTH")));
-
-        // Confirm MOCK_CLASS_METHOD_COUNT_LENGTH not added, as it's a String (not a ConfigAttribute)
-        // Confirm also MOCK_CLASS not added, as we return null for class
-        assertEquals(2, set1.size());
-
-        ConfigAttributeDefinition def2 = getConfigAttributeDefinition(OtherTargetObject.class,
-                "makeLowerCase", new Class[] {String.class});
-        Set set2 = toSet(def2);
-        assertTrue(set2.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set2.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_MAKE_LOWER_CASE")));
-        assertTrue(set2.contains(
-                new SecurityConfig("MOCK_CLASS_METHOD_MAKE_LOWER_CASE")));
-
-        // Confirm MOCK_CLASS not added, as we return null for class
-        assertEquals(3, set2.size());
-
-        ConfigAttributeDefinition def3 = getConfigAttributeDefinition(OtherTargetObject.class,
-                "makeUpperCase", new Class[] {String.class});
-        Set set3 = toSet(def3);
-        assertTrue(set3.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set3.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_MAKE_UPPER_CASE")));
-        assertTrue(set3.contains(new SecurityConfig("RUN_AS"))); // defined against interface
-
-        assertEquals(3, set3.size());
-    }
-
-    public void testAttributesForTargetObject() throws Exception {
-        ConfigAttributeDefinition def1 = getConfigAttributeDefinition(TargetObject.class,
-                "countLength", new Class[] {String.class});
-        Set set1 = toSet(def1);
-        assertTrue(set1.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set1.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_COUNT_LENGTH")));
-
-        assertTrue(set1.contains(new SecurityConfig("MOCK_CLASS")));
-
-        // Confirm the MOCK_CLASS_METHOD_COUNT_LENGTH was not added, as it's not a ConfigAttribute
-        assertEquals(3, set1.size());
-
-        ConfigAttributeDefinition def2 = getConfigAttributeDefinition(TargetObject.class,
-                "makeLowerCase", new Class[] {String.class});
-        Set set2 = toSet(def2);
-        assertTrue(set2.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set2.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_MAKE_LOWER_CASE")));
-        assertTrue(set2.contains(new SecurityConfig("MOCK_CLASS")));
-        assertTrue(set2.contains(
-                new SecurityConfig("MOCK_CLASS_METHOD_MAKE_LOWER_CASE")));
-        assertEquals(4, set2.size());
-
-        ConfigAttributeDefinition def3 = getConfigAttributeDefinition(TargetObject.class,
-                "makeUpperCase", new Class[] {String.class});
-        Set set3 = toSet(def3);
-        assertTrue(set3.contains(new SecurityConfig("MOCK_INTERFACE")));
-        assertTrue(set3.contains(
-                new SecurityConfig("MOCK_INTERFACE_METHOD_MAKE_UPPER_CASE")));
-        assertTrue(set3.contains(new SecurityConfig("MOCK_CLASS")));
-        assertTrue(set3.contains(
-                new SecurityConfig("MOCK_CLASS_METHOD_MAKE_UPPER_CASE")));
-        assertTrue(set3.contains(new SecurityConfig("RUN_AS")));
-        assertEquals(5, set3.size());
-    }
-
-    public void testMethodCallWithRunAsReplacement() throws Exception {
-        SecureContext context = new SecureContextImpl();
-        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
-                "Password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_INTERFACE_METHOD_MAKE_UPPER_CASE")});
-        context.setAuthentication(token);
-        ContextHolder.setContext(context);
-
-        ITargetObject target = makeInterceptedTarget();
-        String result = target.makeUpperCase("hello");
-        assertEquals("HELLO net.sf.acegisecurity.MockRunAsAuthenticationToken true",
-            result);
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testMethodCallWithoutRunAsReplacement()
-        throws Exception {
-        SecureContext context = new SecureContextImpl();
-        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
-                "Password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_INTERFACE_METHOD_MAKE_LOWER_CASE")});
-        context.setAuthentication(token);
-        ContextHolder.setContext(context);
-
-        ITargetObject target = makeInterceptedTarget();
-        String result = target.makeLowerCase("HELLO");
-
-        assertEquals("hello net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken true",
-            result);
-
-        ContextHolder.setContext(null);
-    }
-
-    private ConfigAttributeDefinition getConfigAttributeDefinition(
-        Class clazz, String methodName, Class[] args) throws Exception {
-        final Method method = clazz.getMethod(methodName, args);
-        MethodDefinitionAttributes source = new MethodDefinitionAttributes();
-        source.setAttributes(new MockAttributes());
-
-        ConfigAttributeDefinition config = source.getAttributes(new MockMethodInvocation() {
-                    public Method getMethod() {
-                        return method;
-                    }
-                });
-
-        return config;
-    }
-
-    private ITargetObject makeInterceptedTarget() {
-        String PREFIX = "beans.";
-        DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
-        Properties p = new Properties();
-        p.setProperty(PREFIX + "authentication.class",
-            "net.sf.acegisecurity.MockAuthenticationManager");
-        p.setProperty(PREFIX + "accessDecision.class",
-            "net.sf.acegisecurity.MockAccessDecisionManager");
-        p.setProperty(PREFIX + "runAs.class",
-            "net.sf.acegisecurity.MockRunAsManager");
-        p.setProperty(PREFIX + "attributes.class",
-            "net.sf.acegisecurity.MockAttributes");
-
-        p.setProperty(PREFIX + "methodDefinitionSource.class",
-            "net.sf.acegisecurity.MethodDefinitionAttributes");
-        p.setProperty(PREFIX + "methodDefinitionSource.attributes(ref)",
-            "attributes");
-
-        p.setProperty(PREFIX + "securityInterceptor.class",
-            "net.sf.acegisecurity.SecurityInterceptor");
-        p.setProperty(PREFIX + "securityInterceptor.authenticationManager(ref)",
-            "authentication");
-        p.setProperty(PREFIX + "securityInterceptor.accessDecisionManager(ref)",
-            "accessDecision");
-        p.setProperty(PREFIX + "securityInterceptor.runAsManager(ref)", "runAs");
-        p.setProperty(PREFIX
-            + "securityInterceptor.methodDefinitionSource(ref)",
-            "methodDefinitionSource");
-
-        p.setProperty(PREFIX + "targetObject.class",
-            "net.sf.acegisecurity.TargetObject");
-        p.setProperty(PREFIX + "target.class",
-            "org.springframework.aop.framework.ProxyFactoryBean");
-        p.setProperty(PREFIX + "target.proxyInterfaces",
-            "net.sf.acegisecurity.ITargetObject");
-        p.setProperty(PREFIX + "target.interceptorNames",
-            "securityInterceptor,targetObject");
-
-        (new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p,
-            PREFIX);
-
-        return (ITargetObject) lbf.getBean("target");
-    }
-
-    /**
-     * convert a <code>ConfigAttributeDefinition</code> into a set of
-     * <code>ConfigAttribute</code>(s)
-     *
-     * @param def the <code>ConfigAttributeDefinition</code> to cover
-     *
-     * @return a Set of <code>ConfigAttributes</code>
-     */
-    private Set toSet(ConfigAttributeDefinition def) {
-        Set set = new HashSet();
-        Iterator i = def.getConfigAttributes();
-
-        while (i.hasNext()) {
-            ConfigAttribute a = (ConfigAttribute) i.next();
-            set.add(a);
-        }
-
-        return set;
-    }
-
-    //~ Inner Classes ==========================================================
-
-    private class MockMethodInvocation implements MethodInvocation {
-        public Object[] getArguments() {
-            throw new UnsupportedOperationException(
-                "mock method not implemented");
-        }
-
-        public Method getMethod() {
-            throw new UnsupportedOperationException(
-                "mock method not implemented");
-        }
-
-        public AccessibleObject getStaticPart() {
-            throw new UnsupportedOperationException(
-                "mock method not implemented");
-        }
-
-        public Object getThis() {
-            throw new UnsupportedOperationException(
-                "mock method not implemented");
-        }
-
-        public Object proceed() throws Throwable {
-            throw new UnsupportedOperationException(
-                "mock method not implemented");
-        }
-    }
-}

+ 0 - 215
core/src/test/java/org/acegisecurity/MethodDefinitionSourceEditorTests.java

@@ -1,215 +0,0 @@
-/* Copyright 2004 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 net.sf.acegisecurity;
-
-import junit.framework.TestCase;
-
-import org.aopalliance.intercept.MethodInvocation;
-
-import java.lang.reflect.AccessibleObject;
-import java.lang.reflect.Method;
-
-import java.util.Iterator;
-
-
-/**
- * Tests {@link MethodDefinitionSourceEditor}.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class MethodDefinitionSourceEditorTests extends TestCase {
-    //~ Constructors ===========================================================
-
-    public MethodDefinitionSourceEditorTests() {
-        super();
-    }
-
-    public MethodDefinitionSourceEditorTests(String arg0) {
-        super(arg0);
-    }
-
-    //~ Methods ================================================================
-
-    public final void setUp() throws Exception {
-        super.setUp();
-    }
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(MethodDefinitionSourceEditorTests.class);
-    }
-
-    public void testClassNameNotFoundResultsInException() {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-
-        try {
-            editor.setAsText("net.sf.acegisecurity.DOES_NOT_EXIST_NAME=FOO,BAR");
-            fail("Should have given IllegalArgumentException");
-        } catch (IllegalArgumentException expected) {
-            assertTrue(true);
-        }
-    }
-
-    public void testClassNameNotInProperFormatResultsInException() {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-
-        try {
-            editor.setAsText("DOES_NOT_EXIST_NAME=FOO,BAR");
-            fail("Should have given IllegalArgumentException");
-        } catch (IllegalArgumentException expected) {
-            assertTrue(true);
-        }
-    }
-
-    public void testClassNameValidButMethodNameInvalidResultsInException() {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-
-        try {
-            editor.setAsText(
-                "net.sf.acegisecurity.TargetObject.INVALID_METHOD=FOO,BAR");
-            fail("Should have given IllegalArgumentException");
-        } catch (IllegalArgumentException expected) {
-            assertTrue(true);
-        }
-    }
-
-    public void testEmptyStringReturnsEmptyMap() {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-        editor.setAsText("");
-
-        MethodDefinitionMap map = (MethodDefinitionMap) editor.getValue();
-        assertEquals(0, map.getMethodMapSize());
-    }
-
-    public void testIterator() {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-        editor.setAsText(
-            "net.sf.acegisecurity.TargetObject.countLength=ROLE_ONE,ROLE_TWO,RUN_AS_ENTRY\r\nnet.sf.acegisecurity.TargetObject.make*=ROLE_NINE,ROLE_SUPERVISOR");
-
-        MethodDefinitionMap map = (MethodDefinitionMap) editor.getValue();
-        Iterator iter = map.getConfigAttributeDefinitions();
-        int counter = 0;
-
-        while (iter.hasNext()) {
-            iter.next();
-            counter++;
-        }
-
-        assertEquals(3, counter);
-    }
-
-    public void testMultiMethodParsing() {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-        editor.setAsText(
-            "net.sf.acegisecurity.TargetObject.countLength=ROLE_ONE,ROLE_TWO,RUN_AS_ENTRY\r\nnet.sf.acegisecurity.TargetObject.make*=ROLE_NINE,ROLE_SUPERVISOR");
-
-        MethodDefinitionMap map = (MethodDefinitionMap) editor.getValue();
-        assertEquals(3, map.getMethodMapSize());
-    }
-
-    public void testMultiMethodParsingWhereLaterMethodsOverrideEarlierMethods()
-        throws Exception {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-        editor.setAsText(
-            "net.sf.acegisecurity.TargetObject.*=ROLE_GENERAL\r\nnet.sf.acegisecurity.TargetObject.makeLower*=ROLE_LOWER\r\nnet.sf.acegisecurity.TargetObject.make*=ROLE_MAKE\r\nnet.sf.acegisecurity.TargetObject.makeUpper*=ROLE_UPPER");
-
-        MethodDefinitionMap map = (MethodDefinitionMap) editor.getValue();
-        assertEquals(4, map.getMethodMapSize());
-
-        ConfigAttributeDefinition returnedMakeLower = map.getAttributes(new MockMethodInvocation(
-                    TargetObject.class, "makeLowerCase",
-                    new Class[] {String.class}));
-        ConfigAttributeDefinition expectedMakeLower = new ConfigAttributeDefinition();
-        expectedMakeLower.addConfigAttribute(new SecurityConfig("ROLE_LOWER"));
-        assertEquals(expectedMakeLower, returnedMakeLower);
-
-        ConfigAttributeDefinition returnedMakeUpper = map.getAttributes(new MockMethodInvocation(
-                    TargetObject.class, "makeUpperCase",
-                    new Class[] {String.class}));
-        ConfigAttributeDefinition expectedMakeUpper = new ConfigAttributeDefinition();
-        expectedMakeUpper.addConfigAttribute(new SecurityConfig("ROLE_UPPER"));
-        assertEquals(expectedMakeUpper, returnedMakeUpper);
-
-        ConfigAttributeDefinition returnedCountLength = map.getAttributes(new MockMethodInvocation(
-                    TargetObject.class, "countLength",
-                    new Class[] {String.class}));
-        ConfigAttributeDefinition expectedCountLength = new ConfigAttributeDefinition();
-        expectedCountLength.addConfigAttribute(new SecurityConfig(
-                "ROLE_GENERAL"));
-        assertEquals(expectedCountLength, returnedCountLength);
-    }
-
-    public void testNullReturnsEmptyMap() {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-        editor.setAsText(null);
-
-        MethodDefinitionMap map = (MethodDefinitionMap) editor.getValue();
-        assertEquals(0, map.getMethodMapSize());
-    }
-
-    public void testSingleMethodParsing() throws Exception {
-        MethodDefinitionSourceEditor editor = new MethodDefinitionSourceEditor();
-        editor.setAsText(
-            "net.sf.acegisecurity.TargetObject.countLength=ROLE_ONE,ROLE_TWO,RUN_AS_ENTRY");
-
-        MethodDefinitionMap map = (MethodDefinitionMap) editor.getValue();
-
-        ConfigAttributeDefinition returnedCountLength = map.getAttributes(new MockMethodInvocation(
-                    TargetObject.class, "countLength",
-                    new Class[] {String.class}));
-        ConfigAttributeDefinition expectedCountLength = new ConfigAttributeDefinition();
-        expectedCountLength.addConfigAttribute(new SecurityConfig("ROLE_ONE"));
-        expectedCountLength.addConfigAttribute(new SecurityConfig("ROLE_TWO"));
-        expectedCountLength.addConfigAttribute(new SecurityConfig(
-                "RUN_AS_ENTRY"));
-        assertEquals(expectedCountLength, returnedCountLength);
-    }
-
-    //~ Inner Classes ==========================================================
-
-    private class MockMethodInvocation implements MethodInvocation {
-        Method method;
-
-        public MockMethodInvocation(Class clazz, String methodName,
-            Class[] parameterTypes) throws NoSuchMethodException {
-            method = clazz.getMethod(methodName, parameterTypes);
-        }
-
-        private MockMethodInvocation() {
-            super();
-        }
-
-        public Object[] getArguments() {
-            return null;
-        }
-
-        public Method getMethod() {
-            return method;
-        }
-
-        public AccessibleObject getStaticPart() {
-            return null;
-        }
-
-        public Object getThis() {
-            return null;
-        }
-
-        public Object proceed() throws Throwable {
-            return null;
-        }
-    }
-}

+ 0 - 155
core/src/test/java/org/acegisecurity/MockAttributes.java

@@ -1,155 +0,0 @@
-/* Copyright 2004 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 net.sf.acegisecurity;
-
-import org.springframework.metadata.Attributes;
-
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.List;
-
-
-/**
- * Used by the {@link MethodDefinitionAttributesTests}.
- *
- * @author Cameron Braid
- * @author Ben Alex
- */
-public class MockAttributes implements Attributes {
-    //~ Instance fields ========================================================
-
-    List classAttributes = Arrays.asList(new SecurityConfig[] {new SecurityConfig(
-                    "MOCK_CLASS")});
-    List classMethodAttributesCountLength = Arrays.asList(new String[] {new String(
-                    "MOCK_CLASS_METHOD_COUNT_LENGTH")});
-    List classMethodAttributesMakeLowerCase = Arrays.asList(new SecurityConfig[] {new SecurityConfig(
-                    "MOCK_CLASS_METHOD_MAKE_LOWER_CASE")});
-    List classMethodAttributesMakeUpperCase = Arrays.asList(new SecurityConfig[] {new SecurityConfig(
-                    "MOCK_CLASS_METHOD_MAKE_UPPER_CASE")});
-    List interfaceAttributes = Arrays.asList(new SecurityConfig[] {new SecurityConfig(
-                    "MOCK_INTERFACE")});
-    List interfaceMethodAttributesCountLength = Arrays.asList(new SecurityConfig[] {new SecurityConfig(
-                    "MOCK_INTERFACE_METHOD_COUNT_LENGTH")});
-    List interfaceMethodAttributesMakeLowerCase = Arrays.asList(new SecurityConfig[] {new SecurityConfig(
-                    "MOCK_INTERFACE_METHOD_MAKE_LOWER_CASE")});
-    List interfaceMethodAttributesMakeUpperCase = Arrays.asList(new SecurityConfig[] {new SecurityConfig(
-                    "MOCK_INTERFACE_METHOD_MAKE_UPPER_CASE"), new SecurityConfig(
-                    "RUN_AS")});
-
-    //~ Methods ================================================================
-
-    public Collection getAttributes(Class clazz) {
-        // Emphasise we return null for OtherTargetObject
-        if (clazz.equals(OtherTargetObject.class)) {
-            return null;
-        }
-
-        // interface
-        if (clazz.equals(ITargetObject.class)) {
-            return interfaceAttributes;
-        }
-
-        // class
-        if (clazz.equals(TargetObject.class)) {
-            return classAttributes;
-        }
-
-        return null;
-    }
-
-    public Collection getAttributes(Method method) {
-        // interface
-        if (method.getDeclaringClass().equals(ITargetObject.class)) {
-            if (method.getName().equals("countLength")) {
-                return interfaceMethodAttributesCountLength;
-            }
-
-            if (method.getName().equals("makeLowerCase")) {
-                return interfaceMethodAttributesMakeLowerCase;
-            }
-
-            if (method.getName().equals("makeUpperCase")) {
-                return interfaceMethodAttributesMakeUpperCase;
-            }
-
-            if (method.getName().equals("publicMakeLowerCase")) {
-                throw new UnsupportedOperationException(
-                    "mock support not implemented");
-            }
-        }
-
-        // class
-        if (method.getDeclaringClass().equals(TargetObject.class)) {
-            if (method.getName().equals("countLength")) {
-                return classMethodAttributesCountLength;
-            }
-
-            if (method.getName().equals("makeLowerCase")) {
-                return classMethodAttributesMakeLowerCase;
-            }
-
-            if (method.getName().equals("makeUpperCase")) {
-                return classMethodAttributesMakeUpperCase;
-            }
-
-            if (method.getName().equals("publicMakeLowerCase")) {
-                throw new UnsupportedOperationException(
-                    "mock support not implemented");
-            }
-        }
-
-        // other target object
-        if (method.getDeclaringClass().equals(OtherTargetObject.class)) {
-            if (method.getName().equals("countLength")) {
-                return classMethodAttributesCountLength;
-            }
-
-            if (method.getName().equals("makeLowerCase")) {
-                return classMethodAttributesMakeLowerCase;
-            }
-
-            if (method.getName().equals("makeUpperCase")) {
-                return null; // NB
-            }
-
-            if (method.getName().equals("publicMakeLowerCase")) {
-                throw new UnsupportedOperationException(
-                    "mock support not implemented");
-            }
-        }
-
-        return null;
-    }
-
-    public Collection getAttributes(Class arg0, Class arg1) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Collection getAttributes(Field arg0, Class arg1) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Collection getAttributes(Field arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Collection getAttributes(Method arg0, Class arg1) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-}

+ 0 - 420
core/src/test/java/org/acegisecurity/SecurityInterceptorTests.java

@@ -1,420 +0,0 @@
-/* Copyright 2004 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 net.sf.acegisecurity;
-
-import junit.framework.TestCase;
-
-import net.sf.acegisecurity.context.ContextHolder;
-import net.sf.acegisecurity.context.ContextImpl;
-import net.sf.acegisecurity.context.SecureContext;
-import net.sf.acegisecurity.context.SecureContextImpl;
-import net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken;
-
-import org.aopalliance.intercept.MethodInvocation;
-
-import org.springframework.beans.factory.support.DefaultListableBeanFactory;
-import org.springframework.beans.factory.support.PropertiesBeanDefinitionReader;
-
-import java.util.Iterator;
-import java.util.List;
-import java.util.Properties;
-import java.util.Vector;
-
-
-/**
- * Tests {@link SecurityInterceptor}.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class SecurityInterceptorTests extends TestCase {
-    //~ Constructors ===========================================================
-
-    public SecurityInterceptorTests() {
-        super();
-    }
-
-    public SecurityInterceptorTests(String arg0) {
-        super(arg0);
-    }
-
-    //~ Methods ================================================================
-
-    public final void setUp() throws Exception {
-        super.setUp();
-    }
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(SecurityInterceptorTests.class);
-    }
-
-    public void testCallingAPublicMethodFacadeWillNotRepeatSecurityChecksWhenPassedToTheSecuredMethodItFronts()
-        throws Exception {
-        ITargetObject target = makeInterceptedTarget();
-        String result = target.publicMakeLowerCase("HELLO");
-        assertEquals("hello ContextHolder Not Security Aware", result);
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testCallingAPublicMethodWhenPresentingASecureContextButWithoutAnyAuthenticationObject()
-        throws Exception {
-        SecureContext context = new SecureContextImpl();
-        ContextHolder.setContext(context);
-
-        ITargetObject target = makeInterceptedTarget();
-        String result = target.publicMakeLowerCase("HELLO");
-        assertEquals("hello Authentication empty", result);
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testCallingAPublicMethodWhenPresentingAnAuthenticationObjectWillProperlySetItsIsAuthenticatedProperty()
-        throws Exception {
-        SecureContext context = new SecureContextImpl();
-        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
-                "Password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_THIS_IS_NOT_REQUIRED_AS_IT_IS_PUBLIC")});
-        assertTrue(!token.isAuthenticated());
-        context.setAuthentication(token);
-        ContextHolder.setContext(context);
-
-        ITargetObject target = makeInterceptedTarget();
-        String result = target.publicMakeLowerCase("HELLO");
-        assertEquals("hello net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken false",
-            result);
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testDeniesWhenAppropriate() throws Exception {
-        SecureContext context = new SecureContextImpl();
-        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
-                "Password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_NO_BENEFIT_TO_THIS_GRANTED_AUTHORITY")});
-        context.setAuthentication(token);
-        ContextHolder.setContext(context);
-
-        ITargetObject target = makeInterceptedTarget();
-
-        try {
-            target.makeUpperCase("HELLO");
-            fail("Should have thrown AccessDeniedException");
-        } catch (AccessDeniedException expected) {
-            assertTrue(true);
-        }
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testGetters() {
-        MockAccessDecisionManager accessDecision = new MockAccessDecisionManager();
-        MockRunAsManager runAs = new MockRunAsManager();
-        MockAuthenticationManager authManager = new MockAuthenticationManager();
-        MockMethodDefinitionSource methodSource = new MockMethodDefinitionSource(false,
-                true);
-
-        SecurityInterceptor si = new SecurityInterceptor();
-        si.setAccessDecisionManager(accessDecision);
-        si.setRunAsManager(runAs);
-        si.setAuthenticationManager(authManager);
-        si.setMethodDefinitionSource(methodSource);
-
-        assertEquals(accessDecision, si.getAccessDecisionManager());
-        assertEquals(runAs, si.getRunAsManager());
-        assertEquals(authManager, si.getAuthenticationManager());
-        assertEquals(methodSource, si.getMethodDefinitionSource());
-    }
-
-    public void testMethodCallWithRunAsReplacement() throws Exception {
-        SecureContext context = new SecureContextImpl();
-        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
-                "Password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_UPPER")});
-        context.setAuthentication(token);
-        ContextHolder.setContext(context);
-
-        ITargetObject target = makeInterceptedTarget();
-        String result = target.makeUpperCase("hello");
-        assertEquals("HELLO net.sf.acegisecurity.MockRunAsAuthenticationToken true",
-            result);
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testMethodCallWithoutRunAsReplacement()
-        throws Exception {
-        SecureContext context = new SecureContextImpl();
-        UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken("Test",
-                "Password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("MOCK_LOWER")});
-        assertTrue(!token.isAuthenticated());
-        context.setAuthentication(token);
-        ContextHolder.setContext(context);
-
-        ITargetObject target = makeInterceptedTarget();
-        String result = target.makeLowerCase("HELLO");
-
-        // Note we check the isAuthenticated becomes true in following line
-        assertEquals("hello net.sf.acegisecurity.providers.UsernamePasswordAuthenticationToken true",
-            result);
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testRejectionOfEmptyContextHolder() throws Exception {
-        ITargetObject target = makeInterceptedTarget();
-
-        try {
-            target.makeUpperCase("hello");
-            fail(
-                "Should have thrown AuthenticationCredentialsNotFoundException");
-        } catch (AuthenticationCredentialsNotFoundException expected) {
-            assertTrue(true);
-        }
-    }
-
-    public void testRejectionOfNonSecureContextOnContextHolder()
-        throws Exception {
-        ContextHolder.setContext(new ContextImpl());
-
-        ITargetObject target = makeInterceptedTarget();
-
-        try {
-            target.makeUpperCase("hello");
-            fail(
-                "Should have thrown AuthenticationCredentialsNotFoundException");
-        } catch (AuthenticationCredentialsNotFoundException expected) {
-            assertTrue(true);
-        }
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testRejectionOfSecureContextThatContainsNoAuthenticationObject()
-        throws Exception {
-        ContextHolder.setContext(new SecureContextImpl());
-
-        ITargetObject target = makeInterceptedTarget();
-
-        try {
-            target.makeUpperCase("hello");
-            fail(
-                "Should have thrown AuthenticationCredentialsNotFoundException");
-        } catch (AuthenticationCredentialsNotFoundException expected) {
-            assertTrue(true);
-        }
-
-        ContextHolder.setContext(null);
-    }
-
-    public void testStartupCheckForAccessDecisionManager() {
-        SecurityInterceptor si = new SecurityInterceptor();
-        si.setRunAsManager(new MockRunAsManager());
-        si.setAuthenticationManager(new MockAuthenticationManager());
-
-        si.setMethodDefinitionSource(new MockMethodDefinitionSource(false, true));
-
-        try {
-            si.afterPropertiesSet();
-            fail("Should have thrown IllegalArgumentException");
-        } catch (IllegalArgumentException expected) {
-            assertEquals("An AccessDecisionManager is required",
-                expected.getMessage());
-        }
-    }
-
-    public void testStartupCheckForAuthenticationManager() {
-        SecurityInterceptor si = new SecurityInterceptor();
-        si.setAccessDecisionManager(new MockAccessDecisionManager());
-        si.setRunAsManager(new MockRunAsManager());
-
-        si.setMethodDefinitionSource(new MockMethodDefinitionSource(false, true));
-
-        try {
-            si.afterPropertiesSet();
-            fail("Should have thrown IllegalArgumentException");
-        } catch (IllegalArgumentException expected) {
-            assertEquals("An AuthenticationManager is required",
-                expected.getMessage());
-        }
-    }
-
-    public void testStartupCheckForMethodDefinitionSource() {
-        SecurityInterceptor si = new SecurityInterceptor();
-        si.setAccessDecisionManager(new MockAccessDecisionManager());
-        si.setRunAsManager(new MockRunAsManager());
-        si.setAuthenticationManager(new MockAuthenticationManager());
-
-        try {
-            si.afterPropertiesSet();
-            fail("Should have thrown IllegalArgumentException");
-        } catch (IllegalArgumentException expected) {
-            assertEquals("A MethodDefinitionSource is required",
-                expected.getMessage());
-        }
-    }
-
-    public void testStartupCheckForRunAsManager() {
-        SecurityInterceptor si = new SecurityInterceptor();
-        si.setAccessDecisionManager(new MockAccessDecisionManager());
-        si.setAuthenticationManager(new MockAuthenticationManager());
-
-        si.setMethodDefinitionSource(new MockMethodDefinitionSource(false, true));
-
-        try {
-            si.afterPropertiesSet();
-            fail("Should have thrown IllegalArgumentException");
-        } catch (IllegalArgumentException expected) {
-            assertEquals("A RunAsManager is required", expected.getMessage());
-        }
-    }
-
-    public void testValidationFailsIfInvalidAttributePresented() {
-        SecurityInterceptor si = new SecurityInterceptor();
-        si.setAccessDecisionManager(new MockAccessDecisionManager());
-        si.setRunAsManager(new MockRunAsManager());
-        si.setAuthenticationManager(new MockAuthenticationManager());
-
-        assertTrue(si.isValidateConfigAttributes()); // check default
-        si.setMethodDefinitionSource(new MockMethodDefinitionSource(true, true));
-
-        try {
-            si.afterPropertiesSet();
-            fail("Should have thrown IllegalArgumentException");
-        } catch (IllegalArgumentException expected) {
-            assertEquals("Unsupported configuration attributes: [ANOTHER_INVALID, INVALID_ATTRIBUTE]",
-                expected.getMessage());
-        }
-    }
-
-    public void testValidationNotAttemptedIfIsValidateConfigAttributesSetToFalse() {
-        SecurityInterceptor si = new SecurityInterceptor();
-        si.setAccessDecisionManager(new MockAccessDecisionManager());
-        si.setRunAsManager(new MockRunAsManager());
-        si.setAuthenticationManager(new MockAuthenticationManager());
-
-        assertTrue(si.isValidateConfigAttributes()); // check default
-        si.setValidateConfigAttributes(false);
-        assertTrue(!si.isValidateConfigAttributes()); // check changed
-
-        si.setMethodDefinitionSource(new MockMethodDefinitionSource(true, true));
-        si.afterPropertiesSet();
-        assertTrue(true);
-    }
-
-    public void testValidationNotAttemptedIfMethodDefinitionSourceCannotReturnIterator() {
-        SecurityInterceptor si = new SecurityInterceptor();
-        si.setAccessDecisionManager(new MockAccessDecisionManager());
-        si.setRunAsManager(new MockRunAsManager());
-        si.setAuthenticationManager(new MockAuthenticationManager());
-
-        assertTrue(si.isValidateConfigAttributes()); // check default
-        si.setMethodDefinitionSource(new MockMethodDefinitionSource(true, false));
-        si.afterPropertiesSet();
-        assertTrue(true);
-    }
-
-    private ITargetObject makeInterceptedTarget() {
-        String PREFIX = "beans.";
-        DefaultListableBeanFactory lbf = new DefaultListableBeanFactory();
-        Properties p = new Properties();
-        p.setProperty(PREFIX + "authentication.class",
-            "net.sf.acegisecurity.MockAuthenticationManager");
-        p.setProperty(PREFIX + "accessDecision.class",
-            "net.sf.acegisecurity.MockAccessDecisionManager");
-        p.setProperty(PREFIX + "runAs.class",
-            "net.sf.acegisecurity.MockRunAsManager");
-
-        p.setProperty(PREFIX + "securityInterceptor.class",
-            "net.sf.acegisecurity.SecurityInterceptor");
-        p.setProperty(PREFIX + "securityInterceptor.authenticationManager(ref)",
-            "authentication");
-        p.setProperty(PREFIX + "securityInterceptor.accessDecisionManager(ref)",
-            "accessDecision");
-        p.setProperty(PREFIX + "securityInterceptor.runAsManager(ref)", "runAs");
-        p.setProperty(PREFIX + "securityInterceptor.methodDefinitionSource",
-            "net.sf.acegisecurity.ITargetObject.makeLower*=MOCK_LOWER\r\nnet.sf.acegisecurity.ITargetObject.makeUpper*=MOCK_UPPER,RUN_AS");
-
-        p.setProperty(PREFIX + "targetObject.class",
-            "net.sf.acegisecurity.TargetObject");
-        p.setProperty(PREFIX + "target.class",
-            "org.springframework.aop.framework.ProxyFactoryBean");
-        p.setProperty(PREFIX + "target.proxyInterfaces",
-            "net.sf.acegisecurity.ITargetObject");
-        p.setProperty(PREFIX + "target.interceptorNames",
-            "securityInterceptor,targetObject");
-
-        (new PropertiesBeanDefinitionReader(lbf)).registerBeanDefinitions(p,
-            PREFIX);
-
-        return (ITargetObject) lbf.getBean("target");
-    }
-
-    //~ Inner Classes ==========================================================
-
-    private class MockMethodDefinitionSource implements MethodDefinitionSource {
-        private List list;
-        private boolean returnAnIterator;
-
-        public MockMethodDefinitionSource(boolean includeInvalidAttributes,
-            boolean returnAnIteratorWhenRequested) {
-            returnAnIterator = returnAnIteratorWhenRequested;
-            list = new Vector();
-
-            ConfigAttributeDefinition def1 = new ConfigAttributeDefinition();
-            def1.addConfigAttribute(new SecurityConfig("MOCK_LOWER"));
-            list.add(def1);
-
-            if (includeInvalidAttributes) {
-                ConfigAttributeDefinition def2 = new ConfigAttributeDefinition();
-                def2.addConfigAttribute(new SecurityConfig("MOCK_LOWER"));
-                def2.addConfigAttribute(new SecurityConfig("INVALID_ATTRIBUTE"));
-                list.add(def2);
-            }
-
-            ConfigAttributeDefinition def3 = new ConfigAttributeDefinition();
-            def3.addConfigAttribute(new SecurityConfig("MOCK_UPPER"));
-            def3.addConfigAttribute(new SecurityConfig("RUN_AS"));
-            list.add(def3);
-
-            if (includeInvalidAttributes) {
-                ConfigAttributeDefinition def4 = new ConfigAttributeDefinition();
-                def4.addConfigAttribute(new SecurityConfig("MOCK_SOMETHING"));
-                def4.addConfigAttribute(new SecurityConfig("ANOTHER_INVALID"));
-                list.add(def4);
-            }
-        }
-
-        private MockMethodDefinitionSource() {
-            super();
-        }
-
-        public ConfigAttributeDefinition getAttributes(
-            MethodInvocation invocation) {
-            throw new UnsupportedOperationException(
-                "mock method not implemented");
-        }
-
-        public Iterator getConfigAttributeDefinitions() {
-            if (returnAnIterator) {
-                return list.iterator();
-            } else {
-                return null;
-            }
-        }
-    }
-}

+ 0 - 260
core/src/test/java/org/acegisecurity/adapters/AbstractIntegrationFilterTests.java

@@ -1,260 +0,0 @@
-/* Copyright 2004 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 net.sf.acegisecurity.adapters;
-
-import junit.framework.TestCase;
-
-import net.sf.acegisecurity.Authentication;
-import net.sf.acegisecurity.GrantedAuthority;
-import net.sf.acegisecurity.GrantedAuthorityImpl;
-import net.sf.acegisecurity.context.Context;
-import net.sf.acegisecurity.context.ContextHolder;
-import net.sf.acegisecurity.context.SecureContext;
-import net.sf.acegisecurity.context.SecureContextImpl;
-
-import java.io.IOException;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-
-
-/**
- * Tests {@link AbstractIntegrationFilter}.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class AbstractIntegrationFilterTests extends TestCase {
-    //~ Constructors ===========================================================
-
-    public AbstractIntegrationFilterTests() {
-        super();
-    }
-
-    public AbstractIntegrationFilterTests(String arg0) {
-        super(arg0);
-    }
-
-    //~ Methods ================================================================
-
-    public final void setUp() throws Exception {
-        super.setUp();
-    }
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(AbstractIntegrationFilterTests.class);
-    }
-
-    public void testContextHolderContentsPreserved() throws Exception {
-        PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
-                "someone", "password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
-        MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(principal);
-        MockFilterChain chain = new MockFilterChain(true, principal);
-
-        MockSecureContextImpl secureContext = new MockSecureContextImpl(
-                "FOO_BAR");
-        ContextHolder.setContext(secureContext);
-        assertEquals(secureContext, ContextHolder.getContext());
-
-        executeFilterInContainerSimulator(filter, null, null, chain);
-
-        MockSecureContextImpl after = (MockSecureContextImpl) ContextHolder
-            .getContext();
-        assertEquals(secureContext.getInfo(), after.getInfo());
-        ContextHolder.setContext(null);
-    }
-
-    public void testContextHolderHasAuthenticationRemoved()
-        throws Exception {
-        PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
-                "someone", "password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
-        MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(principal);
-        MockFilterChain chain = new MockFilterChain(true, principal);
-
-        SecureContext secureContext = new SecureContextImpl();
-        secureContext.setAuthentication(principal);
-        ContextHolder.setContext(secureContext);
-        assertEquals(secureContext, ContextHolder.getContext());
-
-        executeFilterInContainerSimulator(filter, null, null, chain);
-
-        SecureContext after = (SecureContext) ContextHolder.getContext();
-        assertEquals(null, after.getAuthentication());
-        ContextHolder.setContext(null);
-    }
-
-    public void testIgnoredWhenConcreteClassReturnsANonAuthenticationObject()
-        throws Exception {
-        MockPrincipal principal = new MockPrincipal();
-        MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(principal);
-        MockFilterChain chain = new MockFilterChain(false, null);
-
-        Context before = ContextHolder.getContext();
-
-        if (before != null) {
-            if (before instanceof SecureContext) {
-                assertEquals(null, ((SecureContext) before).getAuthentication());
-            }
-        }
-
-        executeFilterInContainerSimulator(filter, null, null, chain);
-
-        Context after = ContextHolder.getContext();
-
-        if (after != null) {
-            if (after instanceof SecureContext) {
-                assertEquals(null, ((SecureContext) after).getAuthentication());
-            }
-        }
-    }
-
-    public void testIgnoredWhenConcreteClassReturnsNullAuthenticationObject()
-        throws Exception {
-        MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(null);
-        MockFilterChain chain = new MockFilterChain(false, null);
-
-        Context before = ContextHolder.getContext();
-
-        if (before != null) {
-            if (before instanceof SecureContext) {
-                assertEquals(null, ((SecureContext) before).getAuthentication());
-            }
-        }
-
-        executeFilterInContainerSimulator(filter, null, null, chain);
-
-        Context after = ContextHolder.getContext();
-
-        if (after != null) {
-            if (after instanceof SecureContext) {
-                assertEquals(null, ((SecureContext) after).getAuthentication());
-            }
-        }
-    }
-
-    public void testSuccessWhenConcreteClassReturnsValidAuthenticationObject()
-        throws Exception {
-        PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
-                "someone", "password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
-        MockAbstractIntegrationFilterImpl filter = new MockAbstractIntegrationFilterImpl(principal);
-        MockFilterChain chain = new MockFilterChain(true, principal);
-
-        Context before = ContextHolder.getContext();
-
-        if (before != null) {
-            if (before instanceof SecureContext) {
-                assertEquals(null, ((SecureContext) before).getAuthentication());
-            }
-        }
-
-        executeFilterInContainerSimulator(filter, null, null, chain);
-
-        Context after = ContextHolder.getContext();
-
-        if (after != null) {
-            if (after instanceof SecureContext) {
-                assertEquals(null, ((SecureContext) after).getAuthentication());
-            }
-        }
-    }
-
-    private void executeFilterInContainerSimulator(Filter filter,
-        ServletRequest request, ServletResponse response,
-        FilterChain filterChain) throws ServletException, IOException {
-        filter.init(null);
-        filter.doFilter(request, response, filterChain);
-        filter.destroy();
-    }
-
-    //~ Inner Classes ==========================================================
-
-    private class MockAbstractIntegrationFilterImpl
-        extends AbstractIntegrationFilter {
-        private Object extractFromContainerResult;
-
-        public MockAbstractIntegrationFilterImpl(
-            Object extractFromContainerResult) {
-            this.extractFromContainerResult = extractFromContainerResult;
-        }
-
-        private MockAbstractIntegrationFilterImpl() {
-            super();
-        }
-
-        public Object extractFromContainer(ServletRequest request) {
-            return this.extractFromContainerResult;
-        }
-    }
-
-    private class MockFilterChain implements FilterChain {
-        private Authentication expectedAuthenticationObjectInContextHolder;
-        private boolean expectContextHolderContainSecureContext = false;
-
-        public MockFilterChain(
-            boolean expectContextHolderContainSecureContext,
-            Authentication expectedAuthenticationObjectInContextHolder) {
-            if ((expectedAuthenticationObjectInContextHolder != null)
-                && !expectContextHolderContainSecureContext) {
-                throw new IllegalArgumentException(
-                    "If an Authentication object is expected, the ContextHolder should contain a SecureContext");
-            }
-
-            this.expectContextHolderContainSecureContext = expectContextHolderContainSecureContext;
-            this.expectedAuthenticationObjectInContextHolder = expectedAuthenticationObjectInContextHolder;
-        }
-
-        private MockFilterChain() {
-            super();
-        }
-
-        public void doFilter(ServletRequest request, ServletResponse response)
-            throws IOException, ServletException {
-            if (expectContextHolderContainSecureContext) {
-                Context context = ContextHolder.getContext();
-
-                if (!(context instanceof SecureContext)) {
-                    fail("ContextHolder should have contained SecureContext");
-                }
-            } else {
-                if (ContextHolder.getContext() != null) {
-                    fail("ContextHolder should have been null but wasn't");
-                }
-            }
-        }
-    }
-
-    private class MockSecureContextImpl extends SecureContextImpl {
-        private String info;
-
-        public MockSecureContextImpl(String info) {
-            this.info = info;
-        }
-
-        private MockSecureContextImpl() {
-            super();
-        }
-
-        public String getInfo() {
-            return this.info;
-        }
-    }
-}

+ 0 - 149
core/src/test/java/org/acegisecurity/adapters/AutoIntegrationFilterTests.java

@@ -1,149 +0,0 @@
-/* Copyright 2004 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 net.sf.acegisecurity.adapters;
-
-import junit.framework.TestCase;
-
-import net.sf.acegisecurity.GrantedAuthority;
-import net.sf.acegisecurity.GrantedAuthorityImpl;
-import net.sf.acegisecurity.adapters.jboss.JbossIntegrationFilter;
-import net.sf.acegisecurity.adapters.jboss.MockInitialContext;
-import net.sf.acegisecurity.adapters.jboss.MockJbossIntegrationFilter;
-
-import org.jboss.security.SimplePrincipal;
-
-import java.security.Principal;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import javax.naming.Context;
-
-import javax.security.auth.Subject;
-
-
-/**
- * Tests {@link AutoIntegrationFilter}.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class AutoIntegrationFilterTests extends TestCase {
-    //~ Constructors ===========================================================
-
-    public AutoIntegrationFilterTests() {
-        super();
-    }
-
-    public AutoIntegrationFilterTests(String arg0) {
-        super(arg0);
-    }
-
-    //~ Methods ================================================================
-
-    public final void setUp() throws Exception {
-        super.setUp();
-    }
-
-    public static void main(String[] args) {
-        junit.textui.TestRunner.run(AutoIntegrationFilterTests.class);
-    }
-
-    public void testDetectsAuthenticationObjectInHttpRequest() {
-        AutoIntegrationFilter filter = new AutoIntegrationFilter();
-        PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
-                "someone", "password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
-        Object result = filter.extractFromContainer(new MockHttpServletRequest(
-                    principal));
-
-        if (!(result instanceof PrincipalAcegiUserToken)) {
-            fail("Should have returned PrincipalAcegiUserToken");
-        }
-
-        PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result;
-        assertEquals(principal, result);
-    }
-
-    public void testDetectsAuthenticationObjectInJboss() {
-        // Prepare a mock Jboss environment reflecting completed authentication
-        PrincipalAcegiUserToken principal = new PrincipalAcegiUserToken("key",
-                "someone", "password",
-                new GrantedAuthority[] {new GrantedAuthorityImpl("SOME_ROLE")});
-        Context context = new MockInitialContext(makeIntoSubject(principal));
-        JbossIntegrationFilter jbossFilter = new MockJbossIntegrationFilter(context);
-
-        // Create a SimplePrincipal, which is what JBoss places into HttpRequest
-        SimplePrincipal simplePrincipal = new SimplePrincipal("TEST");
-
-        // Now try to extract authentication information via our mock AutoIntegrationFilter
-        AutoIntegrationFilter filter = new MockAutoIntegrationFilterJboss(jbossFilter);
-        Object result = filter.extractFromContainer(new MockHttpServletRequest(
-                    simplePrincipal));
-
-        System.out.println(result);
-
-        if (!(result instanceof PrincipalAcegiUserToken)) {
-            fail("Should have returned PrincipalAcegiUserToken");
-        }
-
-        PrincipalAcegiUserToken castResult = (PrincipalAcegiUserToken) result;
-        assertEquals(principal, result);
-    }
-
-    public void testHandlesIfHttpRequestIsNullForSomeReason() {
-        AutoIntegrationFilter filter = new AutoIntegrationFilter();
-        assertEquals(null, filter.extractFromContainer(null));
-    }
-
-    public void testHandlesIfThereIsNoPrincipal() {
-        AutoIntegrationFilter filter = new AutoIntegrationFilter();
-        assertEquals(null,
-            filter.extractFromContainer(new MockHttpServletRequest(null)));
-    }
-
-    public void testReturnsNullIfNonAuthenticationObjectInHttpRequest() {
-        AutoIntegrationFilter filter = new AutoIntegrationFilter();
-        assertEquals(null,
-            filter.extractFromContainer(
-                new MockHttpServletRequest(new MockPrincipal())));
-    }
-
-    private Subject makeIntoSubject(Principal principal) {
-        Set principals = new HashSet();
-        principals.add(principal);
-
-        return new Subject(false, principals, new HashSet(), new HashSet());
-    }
-
-    //~ Inner Classes ==========================================================
-
-    private class MockAutoIntegrationFilterJboss extends AutoIntegrationFilter {
-        private JbossIntegrationFilter filter;
-
-        public MockAutoIntegrationFilterJboss(JbossIntegrationFilter filter) {
-            this.filter = filter;
-        }
-
-        private MockAutoIntegrationFilterJboss() {
-            super();
-        }
-
-        protected JbossIntegrationFilter getJbossIntegrationFilter() {
-            return this.filter;
-        }
-    }
-}

+ 0 - 257
core/src/test/java/org/acegisecurity/adapters/MockHttpServletRequest.java

@@ -1,257 +0,0 @@
-/* Copyright 2004 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 net.sf.acegisecurity.adapters;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-
-import java.security.Principal;
-
-import java.util.Enumeration;
-import java.util.Locale;
-import java.util.Map;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-
-/**
- * Mocks a <code>HttpServletRequest</code> and provides the
- * <code>getUserPrincipal()</code> method.
- *
- * @author Ben Alex
- * @version $Id$
- */
-public class MockHttpServletRequest implements HttpServletRequest {
-    //~ Instance fields ========================================================
-
-    private Principal principal;
-
-    //~ Constructors ===========================================================
-
-    public MockHttpServletRequest(Principal principal) {
-        this.principal = principal;
-    }
-
-    private MockHttpServletRequest() {
-        super();
-    }
-
-    //~ Methods ================================================================
-
-    public void setAttribute(String arg0, Object arg1) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Object getAttribute(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Enumeration getAttributeNames() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getAuthType() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public void setCharacterEncoding(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getCharacterEncoding() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public int getContentLength() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getContentType() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getContextPath() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Cookie[] getCookies() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public long getDateHeader(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getHeader(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Enumeration getHeaderNames() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Enumeration getHeaders(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public ServletInputStream getInputStream() throws IOException {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public int getIntHeader(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Locale getLocale() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Enumeration getLocales() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getMethod() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getParameter(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Map getParameterMap() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Enumeration getParameterNames() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String[] getParameterValues(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getPathInfo() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getPathTranslated() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getProtocol() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getQueryString() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public BufferedReader getReader() throws IOException {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getRealPath(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getRemoteAddr() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getRemoteHost() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getRemoteUser() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public RequestDispatcher getRequestDispatcher(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getRequestURI() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public StringBuffer getRequestURL() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getRequestedSessionId() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public boolean isRequestedSessionIdFromCookie() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public boolean isRequestedSessionIdFromURL() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public boolean isRequestedSessionIdFromUrl() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public boolean isRequestedSessionIdValid() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getScheme() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public boolean isSecure() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getServerName() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public int getServerPort() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public String getServletPath() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public HttpSession getSession(boolean arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public HttpSession getSession() {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public boolean isUserInRole(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-
-    public Principal getUserPrincipal() {
-        return this.principal;
-    }
-
-    public void removeAttribute(String arg0) {
-        throw new UnsupportedOperationException("mock method not implemented");
-    }
-}