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/10/21 12:16:30 UTC

cvs commit: jakarta-turbine-fulcrum/security/xdocs changes.xml

epugh       2003/10/21 03:16:29

  Modified:    security/src/java/org/apache/fulcrum/security/adapter/osuser
                        BaseFulcrumProvider.java
                        FulcrumCredentialsProvider.java
                        FulcrumAccessProvider.java
               security/src/test/org/apache/fulcrum/security/adapter/osuser
                        OSUserAdapterTest.java
               security/src/test osuser.xml
               security/xdocs changes.xml
  Added:       security/src/test OSUserAvalonConf.xml
  Log:
  Add unit test for OSUser adapter.
  
  Revision  Changes    Path
  1.3       +9 -21     jakarta-turbine-fulcrum/security/src/java/org/apache/fulcrum/security/adapter/osuser/BaseFulcrumProvider.java
  
  Index: BaseFulcrumProvider.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/security/src/java/org/apache/fulcrum/security/adapter/osuser/BaseFulcrumProvider.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- BaseFulcrumProvider.java	21 Oct 2003 08:33:33 -0000	1.2
  +++ BaseFulcrumProvider.java	21 Oct 2003 10:16:29 -0000	1.3
  @@ -77,14 +77,13 @@
    * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
    * @version $Id$
    */
  -public abstract class BaseFulcrumProvider extends AbstractLogEnabled implements UserProvider,Composable, Disposable,Component
  +public abstract class BaseFulcrumProvider implements UserProvider
   {
  -	/** Component Manager to query for the SecurityService through */
  -	protected ComponentManager manager = null;
  +
   	/** Logging */
   	private static Log log = LogFactory.getLog(BaseFulcrumProvider.class);
   	/** Our Fulcrum Security Service to use */
  -	private SecurityService securityService;
  +	private static SecurityService securityService;
   
   	/*
   	 * Does nothing for now.
  @@ -162,7 +161,8 @@
   		 {
   			 try
   			 {
  -				securityService = (SecurityService) manager.lookup(SecurityService.ROLE);
  +			    throw new ComponentException(SecurityService.ROLE,"SecurityService not initialized!");
  +	//			securityService = (SecurityService) manager.lookup(SecurityService.ROLE);
   			 }
   			 catch (ComponentException ce)
   			 {
  @@ -179,22 +179,10 @@
   	 * @param securityService
   	 *            The securityService to set.
   	 */
  -	public void setSecurityService(SecurityService securityService)
  +	public static void setSecurityService(SecurityService asecurityService)
   	{
  -		this.securityService = securityService;
  +		securityService = asecurityService;
   	}
   
  -	/**
  -	  * Avalon component lifecycle method
  -	  */
  -	public void compose(ComponentManager manager) throws ComponentException
  -	{
  -		this.manager = manager;
  -	}
  -	public void dispose()
  -	{
  -		manager = null;
  -		securityService = null;
  -		
  -	}
  +
   }
  
  
  
  1.2       +5 -5      jakarta-turbine-fulcrum/security/src/java/org/apache/fulcrum/security/adapter/osuser/FulcrumCredentialsProvider.java
  
  Index: FulcrumCredentialsProvider.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/security/src/java/org/apache/fulcrum/security/adapter/osuser/FulcrumCredentialsProvider.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FulcrumCredentialsProvider.java	20 Oct 2003 18:28:47 -0000	1.1
  +++ FulcrumCredentialsProvider.java	21 Oct 2003 10:16:29 -0000	1.2
  @@ -66,7 +66,7 @@
   /**
    * Fulcrum provider for OSUser.  Primarily provides support for authenticating
    * a user.  This delegates to whatever authenticator is configured in the
  - * SecurityService.
  + * getSecurityService().
    * 
    * @author <a href="mailto:epugh@upstate.com">Eric Pugh</a>
    * @version $Id$
  @@ -86,8 +86,8 @@
   	{
   		try
   		{
  -			User user = securityService.getUserManager().getUser(name);
  -			securityService.getUserManager().authenticate(user, password);
  +			User user = getSecurityService().getUserManager().getUser(name);
  +			getSecurityService().getUserManager().authenticate(user, password);
   			return true;
   		}
   		catch (PasswordMismatchException pme)
  @@ -145,7 +145,7 @@
   	{
   		try
   		{
  -			User user = securityService.getUserManager().getUser(name);
  +			User user = getSecurityService().getUserManager().getUser(name);
   			return true;
   		}
   		catch (UnknownEntityException uee)
  
  
  
  1.2       +6 -6      jakarta-turbine-fulcrum/security/src/java/org/apache/fulcrum/security/adapter/osuser/FulcrumAccessProvider.java
  
  Index: FulcrumAccessProvider.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/security/src/java/org/apache/fulcrum/security/adapter/osuser/FulcrumAccessProvider.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FulcrumAccessProvider.java	20 Oct 2003 18:28:47 -0000	1.1
  +++ FulcrumAccessProvider.java	21 Oct 2003 10:16:29 -0000	1.2
  @@ -107,9 +107,9 @@
   	{
   		try
   		{
  -			User user = securityService.getUserManager().getUser(username);
  +			User user = getSecurityService().getUserManager().getUser(username);
   			AccessControlList acl =
  -				securityService.getUserManager().getACL(user);
  +			getSecurityService().getUserManager().getACL(user);
   			return acl.hasRole(acl.getRoles().getRoleByName(groupname));
   		}
   		catch (UnknownEntityException uee)
  @@ -135,9 +135,9 @@
   		List roles = new ArrayList();
   		try
   		{
  -			User user = securityService.getUserManager().getUser(username);
  +			User user = getSecurityService().getUserManager().getUser(username);
   			AccessControlList acl =
  -				securityService.getUserManager().getACL(user);
  +				getSecurityService().getUserManager().getACL(user);
   			roles.addAll(acl.getRoles().getNames());
   			
   		}
  @@ -203,7 +203,7 @@
   	{
   		try
   		{
  -			User user = securityService.getUserManager().getUser(name);
  +			User user = getSecurityService().getUserManager().getUser(name);
   			return true;
   		}
   		catch (UnknownEntityException uee)
  
  
  
  1.2       +119 -110  jakarta-turbine-fulcrum/security/src/test/org/apache/fulcrum/security/adapter/osuser/OSUserAdapterTest.java
  
  Index: OSUserAdapterTest.java
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/security/src/test/org/apache/fulcrum/security/adapter/osuser/OSUserAdapterTest.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- OSUserAdapterTest.java	20 Oct 2003 18:28:48 -0000	1.1
  +++ OSUserAdapterTest.java	21 Oct 2003 10:16:29 -0000	1.2
  @@ -41,9 +41,9 @@
    * Apache Software Foundation, please see <http://www.apache.org/> .
    */
   import java.util.Collection;
  -import java.util.List;
   
   import org.apache.fulcrum.security.SecurityService;
  +import org.apache.fulcrum.security.acl.AccessControlList;
   import org.apache.fulcrum.security.entity.Group;
   import org.apache.fulcrum.security.entity.Permission;
   import org.apache.fulcrum.security.entity.Role;
  @@ -55,6 +55,7 @@
   
   import com.opensymphony.user.UserManager;
   import com.opensymphony.user.provider.AccessProvider;
  +import com.opensymphony.user.provider.CredentialsProvider;
   
   /**
    * Test that we can load up OSUser backed by Fulcrum Security. The fulcrum
  @@ -68,18 +69,18 @@
   public class OSUserAdapterTest extends BaseUnitTest
   {
   
  -	protected UserManager osUserManager;
  -	protected org.apache.fulcrum.security.UserManager fulcrumUserManager;
  -	protected SecurityService securityService;
  -	public OSUserAdapterTest(String name) throws Exception
  -	{
  -		super(name);
  -	}
  -	public void setUp()
  -	{
  -		try
  -		{
  -			/*
  +    protected UserManager osUserManager;
  +    
  +    protected SecurityService securityService;
  +    public OSUserAdapterTest(String name) throws Exception
  +    {
  +        super(name);
  +    }
  +    public void setUp()
  +    {
  +        try
  +        {
  +            /*
   			 * this.setRoleFileName(null);
   			 * this.setConfigurationFileName("src/test/SimpleMemory.xml");
   			 * securityService = (SecurityService)
  @@ -88,105 +89,113 @@
   			 * 
   			 * osUserManager = new UserManager("osuser.xml");
   			 */
  -		}
  -		catch (Exception e)
  -		{
  -			fail(e.toString());
  -		}
  -	}
  -	public void tearDown()
  -	{
  -
  -		osUserManager = null;
  -		fulcrumUserManager = null;
  -		securityService = null;
  -	}
  -	public void testUsingAvalonComponents() throws Exception
  -	{
  -
  -		this.setRoleFileName(null);
  -		this.setConfigurationFileName("src/test/SimpleMemory.xml");
  -		securityService = (SecurityService) lookup(SecurityService.ROLE);
  -		fulcrumUserManager = securityService.getUserManager();
  -
  -		osUserManager = new UserManager("osuser.xml");
  -
  -		Group fulcrumGroup =
  -			securityService.getGroupManager().getGroupInstance(
  -				"TEST_REVOKEALL");
  -		securityService.getGroupManager().addGroup(fulcrumGroup);
  -		Group fulcrumGroup2 =
  -			securityService.getGroupManager().getGroupInstance(
  -				"TEST_REVOKEALL2");
  -		securityService.getGroupManager().addGroup(fulcrumGroup2);
  -		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");
  -		securityService.getPermissionManager().addPermission(fulcrumPermission);
  -		securityService.getPermissionManager().addPermission(
  -			fulcrumPermission2);
  -		securityService.getPermissionManager().addPermission(
  -			fulcrumPermission3);
  -		((SimpleRoleManager) securityService.getRoleManager()).grant(
  -			fulcrumRole,
  -			fulcrumPermission);
  -		((SimpleRoleManager) securityService.getRoleManager()).grant(
  -			fulcrumRole2,
  -			fulcrumPermission2);
  -		((SimpleRoleManager) securityService.getRoleManager()).grant(
  -			fulcrumRole2,
  -			fulcrumPermission3);
  -		((SimpleGroupManager) securityService.getGroupManager()).grant(
  -			fulcrumGroup,
  -			fulcrumRole);
  -		((SimpleGroupManager) securityService.getGroupManager()).grant(
  -			fulcrumGroup,
  -			fulcrumRole2);
  -		((SimpleGroupManager) securityService.getGroupManager()).grant(
  -			fulcrumGroup2,
  -			fulcrumRole2);
  -		org.apache.fulcrum.security.entity.User fulcrumUser =
  -			securityService.getUserManager().getUserInstance("Jeannie");
  -		securityService.getUserManager().addUser(fulcrumUser, "wyatt");
  -		((SimpleUserManager) securityService.getUserManager()).grant(
  -			fulcrumUser,
  -			fulcrumGroup);
  -		((SimpleUserManager) securityService.getUserManager()).grant(
  -			fulcrumUser,
  -			fulcrumGroup2);
  -		assertEquals(2, ((SimpleUser) fulcrumUser).getGroups().size());
  +        }
  +        catch (Exception e)
  +        {
  +            fail(e.toString());
  +        }
  +    }
  +    public void tearDown()
  +    {
  +
  +        osUserManager = null;
  +    
  +        securityService = null;
  +    }
  +    public void testUsingAvalonComponents() throws Exception
  +    {
  +
  +        this.setRoleFileName(null);
  +        this.setConfigurationFileName("src/test/OSUserAvalonConf.xml");
  +        securityService = (SecurityService) lookup(SecurityService.ROLE);
  +        BaseFulcrumProvider.setSecurityService(securityService);
  +       
  +
  +        osUserManager = new UserManager("osuser.xml");
  +
  +        Group fulcrumGroup =
  +            securityService.getGroupManager().getGroupInstance(
  +                "TEST_REVOKEALL");
  +        securityService.getGroupManager().addGroup(fulcrumGroup);
  +        Group fulcrumGroup2 =
  +            securityService.getGroupManager().getGroupInstance(
  +                "TEST_REVOKEALL2");
  +        securityService.getGroupManager().addGroup(fulcrumGroup2);
  +        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");
  +        securityService.getPermissionManager().addPermission(fulcrumPermission);
  +        securityService.getPermissionManager().addPermission(
  +            fulcrumPermission2);
  +        securityService.getPermissionManager().addPermission(
  +            fulcrumPermission3);
  +        ((SimpleRoleManager) securityService.getRoleManager()).grant(
  +            fulcrumRole,
  +            fulcrumPermission);
  +        ((SimpleRoleManager) securityService.getRoleManager()).grant(
  +            fulcrumRole2,
  +            fulcrumPermission2);
  +        ((SimpleRoleManager) securityService.getRoleManager()).grant(
  +            fulcrumRole2,
  +            fulcrumPermission3);
  +        ((SimpleGroupManager) securityService.getGroupManager()).grant(
  +            fulcrumGroup,
  +            fulcrumRole);
  +        ((SimpleGroupManager) securityService.getGroupManager()).grant(
  +            fulcrumGroup,
  +            fulcrumRole2);
  +        ((SimpleGroupManager) securityService.getGroupManager()).grant(
  +            fulcrumGroup2,
  +            fulcrumRole2);
  +        org.apache.fulcrum.security.entity.User fulcrumUser =
  +            securityService.getUserManager().getUserInstance("Jeannie");
  +        securityService.getUserManager().addUser(fulcrumUser, "wyatt");
  +        ((SimpleUserManager) securityService.getUserManager()).grant(
  +            fulcrumUser,
  +            fulcrumGroup);
  +        ((SimpleUserManager) securityService.getUserManager()).grant(
  +            fulcrumUser,
  +            fulcrumGroup2);
  +        assertEquals(2, ((SimpleUser) fulcrumUser).getGroups().size());
  +
  +        Collection accessProviders = osUserManager.getAccessProviders();
  +        assertEquals(1, accessProviders.size());
  +        AccessProvider accessProvider =
  +            (AccessProvider) accessProviders.toArray()[0];
  +        assertTrue(accessProvider.handles("Jeannie"));
  +        assertTrue(securityService.getUserManager().checkExists("Jeannie"));
  +
  +        assertEquals("Both should not handle user Bob",accessProvider.handles("Bob") ,securityService.getUserManager().checkExists("Bob"));
  +        
  +
  +        fulcrumUser = securityService.getUserManager().getUser("Jeannie");
  +        AccessControlList acl =
  +            securityService.getUserManager().getACL(fulcrumUser);
  +        assertEquals("Both should have role1",acl.hasRole("role1"),accessProvider.inGroup("Jeannie", "role1"));
  +        
  +
  +        assertEquals("Neither should have role3",acl.hasRole("role3"),accessProvider.inGroup("Jeannie", "role3"));
  +        
  +        Collection credentialProviders = osUserManager.getCredentialsProviders();
  +        assertEquals(1,credentialProviders.size());
  +		CredentialsProvider credentialProvider = (CredentialsProvider)credentialProviders.toArray()[0];
   		
  -		Collection accessProviders = osUserManager.getAccessProviders();
  -		assertEquals(1,accessProviders.size());
  -		AccessProvider accessProvider=(AccessProvider)accessProviders.toArray()[0];
  -		assertTrue(accessProvider.handles("Jeannie"));
  +	
  +		assertTrue(credentialProvider.authenticate("Jeannie","wyatt"));
   		
  -		/*
  -		 * GroupSet groupSet = TurbineSecurity.getService().getAllGroups();
  -		 * assertEquals(2, groupSet.size()); RoleSet roleSet =
  -		 * TurbineSecurity.getService().getAllRoles(); assertEquals(2,
  -		 * roleSet.size()); PermissionSet permissionSet =
  -		 * TurbineSecurity.getService().getAllPermissions(); assertEquals(3,
  -		 * permissionSet.size()); User turbineUser =
  -		 * TurbineSecurity.getService().getUser("Jeannie"); AccessControlList
  -		 * acl = TurbineSecurity.getService().getACL(turbineUser);
  -		 * assertNotNull(acl); assertEquals(3, acl.getPermissions().size());
  -		 * MockHttpSession session = new MockHttpSession();
  -		 * session.setupGetAttribute(User.SESSION_KEY, turbineUser);
  -		 */
   
  -	}
  +    }
   
   }
  
  
  
  1.2       +2 -8      jakarta-turbine-fulcrum/security/src/test/osuser.xml
  
  Index: osuser.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/security/src/test/osuser.xml,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- osuser.xml	20 Oct 2003 18:28:48 -0000	1.1
  +++ osuser.xml	21 Oct 2003 10:16:29 -0000	1.2
  @@ -8,14 +8,8 @@
   	<authenticator class="com.opensymphony.user.authenticator.SmartAuthenticator" />
   
       <!-- Fulcrum providers -->
  -    <provider class="org.apache.fulcrum.security.adapter.osuser.FulcrumAccessProvider">
  -        <property name="datasource">jdbc/DefaultDS</property>
  -        
  -    </provider>
  -    <provider class="org.apache.fulcrum.security.adapter.osuser.FulcrumCredentialsProvider">
  -        <property name="datasource">jdbc/DefaultDS</property>
  -    </provider>
  -	
  +    <provider class="org.apache.fulcrum.security.adapter.osuser.FulcrumAccessProvider"/>       
  +    <provider class="org.apache.fulcrum.security.adapter.osuser.FulcrumCredentialsProvider"/>
   	<!-- don't have a propertyset provider, so just return a memory one. -->
       <provider class="com.opensymphony.user.provider.memory.MemoryProfileProvider" />
   </opensymphony-user>
  
  
  
  1.1                  jakarta-turbine-fulcrum/security/src/test/OSUserAvalonConf.xml
  
  Index: OSUserAvalonConf.xml
  ===================================================================
  <my-system>
  
   <component
      role="org.apache.fulcrum.security.adapter.osuser.BaseFulcrumProvider"
      class="org.apache.fulcrum.security.adapter.osuser.BaseFulcrumProvider">   
    </component>  
  	
    <component
      role="org.apache.fulcrum.factory.FactoryService"
      class="org.apache.fulcrum.factory.DefaultFactoryService">   
    </component>  
    
    
    <!-- standard components for In Memory -->
    <component
      role="org.apache.fulcrum.security.SecurityService"
      class="org.apache.fulcrum.security.BaseSecurityService">   
    </component>  
  
    <component
      role="org.apache.fulcrum.security.UserManager"
      class="org.apache.fulcrum.security.spi.memory.simple.MemoryUserManagerImpl">   
    </component>   
    <component
      role="org.apache.fulcrum.security.GroupManager"
      class="org.apache.fulcrum.security.spi.memory.simple.MemoryGroupManagerImpl">   
    </component>     
  
    <component
      role="org.apache.fulcrum.security.RoleManager"
      class="org.apache.fulcrum.security.spi.memory.simple.MemoryRoleManagerImpl">   
    </component>     
  
    <component
      role="org.apache.fulcrum.security.PermissionManager"
      class="org.apache.fulcrum.security.spi.memory.simple.MemoryPermissionManagerImpl">   
    </component>       
  
    <component
      role="org.apache.fulcrum.security.authenticator.Authenticator"
      class="org.apache.fulcrum.security.authenticator.TextMatchAuthenticator">   
    </component>   
  </my-system>
  
  
  1.4       +4 -0      jakarta-turbine-fulcrum/security/xdocs/changes.xml
  
  Index: changes.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-turbine-fulcrum/security/xdocs/changes.xml,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- changes.xml	26 Aug 2003 01:57:29 -0000	1.3
  +++ changes.xml	21 Oct 2003 10:16:29 -0000	1.4
  @@ -8,6 +8,10 @@
     <body>
       <release version="1.0-alpha-1" date="in cvs">
         <action dev="epugh" type="add">
  +		Added an adapter to OSUser.  This allows OSUser to query Fulcrum Security
  +		for users and to authenticate them via Fulcrum Security authenticators.
  +      </action>
  +      <action dev="epugh" type="add">
   		Added an IntegerConverter so the adapter can be used with fulcrum SPI's
   		that use Long/Integer/String (as a number) as the ID.
         </action>      
  
  
  

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