[jboss-cvs] JBoss Messaging SVN: r4392 - in trunk: tests/src/org/jboss/messaging/tests/unit/core/security/impl and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jun 5 08:57:04 EDT 2008


Author: ataylor
Date: 2008-06-05 08:57:03 -0400 (Thu, 05 Jun 2008)
New Revision: 4392

Modified:
   trunk/src/main/org/jboss/messaging/core/security/impl/JBMSecurityManagerImpl.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/JAASSecurityManagerTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/JBMSecurityManagerImplTest.java
   trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/SecurityStoreImplTest.java
Log:
tidied up

Modified: trunk/src/main/org/jboss/messaging/core/security/impl/JBMSecurityManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/security/impl/JBMSecurityManagerImpl.java	2008-06-05 12:18:05 UTC (rev 4391)
+++ trunk/src/main/org/jboss/messaging/core/security/impl/JBMSecurityManagerImpl.java	2008-06-05 12:57:03 UTC (rev 4392)
@@ -21,16 +21,15 @@
    */
 package org.jboss.messaging.core.security.impl;
 
-import org.jboss.messaging.core.security.JBMSecurityManager;
-import org.jboss.messaging.core.security.Role;
+import org.jboss.messaging.core.logging.Logger;
 import org.jboss.messaging.core.security.CheckType;
 import org.jboss.messaging.core.security.JBMUpdateableSecurityManager;
-import org.jboss.messaging.core.logging.Logger;
+import org.jboss.messaging.core.security.Role;
 
+import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.List;
 import java.util.HashSet;
-import java.util.ArrayList;
+import java.util.List;
 
 /**
  * A basic implementation of the JBMUpdateableSecurityManager. This can be used within an appserver and be deployed by
@@ -72,22 +71,22 @@
 
    public boolean validateUser(String user, String password)
    {
-      User theUser = users.get(user == null?"guest":user);
-      return theUser != null && theUser.getPassword().equals(password == null?"guest":password);
+      User theUser = users.get(user == null ? "guest" : user);
+      return theUser != null && theUser.isValid(user == null ? "guest" : user, password == null ? "guest" : password);
    }
 
    public boolean validateUserAndRole(String user, String password, HashSet<Role> roles, CheckType checkType)
    {
-      if(validateUser(user,  password))
+      if (validateUser(user, password))
       {
-         List<String> availableRoles = this.roles.get(user == null?"guest":user);
+         List<String> availableRoles = this.roles.get(user == null ? "guest" : user);
          for (String availableRole : availableRoles)
          {
             if (roles != null)
             {
                for (Role role : roles)
                {
-                  if(role.getName().equals(availableRole) && role.isCheckType(checkType))
+                  if (role.getName().equals(availableRole) && role.isCheckType(checkType))
                   {
                      return true;
                   }
@@ -100,15 +99,15 @@
 
    public void addUser(String user, String password)
    {
-      if(user == null)
+      if (user == null)
       {
          throw new IllegalArgumentException("User cannot be null");
       }
-      if(password == null)
+      if (password == null)
       {
          throw new IllegalArgumentException("password cannot be null");
       }
-      users.put(user, new User(user,password));
+      users.put(user, new User(user, password));
    }
 
    public void removeUser(String user)
@@ -119,7 +118,7 @@
 
    public void addRole(String user, String role)
    {
-      if(roles.get(user) == null)
+      if (roles.get(user) == null)
       {
          roles.put(user, new ArrayList<String>());
       }
@@ -128,7 +127,7 @@
 
    public void removeRole(String user, String role)
    {
-      if(roles.get(user) == null)
+      if (roles.get(user) == null)
       {
          return;
       }
@@ -163,24 +162,14 @@
          return user.hashCode();
       }
 
-      public String getUser()
+      public boolean isValid(String user, String password)
       {
-         return user;
+         if (user == null)
+         {
+            return false;
+         }
+         return user.equals(this.user) && password
+                 .equals(this.password);
       }
-
-      public void setUser(String user)
-      {
-         this.user = user;
-      }
-
-      public String getPassword()
-      {
-         return password;
-      }
-
-      public void setPassword(String password)
-      {
-         this.password = password;
-      }
    }
 }

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/JAASSecurityManagerTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/JAASSecurityManagerTest.java	2008-06-05 12:18:05 UTC (rev 4391)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/JAASSecurityManagerTest.java	2008-06-05 12:57:03 UTC (rev 4392)
@@ -22,14 +22,14 @@
 package org.jboss.messaging.tests.unit.core.security.impl;
 
 import junit.framework.TestCase;
+import org.easymock.EasyMock;
+import org.easymock.IArgumentMatcher;
+import org.jboss.messaging.core.security.CheckType;
+import org.jboss.messaging.core.security.Role;
 import org.jboss.messaging.core.security.impl.JAASSecurityManager;
-import org.jboss.messaging.core.security.Role;
-import org.jboss.messaging.core.security.CheckType;
 import org.jboss.security.AuthenticationManager;
+import org.jboss.security.RealmMapping;
 import org.jboss.security.SimplePrincipal;
-import org.jboss.security.RealmMapping;
-import org.easymock.EasyMock;
-import org.easymock.IArgumentMatcher;
 
 import javax.security.auth.Subject;
 import java.util.HashSet;
@@ -37,11 +37,13 @@
 
 /**
  * tests the JAASSecurityManager
+ *
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
  */
 public class JAASSecurityManagerTest extends TestCase
 {
    JAASSecurityManager securityManager;
+
    protected void setUp() throws Exception
    {
       securityManager = new JAASSecurityManager();
@@ -61,7 +63,7 @@
       Subject subject = new Subject();
       EasyMock.expect(authenticationManager.isValid(principal(principal), EasyMock.aryEq(passwordChars), subject(subject))).andReturn(true);
       EasyMock.replay(authenticationManager);
-      
+
       securityManager.validateUser("newuser1", "newpassword1");
    }
 
@@ -78,7 +80,9 @@
       EasyMock.replay(authenticationManager);
       EasyMock.expect(realmMapping.doesUserHaveRole(principal(principal), EasyMock.isA(Set.class))).andReturn(true);
       EasyMock.replay(realmMapping);
-      securityManager.validateUserAndRole("newuser1", "newpassword1", new HashSet<Role>(), CheckType.CREATE );   
+      HashSet<Role> roleHashSet = new HashSet<Role>();
+      roleHashSet.add(new Role("newuser1", true, true, true));
+      securityManager.validateUserAndRole("newuser1", "newpassword1", roleHashSet, CheckType.CREATE);
    }
 
    public static SimplePrincipal principal(SimplePrincipal principal)
@@ -104,7 +108,7 @@
 
       public boolean matches(Object o)
       {
-         if(o instanceof SimplePrincipal)
+         if (o instanceof SimplePrincipal)
          {
             SimplePrincipal that = (SimplePrincipal) o;
             return that.getName().equals(principal.getName());
@@ -129,7 +133,7 @@
 
       public boolean matches(Object o)
       {
-         if(o instanceof Subject)
+         if (o instanceof Subject)
          {
             Subject that = (Subject) o;
             return true;

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/JBMSecurityManagerImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/JBMSecurityManagerImplTest.java	2008-06-05 12:18:05 UTC (rev 4391)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/JBMSecurityManagerImplTest.java	2008-06-05 12:57:03 UTC (rev 4392)
@@ -22,17 +22,18 @@
 package org.jboss.messaging.tests.unit.core.security.impl;
 
 import junit.framework.TestCase;
-import org.jboss.messaging.core.security.impl.JBMSecurityManagerImpl;
 import org.jboss.messaging.core.security.CheckType;
 import org.jboss.messaging.core.security.Role;
+import org.jboss.messaging.core.security.impl.JBMSecurityManagerImpl;
 
 import java.util.HashSet;
 
 /**
- * tests JBMSecurityManagerImpl 
+ * tests JBMSecurityManagerImpl
+ *
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
  */
-public class JBMSecurityManagerImplTest  extends TestCase
+public class JBMSecurityManagerImplTest extends TestCase
 {
    private JBMSecurityManagerImpl securityManager;
 
@@ -106,6 +107,14 @@
       assertFalse(securityManager.validateUser("newuser1", "newpassword1"));
    }
 
+   public void testRemovingInvalidUsers()
+   {
+      securityManager.addUser("newuser1", "newpassword1");
+      assertTrue(securityManager.validateUser("newuser1", "newpassword1"));
+      securityManager.removeUser("nonuser");
+      assertTrue(securityManager.validateUser("newuser1", "newpassword1"));
+   }
+
    public void testAddingRoles()
    {
       securityManager.addUser("newuser1", "newpassword1");

Modified: trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/SecurityStoreImplTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/SecurityStoreImplTest.java	2008-06-05 12:18:05 UTC (rev 4391)
+++ trunk/tests/src/org/jboss/messaging/tests/unit/core/security/impl/SecurityStoreImplTest.java	2008-06-05 12:57:03 UTC (rev 4392)
@@ -21,10 +21,7 @@
    */
 package org.jboss.messaging.tests.unit.core.security.impl;
 
-import java.util.HashSet;
-
 import junit.framework.TestCase;
-
 import org.easymock.EasyMock;
 import org.jboss.messaging.core.security.CheckType;
 import org.jboss.messaging.core.security.JBMSecurityManager;
@@ -34,8 +31,11 @@
 import org.jboss.messaging.core.settings.HierarchicalRepository;
 import org.jboss.messaging.util.SimpleString;
 
+import java.util.HashSet;
+
 /**
  * tests SecurityStoreImpl
+ *
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>
  */
 public class SecurityStoreImplTest extends TestCase
@@ -44,7 +44,7 @@
 
    protected void setUp() throws Exception
    {
-      securityStore  = new SecurityStoreImpl(1000000000, true);
+      securityStore = new SecurityStoreImpl(1000000000, true);
    }
 
    protected void tearDown() throws Exception
@@ -98,15 +98,15 @@
       EasyMock.replay(securityManager);
       EasyMock.replay(serverConnection);
       securityStore.setSecurityRepository(repository);
-      securityStore.check(address, CheckType.CREATE, serverConnection );
+      securityStore.check(address, CheckType.CREATE, serverConnection);
       //now checked its cached
       EasyMock.reset(repository);
       EasyMock.reset(securityManager);
       EasyMock.reset(serverConnection);
       EasyMock.replay(repository);
       EasyMock.replay(securityManager);
-      securityStore.check(address, CheckType.CREATE, serverConnection );
-      
+      securityStore.check(address, CheckType.CREATE, serverConnection);
+
    }
 
    public void testUnsuccessfulCheck() throws Exception
@@ -131,7 +131,7 @@
       securityStore.setSecurityRepository(repository);
       try
       {
-         securityStore.check(address, CheckType.CREATE, serverConnection );
+         securityStore.check(address, CheckType.CREATE, serverConnection);
          fail("should throw exception");
       }
       catch (Exception e)
@@ -164,11 +164,12 @@
       EasyMock.replay(securityManager);
       EasyMock.replay(serverConnection);
       securityStore.setSecurityRepository(repository);
-      securityStore.check(address, CheckType.CREATE, serverConnection );
+      securityStore.check(address, CheckType.CREATE, serverConnection);
       securityStore.onChange();
-      securityStore.check(address, CheckType.CREATE, serverConnection );
+      securityStore.check(address, CheckType.CREATE, serverConnection);
 
    }
+
    public void testSuccessfulCheckTimeoutCache() throws Exception
    {
       securityStore = new SecurityStoreImpl(2000, true);
@@ -194,9 +195,52 @@
       EasyMock.replay(securityManager);
       EasyMock.replay(serverConnection);
       securityStore.setSecurityRepository(repository);
-      securityStore.check(address, CheckType.CREATE, serverConnection );
+      securityStore.check(address, CheckType.CREATE, serverConnection);
       Thread.sleep(2000);
-      securityStore.check(address, CheckType.CREATE, serverConnection );
+      securityStore.check(address, CheckType.CREATE, serverConnection);
 
    }
+
+   public void testInvalidCheckType() throws Exception
+   {
+
+      CheckType badCheckType = new CheckType(4);
+      JBMSecurityManager securityManager = EasyMock.createStrictMock(JBMSecurityManager.class);
+      securityStore.setSecurityManager(securityManager);
+      //noinspection unchecked
+      HierarchicalRepository<HashSet<Role>> repository = EasyMock.createStrictMock(HierarchicalRepository.class);
+
+      SimpleString address = new SimpleString("anaddress");
+      HashSet<Role> roles = new HashSet<Role>();
+      roles.add(new Role("user", false, false, true));
+      repository.registerListener(securityStore);
+      EasyMock.expect(repository.getMatch(address.toString())).andReturn(roles);
+      ServerConnection serverConnection = EasyMock.createNiceMock(ServerConnection.class);
+      EasyMock.expect(serverConnection.getUsername()).andReturn("user");
+      EasyMock.expect(serverConnection.getPassword()).andReturn("password");
+      EasyMock.expect(securityManager.validateUserAndRole("user", "password", roles, badCheckType)).andReturn(true);
+      EasyMock.replay(repository);
+      EasyMock.replay(securityManager);
+      EasyMock.replay(serverConnection);
+      securityStore.setSecurityRepository(repository);
+      try
+      {
+         securityStore.check(address, badCheckType, serverConnection);
+         fail("should throw exception");
+      }
+      catch (IllegalArgumentException e)
+      {
+         e.printStackTrace();
+      }
+      //now try cached
+      try
+      {
+         securityStore.check(address, badCheckType, serverConnection);
+         fail("should throw exception");
+      }
+      catch (IllegalArgumentException e)
+      {
+         e.printStackTrace();
+      }
+   }
 }




More information about the jboss-cvs-commits mailing list