Author: jonesde
Date: Wed May 14 23:10:50 2008
New Revision: 656515

URL: http://svn.apache.org/viewvc?rev=656515&view=rev
Log:
Reverted fix from Hans that effectively disabled the method to remove the hash 
type prefix, and fixed the userLogin service code to and fixed the userLogin 
service code to remove the prefix from the db currentPassword value, which was 
missing and was causing the problem

Modified:
    ofbiz/trunk/framework/base/src/base/org/ofbiz/base/crypto/HashCrypt.java
    ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LoginServices.java

Modified: 
ofbiz/trunk/framework/base/src/base/org/ofbiz/base/crypto/HashCrypt.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/crypto/HashCrypt.java?rev=656515&r1=656514&r2=656515&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/crypto/HashCrypt.java 
(original)
+++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/crypto/HashCrypt.java 
Wed May 14 23:10:50 2008
@@ -81,7 +81,7 @@
     }
     
     public static String removeHashTypePrefix(String hashString) {
-        if (UtilValidate.isNotEmpty(hashString) || hashString.charAt(0) != 
'{') {
+        if (UtilValidate.isEmpty(hashString) || hashString.charAt(0) != '{') {
             return hashString;
         }
         

Modified: 
ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LoginServices.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LoginServices.java?rev=656515&r1=656514&r2=656515&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LoginServices.java 
(original)
+++ ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LoginServices.java 
Wed May 14 23:10:50 2008
@@ -115,6 +115,7 @@
                     
                     String currentPassword = 
userLogin.getString("currentPassword");
                     if (useEncryption && currentPassword != null && 
currentPassword.startsWith("{")) {
+                        // get encode according to the type in the database
                         String dbHashType = 
HashCrypt.getHashTypeFromPrefix(currentPassword);
                         if (dbHashType != null) {
                             encodedPasswordUsingDbHashType = 
HashCrypt.getDigestHash(password, dbHashType);
@@ -162,9 +163,9 @@
                         // if the password.accept.encrypted.and.plain property 
in security is set to true allow plain or encrypted passwords
                         // if this is a system account don't bother checking 
the passwords
                         if ((userLogin.get("currentPassword") != null &&
-                            
(HashCrypt.removeHashTypePrefix(encodedPassword).equals(userLogin.getString("currentPassword"))
 ||
-                                    
HashCrypt.removeHashTypePrefix(encodedPasswordOldFunnyHexEncode).equals(userLogin.getString("currentPassword"))
 ||
-                                    
HashCrypt.removeHashTypePrefix(encodedPasswordUsingDbHashType).equals(userLogin.getString("currentPassword"))
 ||
+                            
(HashCrypt.removeHashTypePrefix(encodedPassword).equals(HashCrypt.removeHashTypePrefix(currentPassword))
 ||
+                                    
HashCrypt.removeHashTypePrefix(encodedPasswordOldFunnyHexEncode).equals(HashCrypt.removeHashTypePrefix(currentPassword))
 ||
+                                    
HashCrypt.removeHashTypePrefix(encodedPasswordUsingDbHashType).equals(HashCrypt.removeHashTypePrefix(currentPassword))
 ||
                                 
("true".equals(UtilProperties.getPropertyValue("security.properties", 
"password.accept.encrypted.and.plain")) && 
password.equals(userLogin.getString("currentPassword")))))) {
                             Debug.logVerbose("[LoginServices.userLogin] : 
Password Matched", module);
 


Reply via email to