[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