You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by ep...@apache.org on 2003/12/11 00:21:12 UTC

cvs commit: jakarta-turbine-fulcrum/security/adapters/turbine/src/test roleTurbineConfigurationBasicModel.xml componentTurbineConfigurationBasicModel.xml AdapterTestTurbineResourcesBasicModel.properties

epugh       2003/12/10 15:21:12

  Modified:    security/adapters/turbine/src/test/org/apache/fulcrum/security/adapter/turbine
                        AccessControlListAdaptorTest.java
                        SecurityServiceAdaptorTest.java
  Added:       security/adapters/turbine/src/test/org/apache/fulcrum/security/adapter/turbine
                        AbstractAccessControlListAdaptorTest.java
                        AccessControlListAdaptorBasicModelTest.java
               security/adapters/turbine/src/test
                        roleTurbineConfigurationBasicModel.xml
                        componentTurbineConfigurationBasicModel.xml
                        AdapterTestTurbineResourcesBasicModel.properties
  Log:
  Unit tests for Basic versys Dynamic models and ACL's..
  
  Revision  Changes    Path
  1.2       +100 -83   jakarta-turbine-fulcrum/security/adapters/turbine/src/test/org/apache/fulcrum/security/adapter/turbine/AccessControlListAdaptorTest.java
  
  Index: AccessControlListAdaptorTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/security/adapters/turbine/src/test/org/apache/fulcrum/security/adapter/turbine/AccessControlListAdaptorTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- AccessControlListAdaptorTest.java	5 Dec 2003 23:33:16 -0000	1.1
  +++ AccessControlListAdaptorTest.java	10 Dec 2003 23:21:12 -0000	1.2
  @@ -54,11 +54,6 @@
    */
   import java.util.HashMap;
   import java.util.Map;
  -import java.util.Vector;
  -
  -import javax.servlet.ServletConfig;
  -import javax.servlet.http.HttpServletResponse;
  -import javax.servlet.http.HttpSession;
   
   import org.apache.fulcrum.security.BaseSecurityService;
   import org.apache.fulcrum.security.entity.Group;
  @@ -66,27 +61,14 @@
   import org.apache.fulcrum.security.entity.Role;
   import org.apache.fulcrum.security.model.dynamic.DynamicModelManager;
   import org.apache.fulcrum.security.model.dynamic.entity.DynamicUser;
  -
  -import org.apache.fulcrum.testcontainer.BaseUnitTest;
  -import org.apache.turbine.modules.actions.sessionvalidator.DefaultSessionValidator;
  -import org.apache.turbine.modules.actions.sessionvalidator.SessionValidator;
   import org.apache.turbine.om.security.User;
  -import org.apache.turbine.services.ServiceManager;
  -import org.apache.turbine.services.TurbineServices;
  -import org.apache.turbine.services.avaloncomponent.AvalonComponentService;
  -import org.apache.turbine.services.rundata.RunDataService;
  -import org.apache.turbine.services.security.SecurityService;
   import org.apache.turbine.services.security.TurbineSecurity;
  -import org.apache.turbine.util.RunData;
  -import org.apache.turbine.util.TurbineConfig;
   import org.apache.turbine.util.security.AccessControlList;
   import org.apache.turbine.util.security.GroupSet;
   import org.apache.turbine.util.security.PermissionSet;
   import org.apache.turbine.util.security.RoleSet;
   
  -import com.mockobjects.servlet.MockHttpServletResponse;
   import com.mockobjects.servlet.MockHttpSession;
  -import com.mockobjects.servlet.MockServletConfig;
   
   /**
    * Test that we can load up a fulcrum ACL in Turbine, without Turbine
  @@ -96,37 +78,50 @@
    * @version $Id$
    */
   
  -public class AccessControlListAdaptorTest extends BaseUnitTest
  +public class AccessControlListAdaptorTest
  +    extends AbstractAccessControlListAdaptorTest
   {
  -    private static final String PREFIX = "services." + SecurityService.SERVICE_NAME + '.';
  +
  +    public String getTRProps(){
  +        return "AdapterTestTurbineResources.properties";
  +    }
  +   
       public AccessControlListAdaptorTest(String name) throws Exception
       {
           super(name);
       }
  +
       public void testSwappingACL() throws Exception
       {
  -        TurbineConfig tc = new TurbineConfig(".", "/src/test/AdapterTestTurbineResources.properties");
  -        tc.initialize();
  +
           Class aclClass = TurbineSecurity.getService().getAclClass();
  -        if (!aclClass.getName().equals(AccessControlListAdapter.class.getName()))
  +        if (!aclClass
  +            .getName()
  +            .equals(AccessControlListAdapter.class.getName()))
           {
  -            fail("ACL Class is " + aclClass.getName() + ", expected was " + AccessControlListAdapter.class.getName());
  +            fail(
  +                "ACL Class is "
  +                    + aclClass.getName()
  +                    + ", expected was "
  +                    + AccessControlListAdapter.class.getName());
           }
           Map roles = new HashMap();
           Map permissions = new HashMap();
  -        AccessControlList acl = TurbineSecurity.getService().getAclInstance(roles, permissions);
  +        AccessControlList acl =
  +            TurbineSecurity.getService().getAclInstance(roles, permissions);
           if (acl == null)
           {
  -            fail("Security Service failed to deliver a " + aclClass.getName() + " Object");
  +            fail(
  +                "Security Service failed to deliver a "
  +                    + aclClass.getName()
  +                    + " Object");
           }
           assertTrue(acl instanceof AccessControlList);
           assertTrue(acl instanceof AccessControlListAdapter);
       }
       public void testGettingUserFromRunData() throws Exception
       {
  -        TurbineConfig tc = new TurbineConfig(".", "/src/test/AdapterTestTurbineResources.properties");
  -        tc.initialize();
  -        MockHttpSession session = new MockHttpSession();
  +
           session.setupGetAttribute(User.SESSION_KEY, null);
           User turbineUser = getUserFromRunData(session);
           assertNotNull(turbineUser);
  @@ -134,46 +129,62 @@
       }
       public void testUsingAvalonComponents() throws Exception
       {
  -        TurbineConfig tc = new TurbineConfig(".", "/src/test/AdapterTestTurbineResources.properties");
  -        tc.initialize();
  -        AvalonComponentService acs =
  -            (AvalonComponentService) TurbineServices.getInstance().getService(AvalonComponentService.SERVICE_NAME);
  -        BaseSecurityService securityService = (BaseSecurityService) acs.lookup(BaseSecurityService.ROLE);
  -        Group fulcrumGroup = securityService.getGroupManager().getGroupInstance("TEST_REVOKEALL");
  +
  +        BaseSecurityService securityService =
  +            (BaseSecurityService) acs.lookup(BaseSecurityService.ROLE);
  +        Group fulcrumGroup =
  +            securityService.getGroupManager().getGroupInstance(
  +                "TEST_REVOKEALL");
           securityService.getGroupManager().addGroup(fulcrumGroup);
  -        Group fulcrumGroup2 = securityService.getGroupManager().getGroupInstance("TEST_REVOKEALL2");
  +        Group fulcrumGroup2 =
  +            securityService.getGroupManager().getGroupInstance(
  +                "TEST_REVOKEALL2");
           securityService.getGroupManager().addGroup(fulcrumGroup2);
  -        Role fulcrumRole = securityService.getRoleManager().getRoleInstance("role1");
  -        Role fulcrumRole2 = securityService.getRoleManager().getRoleInstance("role2");
  +        Role fulcrumRole =
  +            securityService.getRoleManager().getRoleInstance("role1");
  +        Role fulcrumRole2 =
  +            securityService.getRoleManager().getRoleInstance("role2");
           securityService.getRoleManager().addRole(fulcrumRole);
           securityService.getRoleManager().addRole(fulcrumRole2);
  -        Permission fulcrumPermission = securityService.getPermissionManager().getPermissionInstance("perm1");
  -        Permission fulcrumPermission2 = securityService.getPermissionManager().getPermissionInstance("perm2");
  -        Permission fulcrumPermission3 = securityService.getPermissionManager().getPermissionInstance("perm3");
  +        Permission fulcrumPermission =
  +            securityService.getPermissionManager().getPermissionInstance(
  +                "perm1");
  +        Permission fulcrumPermission2 =
  +            securityService.getPermissionManager().getPermissionInstance(
  +                "perm2");
  +        Permission fulcrumPermission3 =
  +            securityService.getPermissionManager().getPermissionInstance(
  +                "perm3");
           securityService.getPermissionManager().addPermission(fulcrumPermission);
  -        securityService.getPermissionManager().addPermission(fulcrumPermission2);
  -        securityService.getPermissionManager().addPermission(fulcrumPermission3);
  -        DynamicModelManager modelManager = (DynamicModelManager)securityService.getModelManager();
  -		modelManager.grant(fulcrumRole, fulcrumPermission);
  -		modelManager.grant(fulcrumRole2, fulcrumPermission2);
  -		modelManager.grant(fulcrumRole2, fulcrumPermission3);
  -		modelManager.grant(fulcrumGroup, fulcrumRole);
  -		modelManager.grant(fulcrumGroup, fulcrumRole2);
  -		modelManager.grant(fulcrumGroup2, fulcrumRole2);
  +        securityService.getPermissionManager().addPermission(
  +            fulcrumPermission2);
  +        securityService.getPermissionManager().addPermission(
  +            fulcrumPermission3);
  +        DynamicModelManager modelManager =
  +            (DynamicModelManager) securityService.getModelManager();
  +        modelManager.grant(fulcrumRole, fulcrumPermission);
  +        modelManager.grant(fulcrumRole2, fulcrumPermission2);
  +        modelManager.grant(fulcrumRole2, fulcrumPermission3);
  +        modelManager.grant(fulcrumGroup, fulcrumRole);
  +        modelManager.grant(fulcrumGroup, fulcrumRole2);
  +        modelManager.grant(fulcrumGroup2, fulcrumRole2);
           org.apache.fulcrum.security.entity.User fulcrumUser =
               securityService.getUserManager().getUserInstance("Jeannie");
  -        fulcrumUser = securityService.getUserManager().addUser(fulcrumUser, "wyatt");
  -		modelManager.grant(fulcrumUser, fulcrumGroup);
  -		modelManager.grant(fulcrumUser, fulcrumGroup2);
  +        fulcrumUser =
  +            securityService.getUserManager().addUser(fulcrumUser, "wyatt");
  +        modelManager.grant(fulcrumUser, fulcrumGroup);
  +        modelManager.grant(fulcrumUser, fulcrumGroup2);
           assertEquals(2, ((DynamicUser) fulcrumUser).getGroups().size());
           GroupSet groupSet = TurbineSecurity.getService().getAllGroups();
           assertEquals(2, groupSet.size());
           RoleSet roleSet = TurbineSecurity.getService().getAllRoles();
           assertEquals(2, roleSet.size());
  -        PermissionSet permissionSet = TurbineSecurity.getService().getAllPermissions();
  +        PermissionSet permissionSet =
  +            TurbineSecurity.getService().getAllPermissions();
           assertEquals(3, permissionSet.size());
           User turbineUser = TurbineSecurity.getService().getUser("Jeannie");
  -        AccessControlList acl = TurbineSecurity.getService().getACL(turbineUser);
  +        AccessControlList acl =
  +            TurbineSecurity.getService().getACL(turbineUser);
           assertNotNull(acl);
           assertEquals(3, acl.getPermissions().size());
           MockHttpSession session = new MockHttpSession();
  @@ -182,34 +193,40 @@
           assertNotNull(turbineUser);
           assertFalse(TurbineSecurity.getService().isAnonymousUser(turbineUser));
       }
  -    private User getUserFromRunData(HttpSession session) throws Exception
  +
  +    public void testHasRole() throws Exception
       {
  -        RunDataService rds = (RunDataService) TurbineServices.getInstance().getService(RunDataService.SERVICE_NAME);
  -        BetterMockHttpServletRequest request = new BetterMockHttpServletRequest();
  -        request.setupServerName("bob");
  -        request.setupGetProtocol("http");
  -        request.setupScheme("scheme");
  -        request.setupPathInfo("damn");
  -        request.setupGetServletPath("damn2");
  -        request.setupGetContextPath("wow");
  -        request.setupGetContentType("html/text");
  -        request.setupAddHeader("Content-type", "html/text");
  -        Vector v = new Vector();
  -        request.setupGetParameterNames(v.elements());
  -        request.setSession(session);
  -        HttpServletResponse response = new MockHttpServletResponse();
  -        ServletConfig config = new MockServletConfig();
  -        RunData rd = rds.getRunData(request, response, config);
  -        SessionValidator sessionValidator = new DefaultSessionValidator();
  -        sessionValidator.doPerform(rd);
  -        User turbineUser = rd.getUser();
  +
  +        BaseSecurityService securityService =
  +            (BaseSecurityService) acs.lookup(BaseSecurityService.ROLE);
  +        Group fulcrumGroup =
  +            securityService.getGroupManager().getGroupInstance("TEST_GROUP");
  +        Role fulcrumRole =
  +            securityService.getRoleManager().getRoleInstance("TEST_ROLE");
  +        org.apache.fulcrum.security.entity.User fulcrumUser =
  +            securityService.getUserManager().getUserInstance("Mike");
  +
  +        securityService.getGroupManager().addGroup(fulcrumGroup);
  +        securityService.getRoleManager().addRole(fulcrumRole);
  +        fulcrumUser =
  +            securityService.getUserManager().addUser(fulcrumUser, "wyatt");
  +
  +        DynamicModelManager modelManager =
  +            (DynamicModelManager) securityService.getModelManager();
  +        modelManager.grant(fulcrumGroup, fulcrumRole);
  +        modelManager.grant(fulcrumUser, fulcrumGroup);
  +
  +        User turbineUser = TurbineSecurity.getService().getUser("Mike");
  +
  +        MockHttpSession session = new MockHttpSession();
  +        session.setupGetAttribute(User.SESSION_KEY, turbineUser);
  +        turbineUser = getUserFromRunData(session);
           assertNotNull(turbineUser);
  -        return turbineUser;
  -    }
  -    public void tearDown()
  -    {
  -        ServiceManager serviceManager = TurbineServices.getInstance();
  -        serviceManager.shutdownService(SecurityService.SERVICE_NAME);
  -        serviceManager.shutdownServices();
  +        assertFalse(TurbineSecurity.getService().isAnonymousUser(turbineUser));
  +        AccessControlList acl =
  +            TurbineSecurity.getService().getACL(turbineUser);
  +        assertTrue(acl.hasRole("TEST_ROLE"));
  +
       }
  +
   }
  
  
  
  1.2       +3 -1      jakarta-turbine-fulcrum/security/adapters/turbine/src/test/org/apache/fulcrum/security/adapter/turbine/SecurityServiceAdaptorTest.java
  
  Index: SecurityServiceAdaptorTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/security/adapters/turbine/src/test/org/apache/fulcrum/security/adapter/turbine/SecurityServiceAdaptorTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SecurityServiceAdaptorTest.java	5 Dec 2003 23:33:16 -0000	1.1
  +++ SecurityServiceAdaptorTest.java	10 Dec 2003 23:21:12 -0000	1.2
  @@ -111,4 +111,6 @@
           serviceManager.shutdownService(SecurityService.SERVICE_NAME);
           serviceManager.shutdownServices();
       }
  +    
  +    
   }
  
  
  
  1.1                  jakarta-turbine-fulcrum/security/adapters/turbine/src/test/org/apache/fulcrum/security/adapter/turbine/AbstractAccessControlListAdaptorTest.java
  
  Index: AbstractAccessControlListAdaptorTest.java
  ===================================================================
  package org.apache.fulcrum.security.adapter.turbine;
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Turbine" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Turbine", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  import java.util.Vector;
  
  import javax.servlet.ServletConfig;
  import javax.servlet.http.HttpServletResponse;
  import javax.servlet.http.HttpSession;
  
  import org.apache.fulcrum.testcontainer.BaseUnitTest;
  import org.apache.turbine.modules.actions.sessionvalidator.DefaultSessionValidator;
  import org.apache.turbine.modules.actions.sessionvalidator.SessionValidator;
  import org.apache.turbine.om.security.User;
  import org.apache.turbine.services.ServiceManager;
  import org.apache.turbine.services.TurbineServices;
  import org.apache.turbine.services.avaloncomponent.AvalonComponentService;
  import org.apache.turbine.services.rundata.RunDataService;
  import org.apache.turbine.services.security.SecurityService;
  import org.apache.turbine.util.RunData;
  import org.apache.turbine.util.TurbineConfig;
  
  import com.mockobjects.servlet.MockHttpServletResponse;
  import com.mockobjects.servlet.MockHttpSession;
  import com.mockobjects.servlet.MockServletConfig;
  
  /**
   * Test that we can load up a fulcrum ACL in Turbine, without Turbine
   * knowing that anything has changed.
   * 
   * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
   * @version $Id: AbstractAccessControlListAdaptorTest.java,v 1.1 2003/12/10 23:21:12 epugh Exp $
   */
  
  public abstract class AbstractAccessControlListAdaptorTest extends BaseUnitTest
  {
      protected static final String PREFIX =
          "services." + SecurityService.SERVICE_NAME + '.';
  	protected TurbineConfig tc;
  	protected MockHttpSession session;
  	protected AvalonComponentService acs;
  	
  	public abstract String getTRProps();
      public AbstractAccessControlListAdaptorTest(String name) throws Exception
      {
          super(name);
      }
      
  	public void setUp() throws Exception
  	 {
  	    super.setUp();
  		 tc =
  			 new TurbineConfig(
  				 ".",
  				 "/src/test/"+getTRProps());
  		 tc.initialize();
  		 session = new MockHttpSession();
  		 acs =
  			 (AvalonComponentService) TurbineServices.getInstance().getService(
  				 AvalonComponentService.SERVICE_NAME);
  	 }    
     
  	protected User getUserFromRunData(HttpSession session) throws Exception
      {
          RunDataService rds =
              (RunDataService) TurbineServices.getInstance().getService(
                  RunDataService.SERVICE_NAME);
          BetterMockHttpServletRequest request =
              new BetterMockHttpServletRequest();
          request.setupServerName("bob");
          request.setupGetProtocol("http");
          request.setupScheme("scheme");
          request.setupPathInfo("damn");
          request.setupGetServletPath("damn2");
          request.setupGetContextPath("wow");
          request.setupGetContentType("html/text");
          request.setupAddHeader("Content-type", "html/text");
          Vector v = new Vector();
          request.setupGetParameterNames(v.elements());
          request.setSession(session);
          HttpServletResponse response = new MockHttpServletResponse();
          ServletConfig config = new MockServletConfig();
          RunData rd = rds.getRunData(request, response, config);
          SessionValidator sessionValidator = new DefaultSessionValidator();
          sessionValidator.doPerform(rd);
          User turbineUser = rd.getUser();
          assertNotNull(turbineUser);
          return turbineUser;
      }
  
     
      public void tearDown()
      {
          super.tearDown();
          ServiceManager serviceManager = TurbineServices.getInstance();
          serviceManager.shutdownService(SecurityService.SERVICE_NAME);
          serviceManager.shutdownServices();
      }
  }
  
  
  
  1.1                  jakarta-turbine-fulcrum/security/adapters/turbine/src/test/org/apache/fulcrum/security/adapter/turbine/AccessControlListAdaptorBasicModelTest.java
  
  Index: AccessControlListAdaptorBasicModelTest.java
  ===================================================================
  package org.apache.fulcrum.security.adapter.turbine;
  /* ====================================================================
   * The Apache Software License, Version 1.1
   *
   * Copyright (c) 2001-2003 The Apache Software Foundation.  All rights
   * reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *    notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *    notice, this list of conditions and the following disclaimer in
   *    the documentation and/or other materials provided with the
   *    distribution.
   *
   * 3. The end-user documentation included with the redistribution,
   *    if any, must include the following acknowledgment:
   *       "This product includes software developed by the
   *        Apache Software Foundation (http://www.apache.org/)."
   *    Alternately, this acknowledgment may appear in the software itself,
   *    if and wherever such third-party acknowledgments normally appear.
   *
   * 4. The names "Apache" and "Apache Software Foundation" and
   *    "Apache Turbine" must not be used to endorse or promote products
   *    derived from this software without prior written permission. For
   *    written permission, please contact apache@apache.org.
   *
   * 5. Products derived from this software may not be called "Apache",
   *    "Apache Turbine", nor may "Apache" appear in their name, without
   *    prior written permission of the Apache Software Foundation.
   *
   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   * SUCH DAMAGE.
   * ====================================================================
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Apache Software Foundation.  For more
   * information on the Apache Software Foundation, please see
   * <http://www.apache.org/>.
   */
  import org.apache.fulcrum.security.BaseSecurityService;
  import org.apache.fulcrum.security.entity.Group;
  import org.apache.fulcrum.security.model.basic.BasicModelManager;
  import org.apache.turbine.om.security.User;
  import org.apache.turbine.services.security.TurbineSecurity;
  import org.apache.turbine.util.security.AccessControlList;
  
  import com.mockobjects.servlet.MockHttpSession;
  
  /**
   * Test that we can load up a fulcrum ACL in Turbine, without Turbine
   * knowing that anything has changed.
   * 
   * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
   * @version $Id: AccessControlListAdaptorBasicModelTest.java,v 1.1 2003/12/10 23:21:12 epugh Exp $
   */
  
  public class AccessControlListAdaptorBasicModelTest
      extends AbstractAccessControlListAdaptorTest
  {
  	public String getTRProps(){
  		return "AdapterTestTurbineResourcesBasicModel.properties";
  	}
  	
      public AccessControlListAdaptorBasicModelTest(String name) throws Exception
      {
          super(name);
      }
  
      public void testHasRoleBasic() throws Exception
      {
  
          BaseSecurityService securityService =
              (BaseSecurityService) acs.lookup(BaseSecurityService.ROLE);
          Group fulcrumGroup =
              securityService.getGroupManager().getGroupInstance(
                  "TEST_GROUP_BASIC_MODEL");
  
          org.apache.fulcrum.security.entity.User fulcrumUser =
              securityService.getUserManager().getUserInstance("MikeFitz");
  
          securityService.getGroupManager().addGroup(fulcrumGroup);
  
          fulcrumUser =
              securityService.getUserManager().addUser(fulcrumUser, "relana");
          System.out.println(
              securityService.getModelManager().getClass().getName());
          BasicModelManager modelManager =
              (BasicModelManager) securityService.getModelManager();
  
          modelManager.grant(fulcrumUser, fulcrumGroup);
  
          User turbineUser = TurbineSecurity.getService().getUser("MikeFitz");
  
          MockHttpSession session = new MockHttpSession();
          session.setupGetAttribute(User.SESSION_KEY, turbineUser);
          turbineUser = getUserFromRunData(session);
          assertNotNull(turbineUser);
          assertFalse(TurbineSecurity.getService().isAnonymousUser(turbineUser));
          AccessControlList acl =
              TurbineSecurity.getService().getACL(turbineUser);
          assertTrue(acl.hasRole("TEST_GROUP_BASIC_MODEL"));
  
      }
  
  }
  
  
  
  1.1                  jakarta-turbine-fulcrum/security/adapters/turbine/src/test/roleTurbineConfigurationBasicModel.xml
  
  Index: roleTurbineConfigurationBasicModel.xml
  ===================================================================
  <!-- This configuration file for Avalon components is used for testing the adapter
  classes for Turbine. -->
  
  <role-list>
      <role name="org.apache.fulcrum.security.SecurityService"
            shorthand="securityService"
            default-class="org.apache.fulcrum.security.BaseSecurityService" />
            
      <role name="org.apache.fulcrum.security.UserManager"
            shorthand="userManager"
            default-class="org.apache.fulcrum.security.memory.MemoryUserManagerImpl" />
            
      <role name="org.apache.fulcrum.security.GroupManager"
            shorthand="groupManager"
            default-class="org.apache.fulcrum.security.memory.MemoryGroupManagerImpl" />
            
     
  
      <role name="org.apache.fulcrum.security.ModelManager"
            shorthand="modelManager"
            default-class="org.apache.fulcrum.security.memory.basic.MemoryModelManagerImpl" />                              
  
      <role name="org.apache.fulcrum.security.model.ACLFactory"
            shorthand="aclFactory"
            default-class="org.apache.fulcrum.security.model.basic.BasicACLFactory" />                              
                      
  </role-list> 
   
  
  
  1.1                  jakarta-turbine-fulcrum/security/adapters/turbine/src/test/componentTurbineConfigurationBasicModel.xml
  
  Index: componentTurbineConfigurationBasicModel.xml
  ===================================================================
  <!-- This configuration file for Avalon components is used for testing the adapter
  classes for Dynamic. -->
  <componentConfig>
      <securityService/>
      <userManager>    
        	<className>org.apache.fulcrum.security.model.basic.entity.BasicUser</className>
     	</userManager>
      <groupManager>    
   	    <className>org.apache.fulcrum.security.model.basic.entity.BasicGroup</className>
     	</groupManager>
      <modelManager/> 
      <aclFactory/>                
  
  </componentConfig>
  
  
  
  1.1                  jakarta-turbine-fulcrum/security/adapters/turbine/src/test/AdapterTestTurbineResourcesBasicModel.properties
  
  Index: AdapterTestTurbineResourcesBasicModel.properties
  ===================================================================
  # This file is used with the roleTurbineConfiguration.xml and componentTurbineConfiguration
  # to test the Turbine Security <--> Fulcrum Security Adapter.
  
  log4j.file = src/test/Log4j.properties
  
  services.AvalonComponentService.classname=org.apache.turbine.services.avaloncomponent.TurbineAvalonComponentService
  services.FactoryService.classname=org.apache.turbine.services.factory.TurbineFactoryService
  services.PoolService.classname=org.apache.turbine.services.pool.TurbinePoolService
  services.RunDataService.classname=org.apache.turbine.services.rundata.TurbineRunDataService
  services.ServletService.classname=org.apache.turbine.services.servlet.TurbineServletService
  services.AssemblerBrokerService.classname=org.apache.turbine.services.assemblerbroker.TurbineAssemblerBrokerService
  
  services.SecurityService.classname=org.apache.fulcrum.security.adapter.turbine.SecurityServiceAdapter
  
  services.RunDataService.default.run.data=org.apache.turbine.services.rundata.DefaultTurbineRunData
  services.RunDataService.default.parameter.parser=org.apache.turbine.util.parser.DefaultParameterParser
  services.RunDataService.default.cookie.parser=org.apache.turbine.util.parser.DefaultCookieParser
  
  # -------------------------------------------------------------------
  #
  #  S E C U R I T Y  S E R V I C E
  #
  # -------------------------------------------------------------------
  
  #
  # This is the class that implements the UserManager interface to
  # manage User objects. Default is the UserManager from the
  # DBSecurityService.
  # Override this setting if you want your User information stored
  # on a different medium (LDAP directory is a good example).
  #
  # Adjust this setting if you change the Setting of the SecurityService class (see above).
  
  #
  # Notice there are no properties called
  #   services.SecurityService.user.class, 
  #   services.SecurityService.group.class, 
  #   services.SecurityService.user.manager etc...
  # This is because we don't specify the class through here, but through the avalon configuration.
  #
  
  # We do provide an adapter howevuer
  services.SecurityService.acl.class = org.apache.fulcrum.security.adapter.turbine.AccessControlListAdapter
  
  
  services.AvalonComponentService.componentConfiguration = src/test/componentTurbineConfigurationBasicModel.xml
  services.AvalonComponentService.componentRoles = src/test/roleTurbineConfigurationBasicModel.xml
  
  
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: turbine-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: turbine-dev-help@jakarta.apache.org