You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by mm...@apache.org on 2004/12/08 01:38:01 UTC

svn commit: r111183 - in incubator/beehive/trunk/wsm: drt drt/tests drt/tests/org/apache/beehive/wsm/axis/security src/runtime/org/apache/beehive/wsm/axis/security/model

Author: mmerz
Date: Tue Dec  7 16:38:01 2004
New Revision: 111183

URL: http://svn.apache.org/viewcvs?view=rev&rev=111183
Log:
More additions to security, incl. first drt.

Contributor: Wolfgang


Added:
   incubator/beehive/trunk/wsm/drt/tests/beehive-role.xml
   incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/axis/security/
   incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/axis/security/MemoryUserListTest.java
Modified:
   incubator/beehive/trunk/wsm/drt/build.xml
   incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/axis/security/model/MemoryGroupImpl.java

Modified: incubator/beehive/trunk/wsm/drt/build.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/drt/build.xml?view=diff&rev=111183&p1=incubator/beehive/trunk/wsm/drt/build.xml&r1=111182&p2=incubator/beehive/trunk/wsm/drt/build.xml&r2=111183
==============================================================================
--- incubator/beehive/trunk/wsm/drt/build.xml	(original)
+++ incubator/beehive/trunk/wsm/drt/build.xml	Tue Dec  7 16:38:01 2004
@@ -44,6 +44,7 @@
         <include name="jaxrpc.jar"/>
         <include name="commons-logging.jar"/>
         <include name="commons-discovery.jar"/>
+        <include name="commons-codec-1.3.jar"/>
         <include name="axis-ant.jar"/>
         <include name="axis.jar"/>
     </fileset>

Added: incubator/beehive/trunk/wsm/drt/tests/beehive-role.xml
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/drt/tests/beehive-role.xml?view=auto&rev=111183
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/wsm/drt/tests/beehive-role.xml	Tue Dec  7 16:38:01 2004
@@ -0,0 +1,36 @@
+<beehive-role xmlns="http://www.apache.org/beehive/wsm/axis/security/xmlbeans">
+
+   <role name="admin">
+      <user>michael</user>
+   </role>
+
+   <role name="engineer">
+      <user>jonathan</user>
+      <user>dims</user>
+   </role>
+
+   <role name="customer">
+      <user>jonathan</user>
+      <user>wolfgang</user>
+      <user>chris</user>
+   </role>
+
+   <role name="support">
+      <group>customer_support</group>
+   </role>
+
+   <group name="customer_support">
+      <user>chris</user>
+      <user>frank</user>
+   </group>
+
+   <user name="michael" password="1f2dfa567dcf95833eddf7aec167fec7" md5="true" />
+   <user name="jonathan" password="jp" />
+   <user name="dims" password="dp" />
+   <user name="wolfgang" password="wp" />
+   <user name="chris" password="cp" />
+   <user name="frank" password="fp" />
+   <user name="jack" password="jp" />
+
+</beehive-role>
+

Added: incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/axis/security/MemoryUserListTest.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/axis/security/MemoryUserListTest.java?view=auto&rev=111183
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/wsm/drt/tests/org/apache/beehive/wsm/axis/security/MemoryUserListTest.java	Tue Dec  7 16:38:01 2004
@@ -0,0 +1,227 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ * 
+ * 
+ * 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.apache.beehive.wsm.axis.security;
+
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.io.File;
+
+import junit.framework.TestCase;
+
+import org.apache.beehive.wsm.axis.security.User;
+import org.apache.beehive.wsm.axis.security.Group;
+import org.apache.beehive.wsm.axis.security.UserList;
+import org.apache.beehive.wsm.axis.security.Role;
+import org.apache.beehive.wsm.axis.security.model.MemoryUserImpl;
+import org.apache.beehive.wsm.axis.security.model.MemoryGroupImpl;
+import org.apache.beehive.wsm.axis.security.model.MemoryRoleImpl;
+import org.apache.beehive.wsm.axis.security.model.MemoryUserListImpl;
+
+import org.apache.beehive.wsm.axis.security.xmlbeans.BeehiveRoleDocument;
+import org.apache.beehive.wsm.axis.security.xmlbeans.BeehiveRoleDocument.BeehiveRole;
+
+
+public class MemoryUserListTest extends TestCase {
+
+    private static final String BEEHIVE_HOME = System.getenv("BEEHIVE_HOME");
+
+    BeehiveRoleDocument brd = null;
+    UserList userList = null;
+    
+    public void setUp() throws Exception {
+        File f = new File(BEEHIVE_HOME,
+                          "wsm/drt/tests/beehive-role.xml");
+
+        brd = BeehiveRoleDocument.Factory.parse( f ); 
+        userList = createUserList ( brd );
+    }
+
+    public void testRoles() throws Exception {
+
+        assertNotNull( userList.getRole( "admin" ) );
+        assertNotNull( userList.getRole( "engineer" ) );
+        assertNotNull( userList.getRole( "customer" ) );
+        assertNotNull( userList.getRole( "support" ) );
+
+    }
+
+    public void testGroups() throws Exception {
+
+        Group group = userList.getGroup( "customer_support" );
+        assertNotNull( group );
+        assertTrue ( group.getRoles().size() == 1 );
+        assertNotNull( group.getRole("support") );
+    }
+
+    public void testUsers() throws Exception {
+
+        User user = userList.getUser( "michael" );
+        assertNotNull ( user );
+        assertTrue ( user.getRoles().size() == 1);
+        assertNotNull ( user.getRole("admin") );
+        assertNull ( user.getRole("engineer") );
+        assertTrue ( user.getGroups().size() == 0);
+        assertTrue ( user.authenticate("mp") );
+
+        user = userList.getUser( "jonathan" );
+        assertNotNull ( user );
+        assertTrue ( user.getRoles().size() == 2);
+        assertNotNull ( user.getRole("engineer") );
+        assertNotNull ( user.getRole("customer") );
+        assertNull ( user.getRole("admin") );
+        assertTrue ( user.getGroups().size() == 0);
+        assertTrue ( user.authenticate("jp") );
+
+        user = userList.getUser( "dims" );
+        assertNotNull ( user );
+        assertTrue ( user.getRoles().size() == 1);
+        assertNotNull ( user.getRole("engineer") );
+        assertNull ( user.getRole("admin") );
+        assertTrue ( user.getGroups().size() == 0);
+        assertTrue ( user.authenticate("dp") );
+
+        user = userList.getUser( "wolfgang" );
+        assertNotNull ( user );
+        assertTrue ( user.getRoles().size() == 1);
+        assertNotNull ( user.getRole("customer") );
+        assertNull ( user.getRole("admin") );
+        assertTrue ( user.getGroups().size() == 0);
+        assertTrue ( user.authenticate("wp") );
+
+        user = userList.getUser( "chris" );
+        assertNotNull ( user );
+        assertTrue ( user.getRoles().size() == 2);
+        assertNotNull ( user.getRole("customer") );
+        assertNotNull ( user.getRole("support") );
+        assertNull ( user.getRole("admin") );
+        assertTrue ( user.getGroups().size() == 1);
+        assertTrue ( user.authenticate("cp") );
+
+        user = userList.getUser( "frank" );
+        assertNotNull ( user );
+        assertTrue ( user.getRoles().size() == 1);
+        assertNotNull ( user.getRole("support") );
+        assertNull ( user.getRole("admin") );
+        assertTrue ( user.getGroups().size() == 1);
+        assertTrue ( user.authenticate("fp") );
+
+        user = userList.getUser( "jack" );
+        assertNotNull ( user );
+        assertTrue ( user.getRoles().size() == 0);
+        assertTrue ( user.getGroups().size() == 0);
+        assertTrue ( user.authenticate("jp") );
+        assertFalse ( user.authenticate("not_his_password") );
+
+    }
+
+    private UserList createUserList ( BeehiveRoleDocument brd )
+    {
+        BeehiveRole beehiveRole = brd.getBeehiveRole();
+
+        UserList userList = new MemoryUserListImpl();
+
+        // constructs Role.
+        for ( org.apache.beehive.wsm.axis.security.xmlbeans.Role role : beehiveRole.getRoleArray() )
+        {
+            MemoryRoleImpl memoryRole = new MemoryRoleImpl();
+            memoryRole.setName ( role.getName() );
+
+            userList.addRole( memoryRole );
+        }
+
+        // constructs Group.
+        for ( org.apache.beehive.wsm.axis.security.xmlbeans.Group group : beehiveRole.getGroupArray() )
+        {
+            MemoryGroupImpl memoryGroup = new MemoryGroupImpl();
+            memoryGroup.setName ( group.getName() );
+
+            userList.addGroup( memoryGroup );
+
+            for ( org.apache.beehive.wsm.axis.security.xmlbeans.Role role : beehiveRole.getRoleArray() )
+            {
+                for ( String groupName : role.getGroupArray() )
+                {
+                    if ( groupName.equals( group.getName() ) )
+                    {
+                        Role memoryRole = userList.getRole( role.getName() );
+                        if ( memoryRole != null )
+                        {
+                            memoryGroup.addRole ( memoryRole );
+                        }
+                    }
+                }
+            }
+            userList.addGroup ( memoryGroup );
+        }
+
+        // constructs User.
+        for( org.apache.beehive.wsm.axis.security.xmlbeans.User user : beehiveRole.getUserArray() )
+        {
+            MemoryUserImpl memoryUser = new MemoryUserImpl();
+            memoryUser.setName ( user.getName() );
+            memoryUser.setPassword ( user.getPassword() );
+            memoryUser.setMd5 ( user.getMd5() );
+
+            for ( org.apache.beehive.wsm.axis.security.xmlbeans.Group group : beehiveRole.getGroupArray() )
+            {
+                for ( String userName : group.getUserArray() )
+                {
+                    if ( userName.equals( user.getName() ) )
+                    {
+                        Group memoryGroup = userList.getGroup( group.getName() );
+                        if ( memoryGroup != null )
+                        {
+
+                            // User and Group hold references to each other
+                            memoryGroup.addUser( memoryUser );
+                            memoryUser.addGroup( memoryGroup );
+
+                            // user inherits this group's roles.
+                            for ( Role memoryRole : memoryGroup.getRoles() )
+                            {
+                                memoryUser.addRole ( memoryRole );
+                            }
+
+                        }
+                    }
+                }
+            }
+
+
+            for ( org.apache.beehive.wsm.axis.security.xmlbeans.Role role : beehiveRole.getRoleArray() )
+            {
+                for ( String userName : role.getUserArray() )
+                {
+                    if ( userName.equals( user.getName() ) )
+                    {
+                        Role memoryRole = userList.getRole( role.getName() );
+                        if ( memoryRole != null )
+                        {
+                            memoryUser.addRole( memoryRole );
+                        }
+                    }
+                }
+            }
+            userList.addUser ( memoryUser );
+        }
+
+        return userList;
+    }
+
+}

Modified: incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/axis/security/model/MemoryGroupImpl.java
Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/axis/security/model/MemoryGroupImpl.java?view=diff&rev=111183&p1=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/axis/security/model/MemoryGroupImpl.java&r1=111182&p2=incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/axis/security/model/MemoryGroupImpl.java&r2=111183
==============================================================================
--- incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/axis/security/model/MemoryGroupImpl.java	(original)
+++ incubator/beehive/trunk/wsm/src/runtime/org/apache/beehive/wsm/axis/security/model/MemoryGroupImpl.java	Tue Dec  7 16:38:01 2004
@@ -41,6 +41,7 @@
 
     public MemoryGroupImpl ()
     {
+        users = new Hashtable<String,User>();
         roles = new Hashtable<String,Role>();
     }