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>();
}