[jboss-svn-commits] JBL Code SVN: r22257 - in labs/jbossrules/trunk/drools-repository/src: test/java/org/drools/repository/security and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Aug 30 08:09:07 EDT 2008


Author: jervisliu
Date: 2008-08-30 08:09:07 -0400 (Sat, 30 Aug 2008)
New Revision: 22257

Modified:
   labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java
   labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java
Log:
Fixed an exception when empty string is used as the login name.

Modified: labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java	2008-08-30 10:50:07 UTC (rev 22256)
+++ labs/jbossrules/trunk/drools-repository/src/main/java/org/drools/repository/security/PermissionManager.java	2008-08-30 12:09:07 UTC (rev 22257)
@@ -38,6 +38,10 @@
      * @throws RepositoryException
      */
     public void updateUserPermissions(String userName, Map<String, List<String>> perms) {
+    	if (!isValideUserName(userName)) {
+    		return;
+    	}
+    	
     	try {
 	    	Node permsNode = getUserPermissionNode(userName);
 	    	permsNode.remove(); //remove this so we get a fresh set
@@ -68,9 +72,14 @@
      */
     public Map<String, List<String>> retrieveUserPermissions(String userName) {
     	try {
+	    	Map<String, List<String>> result = new HashMap<String, List<String>>(10);	    	
+	    	if (!isValideUserName(userName)) {
+	    		return result;
+	    	}
+	    	
 	    	Node permsNode = getUserPermissionNode(userName);
 	    	PropertyIterator it = permsNode.getProperties();
-	    	Map<String, List<String>> result = new HashMap<String, List<String>>(10);
+	    	
 	    	while (it.hasNext()) {
 	    		Property p = (Property) it.next();
 	    		String name = p.getName();
@@ -147,6 +156,10 @@
 	}
 
 	public void removeUserPermissions(String userName) {
+    	if (!isValideUserName(userName)) {
+    		return;
+    	}
+    	
 		try {
 	    	Node permsNode = getUserPermissionNode(userName);
 	    	permsNode.getParent().remove(); //remove this so we get a fresh set
@@ -155,10 +168,11 @@
 		}
 
 	}
-
-
-
-
-
-
+	
+	private boolean isValideUserName(String userName) {
+		if("".equals(userName.trim()) || userName.trim().length() == 0) {
+			return false;
+		}
+		return true;
+	}
 }

Modified: labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java	2008-08-30 10:50:07 UTC (rev 22256)
+++ labs/jbossrules/trunk/drools-repository/src/test/java/org/drools/repository/security/PermissionManagerTest.java	2008-08-30 12:09:07 UTC (rev 22257)
@@ -61,9 +61,6 @@
 		pm.removeUserPermissions("wankle");
 
 		assertFalse(pm.listUsers().containsKey("wankle"));
-
-
-
 	}
 
 	public void testUpdatePerms() throws Exception {
@@ -82,9 +79,6 @@
 		pm.updateUserPermissions("testUpdatePermsWankle", perms);
 		perms = pm.retrieveUserPermissions("testUpdatePermsWankle");
 		assertEquals(3, perms.size());
-
-
-
 	}
 
 	public void testNilUser() throws Exception {
@@ -97,8 +91,6 @@
 	}
 
 	public void testListingUsers() throws Exception {
-
-
 		PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository());
 		pm.deleteAllPermissions();
 
@@ -143,8 +135,26 @@
 		permTypes = result.get("listingUser5");
 		assertEquals(1, permTypes.size());
 		assertEquals("analyst", permTypes.get(0));
+	}
 
-
+	public void testEmptyUserName() throws Exception {
+		PermissionManager pm = new PermissionManager(RepositorySessionUtil.getRepository());
+		Map<String, List<String>> perms_ = pm.retrieveUserPermissions("");
+		assertEquals(0, perms_.size());
+		
+		perms_ = pm.retrieveUserPermissions("  ");
+		assertEquals(0, perms_.size());
+		
+		Map<String, List<String>> perms = new HashMap<String, List<String>>() {{
+			put("package.admin", new ArrayList<String>() {{add("1234567890");}});
+			put("package.developer", new ArrayList<String>() {{add("1"); add("2");}});
+			put("analyst", new ArrayList<String>() {{add("HR");}});
+			put("admin", new ArrayList<String>());
+		}};
+		pm.updateUserPermissions(" ", perms);
+		pm.updateUserPermissions("", perms);
+		
+		pm.removeUserPermissions("");
+		pm.removeUserPermissions("  ");		
 	}
-
 }




More information about the jboss-svn-commits mailing list