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