Author: eric
Date: Tue Feb  7 13:07:54 2012
New Revision: 1241455

URL: http://svn.apache.org/viewvc?rev=1241455&view=rev
Log:
Lower cases and check if existing before HBase user creation (JAMES-1369)

Modified:
    
james/server/trunk/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java

Modified: 
james/server/trunk/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java?rev=1241455&r1=1241454&r2=1241455&view=diff
==============================================================================
--- 
james/server/trunk/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
 (original)
+++ 
james/server/trunk/data-hbase/src/main/java/org/apache/james/user/hbase/HBaseUsersRepository.java
 Tue Feb  7 13:07:54 2012
@@ -94,7 +94,7 @@ public class HBaseUsersRepository extend
         if (existingUser == null) {
             throw new UsersRepositoryException("Please provide an existing 
user to update");
         }
-        putUser((DefaultUser) user);
+        putUser((DefaultUser) user, false);
     }
 
     /**
@@ -224,7 +224,7 @@ public class HBaseUsersRepository extend
     protected void doAddUser(String username, String password) throws 
UsersRepositoryException {
         DefaultUser user = new DefaultUser(username, algo);
         user.setPassword(password);
-        putUser(user);
+        putUser(user, true);
     }
     
     /**
@@ -257,16 +257,23 @@ public class HBaseUsersRepository extend
     }
     
     /**
-     * Utility mehtod to put a User in HBase.
+     * Utility method to put a User in HBase.
      * 
      * @param user
      * @throws UsersRepositoryException
      */
-    private void putUser(DefaultUser user) throws UsersRepositoryException {
+    private void putUser(DefaultUser user, boolean isAdd) throws 
UsersRepositoryException {
+        String username = user.getUserName();
+        if (isAdd) {
+            username = user.getUserName().toLowerCase();
+            if (contains(username)) {
+                throw new UsersRepositoryException(username + " already 
exists.");
+            }
+        }
         HTable table = null;
         try {
             table = TablePool.getInstance().getUsersRepositoryTable();
-            Put put = new Put(Bytes.toBytes(user.getUserName()));
+            Put put = new Put(Bytes.toBytes(username));
             put.add(HUsersRepository.COLUMN_FAMILY_NAME, 
HUsersRepository.COLUMN.PWD, Bytes.toBytes(user.getHashedPassword()));
             table.put(put);
             table.flushCommits();



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to