001 package org.apache.turbine.services.security;
002
003
004 /*
005 * Licensed to the Apache Software Foundation (ASF) under one
006 * or more contributor license agreements. See the NOTICE file
007 * distributed with this work for additional information
008 * regarding copyright ownership. The ASF licenses this file
009 * to you under the Apache License, Version 2.0 (the
010 * "License"); you may not use this file except in compliance
011 * with the License. You may obtain a copy of the License at
012 *
013 * http://www.apache.org/licenses/LICENSE-2.0
014 *
015 * Unless required by applicable law or agreed to in writing,
016 * software distributed under the License is distributed on an
017 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
018 * KIND, either express or implied. See the License for the
019 * specific language governing permissions and limitations
020 * under the License.
021 */
022
023
024 import java.util.HashMap;
025 import java.util.Map;
026
027 import org.apache.commons.configuration.BaseConfiguration;
028 import org.apache.commons.configuration.Configuration;
029
030 import org.apache.turbine.services.ServiceManager;
031 import org.apache.turbine.services.TurbineServices;
032 import org.apache.turbine.services.security.SecurityService;
033 import org.apache.turbine.test.BaseTestCase;
034 import org.apache.turbine.test.MockSecurityService;
035 import org.apache.turbine.util.TurbineConfig;
036 import org.apache.turbine.util.security.AccessControlList;
037 import org.apache.turbine.util.security.TurbineAccessControlList;
038
039 public class AccessControlListTest
040 extends BaseTestCase
041 {
042
043 private static TurbineConfig tc = null;
044 private static final String PREFIX = "services." +
045 SecurityService.SERVICE_NAME + '.';
046
047 public AccessControlListTest( String name )
048 throws Exception
049 {
050 super(name);
051 }
052
053 public void setUp() throws Exception
054 {
055 tc = new TurbineConfig(".", "/conf/test/TestFulcrumComponents.properties");
056 tc.initialize();
057 }
058 public void tearDown() throws Exception
059 {
060 if (tc != null)
061 {
062 tc.dispose();
063 }
064 }
065
066 public void testSelection() throws Exception
067 {
068 ServiceManager serviceManager = TurbineServices.getInstance();
069 serviceManager.setApplicationRoot(".");
070
071 Configuration cfg = new BaseConfiguration();
072
073 cfg.setProperty(PREFIX + "classname",
074 MockSecurityService.class.getName());
075
076 cfg.setProperty(PREFIX + "acl.class",
077 TurbineAccessControlList.class.getName());
078
079 // We must run init!
080 cfg.setProperty(PREFIX+"earlyInit", "true");
081
082 /* Ugh */
083
084 // cfg.setProperty("services." + FactoryService.SERVICE_NAME + ".classname",
085 // TurbineFactoryService.class.getName());
086
087 serviceManager.setConfiguration(cfg);
088
089 serviceManager.init();
090
091 Class aclClass = TurbineSecurity.getService().getAclClass();
092
093 if(!aclClass.getName().equals(TurbineAccessControlList.class.getName()))
094 {
095 fail("ACL Class is " + aclClass.getName()
096 + ", expected was " + TurbineAccessControlList.class.getName());
097 }
098
099 Map roles = new HashMap();
100 Map permissions = new HashMap();
101
102 AccessControlList aclTest =
103 TurbineSecurity.getService().getAclInstance(roles, permissions);
104
105 if(aclTest == null)
106 {
107 fail("Security Service failed to deliver a " + aclClass.getName()
108 + " Object");
109 }
110 }
111
112
113 }