⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aclprovidermanagertests.java

📁 acegi构造安全的java系统
💻 JAVA
字号:
/* 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. * 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.acl;import junit.framework.TestCase;import org.acegisecurity.Authentication;import org.acegisecurity.GrantedAuthority;import org.acegisecurity.GrantedAuthorityImpl;import org.acegisecurity.acl.basic.NamedEntityObjectIdentity;import org.acegisecurity.acl.basic.SimpleAclEntry;import org.acegisecurity.providers.UsernamePasswordAuthenticationToken;import java.util.List;import java.util.Vector;/** * Tests {@link AclProviderManager}. * * @author Ben Alex * @version $Id: AclProviderManagerTests.java 1784 2007-02-24 21:00:24Z luke_t $ */public class AclProviderManagerTests extends TestCase {    //~ Constructors ===================================================================================================    public AclProviderManagerTests() {        super();    }    public AclProviderManagerTests(String arg0) {        super(arg0);    }    //~ Methods ========================================================================================================    public static void main(String[] args) {        junit.textui.TestRunner.run(AclProviderManagerTests.class);    }    private AclProviderManager makeProviderManager() {        MockProvider provider1 = new MockProvider();        List providers = new Vector();        providers.add(provider1);        AclProviderManager mgr = new AclProviderManager();        mgr.setProviders(providers);        return mgr;    }    public final void setUp() throws Exception {        super.setUp();    }    public void testAclLookupFails() {        AclProviderManager mgr = makeProviderManager();        assertNull(mgr.getAcls(new Integer(5)));    }    public void testAclLookupForGivenAuthenticationSuccess() {        AclProviderManager mgr = makeProviderManager();        assertNotNull(mgr.getAcls("STRING", new UsernamePasswordAuthenticationToken("marissa", "not used")));    }    public void testAclLookupSuccess() {        AclProviderManager mgr = makeProviderManager();        assertNotNull(mgr.getAcls("STRING"));    }    public void testRejectsNulls() {        AclProviderManager mgr = new AclProviderManager();        try {            mgr.getAcls(null);            fail("Should have thrown IllegalArgumentException");        } catch (IllegalArgumentException expected) {            assertTrue(true);        }        try {            mgr.getAcls(null, new UsernamePasswordAuthenticationToken("marissa", "not used"));            fail("Should have thrown IllegalArgumentException");        } catch (IllegalArgumentException expected) {            assertTrue(true);        }        try {            mgr.getAcls("SOME_DOMAIN_INSTANCE", null);            fail("Should have thrown IllegalArgumentException");        } catch (IllegalArgumentException expected) {            assertTrue(true);        }    }    public void testReturnsNullIfNoSupportingProvider() {        AclProviderManager mgr = makeProviderManager();        assertNull(mgr.getAcls(new Integer(4), new UsernamePasswordAuthenticationToken("marissa", "not used")));        assertNull(mgr.getAcls(new Integer(4)));    }    public void testStartupFailsIfProviderListNotContainingProviders()        throws Exception {        List providers = new Vector();        providers.add("THIS_IS_NOT_A_PROVIDER");        AclProviderManager mgr = new AclProviderManager();        try {            mgr.setProviders(providers);            fail("Should have thrown IllegalArgumentException");        } catch (IllegalArgumentException expected) {            assertTrue(true);        }    }    public void testStartupFailsIfProviderListNotSet()        throws Exception {        AclProviderManager mgr = new AclProviderManager();        try {            mgr.afterPropertiesSet();            fail("Should have thrown IllegalArgumentException");        } catch (IllegalArgumentException expected) {            assertTrue(true);        }    }    public void testStartupFailsIfProviderListNull() throws Exception {        AclProviderManager mgr = new AclProviderManager();        try {            mgr.setProviders(null);            fail("Should have thrown IllegalArgumentException");        } catch (IllegalArgumentException expected) {            assertTrue(true);        }    }    public void testSuccessfulStartup() throws Exception {        AclProviderManager mgr = makeProviderManager();        mgr.afterPropertiesSet();        assertTrue(true);        assertEquals(1, mgr.getProviders().size());    }    //~ Inner Classes ==================================================================================================    private class MockProvider implements AclProvider {        private UsernamePasswordAuthenticationToken marissa = new UsernamePasswordAuthenticationToken("marissa",                "not used",                new GrantedAuthority[] {new GrantedAuthorityImpl("ROLE_FOO"), new GrantedAuthorityImpl("ROLE_BAR")});        private SimpleAclEntry entry100Marissa = new SimpleAclEntry(marissa.getPrincipal(),                new NamedEntityObjectIdentity("OBJECT", "100"), null, 2);        private UsernamePasswordAuthenticationToken scott = new UsernamePasswordAuthenticationToken("scott",                "not used",                new GrantedAuthority[] {                        new GrantedAuthorityImpl("ROLE_FOO"),                        new GrantedAuthorityImpl("ROLE_MANAGER")                });        private SimpleAclEntry entry100Scott = new SimpleAclEntry(scott.getPrincipal(),                new NamedEntityObjectIdentity("OBJECT", "100"), null, 4);        public AclEntry[] getAcls(Object domainInstance, Authentication authentication) {            if (authentication.getPrincipal().equals(scott.getPrincipal())) {                return new AclEntry[] {entry100Scott};            }            if (authentication.getPrincipal().equals(marissa.getPrincipal())) {                return new AclEntry[] {entry100Marissa};            }            return null;        }        public AclEntry[] getAcls(Object domainInstance) {            return new AclEntry[] {entry100Marissa, entry100Scott};        }        /**         * Only supports <code>Object</code>s of type <code>String</code>         *         * @param domainInstance DOCUMENT ME!         *         * @return DOCUMENT ME!         */        public boolean supports(Object domainInstance) {            return (domainInstance instanceof String);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -