Updated Branches:
  refs/heads/4.1 2fdeee4de -> 3dc916a32

CLOUDSTACK-2516: Added PlainText to Authenticator list for backward 
compatibility


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3dc916a3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3dc916a3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3dc916a3

Branch: refs/heads/4.1
Commit: 3dc916a32875fa26c1d1fae2cb4fd2ac49659707
Parents: 2fdeee4
Author: Kishan Kavala <[email protected]>
Authored: Thu May 16 16:06:23 2013 +0530
Committer: Chip Childers <[email protected]>
Committed: Thu May 16 21:56:46 2013 +0100

----------------------------------------------------------------------
 client/tomcatconf/applicationContext.xml.in        |    3 +
 client/tomcatconf/componentContext.xml.in          |    1 +
 .../server/auth/PlainTextUserAuthenticator.java    |   65 +++++----------
 3 files changed, 25 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3dc916a3/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in 
b/client/tomcatconf/applicationContext.xml.in
index 849c0bc..a9c9881 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -371,6 +371,9 @@
   <bean id="LDAPUserAuthenticator" 
class="com.cloud.server.auth.LDAPUserAuthenticator">
     <property name="name" value="LDAP"/>
   </bean>
+  <bean id="PlainTextUserAuthenticator" 
class="com.cloud.server.auth.PlainTextUserAuthenticator">
+    <property name="name" value="PLAINTEXT"/>
+  </bean>
 
   <!--
       Network Elements

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3dc916a3/client/tomcatconf/componentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/componentContext.xml.in 
b/client/tomcatconf/componentContext.xml.in
index ecd4a11..daab17a 100644
--- a/client/tomcatconf/componentContext.xml.in
+++ b/client/tomcatconf/componentContext.xml.in
@@ -72,6 +72,7 @@
       <list>
           <ref bean="MD5UserAuthenticator"/>
           <ref bean="LDAPUserAuthenticator"/>
+          <ref bean="PlainTextUserAuthenticator"/>
       </list>
     </property>
   </bean>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3dc916a3/plugins/user-authenticators/plain-text/src/com/cloud/server/auth/PlainTextUserAuthenticator.java
----------------------------------------------------------------------
diff --git 
a/plugins/user-authenticators/plain-text/src/com/cloud/server/auth/PlainTextUserAuthenticator.java
 
b/plugins/user-authenticators/plain-text/src/com/cloud/server/auth/PlainTextUserAuthenticator.java
index 52e7cb3..91f9fa5 100644
--- 
a/plugins/user-authenticators/plain-text/src/com/cloud/server/auth/PlainTextUserAuthenticator.java
+++ 
b/plugins/user-authenticators/plain-text/src/com/cloud/server/auth/PlainTextUserAuthenticator.java
@@ -34,61 +34,38 @@ import com.cloud.utils.exception.CloudRuntimeException;
 
 @Local(value={UserAuthenticator.class})
 public class PlainTextUserAuthenticator extends DefaultUserAuthenticator {
-       public static final Logger s_logger = 
Logger.getLogger(PlainTextUserAuthenticator.class);
-       
-       @Inject private UserAccountDao _userAccountDao;
-       
-       @Override
-       public boolean authenticate(String username, String password, Long 
domainId, Map<String, Object[]> requestParameters ) {
-               if (s_logger.isDebugEnabled()) {
+    public static final Logger s_logger = 
Logger.getLogger(PlainTextUserAuthenticator.class);
+
+    @Inject private UserAccountDao _userAccountDao;
+
+    @Override
+    public boolean authenticate(String username, String password, Long 
domainId, Map<String, Object[]> requestParameters ) {
+        if (s_logger.isDebugEnabled()) {
             s_logger.debug("Retrieving user: " + username);
         }
+
         UserAccount user = _userAccountDao.getUserAccount(username, domainId);
         if (user == null) {
             s_logger.debug("Unable to find user with " + username + " in 
domain " + domainId);
             return false;
         }
-        
-       
-        MessageDigest md5;
-        try {
-            md5 = MessageDigest.getInstance("MD5");
-        } catch (NoSuchAlgorithmException e) {
-            throw new CloudRuntimeException("Error", e);
-        }
-        md5.reset();
-        BigInteger pwInt = new BigInteger(1, md5.digest(password.getBytes()));
 
-        // make sure our MD5 hash value is 32 digits long...
-        StringBuffer sb = new StringBuffer();
-        String pwStr = pwInt.toString(16);
-        int padding = 32 - pwStr.length();
-        for (int i = 0; i < padding; i++) {
-            sb.append('0');
-        }
-        sb.append(pwStr);
-        
-        
-        // Will: The MD5Authenticator is now a straight pass-through 
comparison of the
-        // the passwords because we will not assume that the password passed 
in has
-        // already been MD5 hashed.  I am keeping the above code in case this 
requirement changes
-        // or people need examples of how to MD5 hash passwords in java.
-        if (!user.getPassword().equals(sb.toString())) {
+        if (!user.getPassword().equals(password)) {
             s_logger.debug("Password does not match");
             return false;
         }
-               return true;
-       }
+        return true;
+    }
 
-       public boolean configure(String name, Map<String, Object> params)
-                       throws ConfigurationException {
-               super.configure(name, params);
-               return true;
-       }
+    public boolean configure(String name, Map<String, Object> params)
+            throws ConfigurationException {
+        super.configure(name, params);
+        return true;
+    }
 
-       @Override
-       public String encode(String password) {
-               // Plaintext so no encoding at all
-               return password; 
-       }
+    @Override
+    public String encode(String password) {
+        // Plaintext so no encoding at all
+        return password;
+    }
 }

Reply via email to