[jboss-svn-commits] JBL Code SVN: r18741 - in labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth: impl and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Mar 6 15:01:18 EST 2008


Author: szimano
Date: 2008-03-06 15:01:18 -0500 (Thu, 06 Mar 2008)
New Revision: 18741

Modified:
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/AuthHelper.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java
Log:
ALLUSERS role for all users JBLAB-901

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/AuthHelper.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/AuthHelper.java	2008-03-06 19:47:40 UTC (rev 18740)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/AuthHelper.java	2008-03-06 20:01:18 UTC (rev 18741)
@@ -25,66 +25,68 @@
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 
-import javax.persistence.EntityManager;
-
 import org.apache.log4j.Logger;
-import org.jboss.labs.core.model.auth.ProjectID;
 
 public class AuthHelper {
-	
+
 	private final static Logger log = Logger.getLogger(AuthHelper.class);
-	
+
 	public static final String GLOBAL_PROJECT = "Labs::Global::Superuser::Project";
-	
+
 	public static final String COMMON_ROLE_SUFIX = "_USERS";
-	
+
+	public static final String GLOBAL_ROLE = "ALLUSERS";
+
+	public static final String GLOBAL_ROLE_DESC = "Role for all users";
+
 	public static String countMD5(String password) {
 		try {
-			
+
 			MessageDigest algorithm = MessageDigest.getInstance("MD5");
 			algorithm.reset();
 			algorithm.update(password.getBytes());
 			byte messageDigest[] = algorithm.digest();
-		            
+
 			return encodeBase16(messageDigest);
-			
+
 		} catch (NoSuchAlgorithmException e) {
 			// shouldn't happen
 			throw new RuntimeException(e);
 		}
 	}
-	
+
 	private static String encodeBase16(byte[] bytes) {
-        StringBuffer sb = new StringBuffer(bytes.length * 2);
-        for (int i = 0; i < bytes.length; i++) {
-            byte b = bytes[i];
-            // top 4 bits
-            char c = (char) ((b >> 4) & 0xf);
-            if (c > 9)
-                c = (char) ((c - 10) + 'a');
-            else
-                c = (char) (c + '0');
-            sb.append(c);
-            // bottom 4 bits
-            c = (char) (b & 0xf);
-            if (c > 9)
-                c = (char) ((c - 10) + 'a');
-            else
-                c = (char) (c + '0');
-            sb.append(c);
-        }
-        return sb.toString();
-    }
-	
+		StringBuffer sb = new StringBuffer(bytes.length * 2);
+		for (int i = 0; i < bytes.length; i++) {
+			byte b = bytes[i];
+			// top 4 bits
+			char c = (char) ((b >> 4) & 0xf);
+			if (c > 9)
+				c = (char) ((c - 10) + 'a');
+			else
+				c = (char) (c + '0');
+			sb.append(c);
+			// bottom 4 bits
+			c = (char) (b & 0xf);
+			if (c > 9)
+				c = (char) ((c - 10) + 'a');
+			else
+				c = (char) (c + '0');
+			sb.append(c);
+		}
+		return sb.toString();
+	}
+
 	public static <E extends Enum<E>> String getServiceID(E serviceRole) {
 		return serviceRole.getDeclaringClass().getCanonicalName();
 	}
-	
+
 	public static <E extends Enum<E>> String getServiceRoleID(E serviceRole) {
 		return getServiceID(serviceRole) + "." + serviceRole.toString();
 	}
-	
+
 	public static String getCommonProjectId(String projectId) {
 		return projectId + COMMON_ROLE_SUFIX;
 	}
+
 }

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java	2008-03-06 19:47:40 UTC (rev 18740)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java	2008-03-06 20:01:18 UTC (rev 18741)
@@ -60,10 +60,13 @@
 
 	private final static Logger log = Logger.getLogger(UserServiceImpl.class);
 
+	private static UserRole globalUserRole;
+
 	@AroundInvoke
 	public Object init(InvocationContext ctx) throws Exception {
 		// if user db is empty add admin and a user with dummy roles
 		// Administrators and Users and make admin a super user
+
 		if (manager.createQuery("SELECT u FROM User u").setMaxResults(1)
 				.getResultList().size() == 0) {
 			User admin = new User("admin");
@@ -71,18 +74,18 @@
 			User user = new User("user");
 			user.setPassword(AuthHelper.countMD5("user"));
 
-            add("bob");
-            add("tomek");
-            add("adam");
-            add("przemek");
-            add("rysiek");
-            add("james");
-            add("mark");
-            add("cheyenne");
-            add("pawel");
-            add("sacha");
+			add("bob");
+			add("tomek");
+			add("adam");
+			add("przemek");
+			add("rysiek");
+			add("james");
+			add("mark");
+			add("cheyenne");
+			add("pawel");
+			add("sacha");
 
-            try {
+			try {
 				addNewUser(user);
 				addNewUser(admin);
 			} catch (UserExistsException e2) {
@@ -135,18 +138,19 @@
 		return ctx.proceed();
 	}
 
-    private void add(String u) {
-        User user = new User(u);
+	private void add(String u) {
+		User user = new User(u);
 		user.setPassword(AuthHelper.countMD5(u));
-        user.setEmail(u + "@jboss.org");
-        try {
-            addNewUser(user);
-        } catch (UserExistsException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-    }
+		user.setEmail(u + "@jboss.org");
+		try {
+			addNewUser(user);
+		} catch (UserExistsException e) {
+			e.printStackTrace(); // To change body of catch statement use
+			// File | Settings | File Templates.
+		}
+	}
 
-    public void bindRoleToUser(Principal user, UserRole role)
+	public void bindRoleToUser(Principal user, UserRole role)
 			throws NoSuchUserException {
 		User userEn = getUser(user);
 
@@ -165,9 +169,9 @@
 		userEn.addRole(roleEn);
 
 		manager.merge(userEn);
-		
+
 		roleEn.addUser(userEn);
-		
+
 		manager.merge(roleEn);
 	}
 
@@ -180,7 +184,10 @@
 			throws NoSuchUserException {
 		User u = getUser(login);
 
-		return new HashSet<UserRole>(u.getUserRoles());
+		Set<UserRole> roles = new HashSet<UserRole>(u.getUserRoles());
+		roles.add(getGlobalRole());
+
+		return roles;
 	}
 
 	public User getUserByLogin(String login) throws NoSuchUserException {
@@ -189,11 +196,13 @@
 
 	public void removeRoleFromUser(Principal user, UserRole role)
 			throws NoSuchRoleForUserException, NoSuchUserException {
-		User u = getUser(user);
+		if (!role.equals(getGlobalRole())) {
+			User u = getUser(user);
 
-		u.removeRole(role);
+			u.removeRole(role);
 
-		manager.merge(u);
+			manager.merge(u);
+		}
 	}
 
 	/*
@@ -233,6 +242,11 @@
 			throw new NoSuchUserException("User " + login + " doesn't exist");
 		}
 
+		if (!userEn.getUserRoles().contains(getGlobalRole())) {
+			userEn.addRole(getGlobalRole());
+			manager.merge(userEn);
+		}
+
 		return userEn;
 	}
 
@@ -273,11 +287,13 @@
 	 * @see org.jboss.labs.auth.UserService#removeUserRole(org.jboss.labs.core.model.auth.UserRole)
 	 */
 	public void removeUserRole(UserRole role) throws NoSuchUserRoleException {
-		UserRole roleEn = getUserRole(role);
+		if (!role.equals(getGlobalRole())) {
+			UserRole roleEn = getUserRole(role);
 
-		binderService.removeAllBindingsForUserRole(roleEn);
-		
-		manager.remove(roleEn);
+			binderService.removeAllBindingsForUserRole(roleEn);
+
+			manager.remove(roleEn);
+		}
 	}
 
 	/*
@@ -334,9 +350,11 @@
 		User userEn = getUser(user);
 
 		for (UserRole role : userRoles) {
-			UserRole roleEn = getUserRole(role);
+			if (!role.equals(getGlobalRole())) {
+				UserRole roleEn = getUserRole(role);
 
-			userEn.removeRole(roleEn);
+				userEn.removeRole(roleEn);
+			}
 		}
 
 		manager.persist(userEn);
@@ -349,7 +367,7 @@
 	 */
 	public void removeUser(Principal user) throws NoSuchUserException {
 		User userEn = getUser(user);
-		
+
 		for (UserRole ur : userEn.getUserRoles()) {
 			ur.removeUser(userEn);
 			manager.merge(ur);
@@ -386,8 +404,24 @@
 	 * 
 	 * @see org.jboss.labs.auth.UserService#getUsersFromUserRole(org.jboss.labs.core.model.auth.UserRole)
 	 */
-	public Set<User> getUsersFromUserRole(UserRole role) throws NoSuchUserRoleException {
+	public Set<User> getUsersFromUserRole(UserRole role)
+			throws NoSuchUserRoleException {
 		return new TreeSet<User>(getUserRole(role.getId()).getUsers());
 	}
 
+	public UserRole getGlobalRole() {
+		if (globalUserRole == null) {
+			globalUserRole = manager.find(UserRole.class,
+					AuthHelper.GLOBAL_ROLE);
+
+			if (globalUserRole == null) {
+				globalUserRole = new UserRole(AuthHelper.GLOBAL_ROLE,
+						AuthHelper.GLOBAL_ROLE_DESC);
+
+				manager.persist(globalUserRole);
+			}
+		}
+
+		return globalUserRole;
+	}
 }




More information about the jboss-svn-commits mailing list