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; + } }
