Author: doogie
Date: Wed Apr 18 23:49:22 2012
New Revision: 1327741
URL: http://svn.apache.org/viewvc?rev=1327741&view=rev
Log:
FEATURE: Make use of new HashCrypt cryptPassword functionality.
Modified:
ofbiz/trunk/applications/securityext/src/org/ofbiz/securityext/login/LoginEvents.java
ofbiz/trunk/framework/base/src/org/ofbiz/base/crypto/HashCrypt.java
ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LdapAuthenticationServices.java
ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LoginServices.java
ofbiz/trunk/specialpurpose/ldap/src/org/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java
Modified:
ofbiz/trunk/applications/securityext/src/org/ofbiz/securityext/login/LoginEvents.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/applications/securityext/src/org/ofbiz/securityext/login/LoginEvents.java?rev=1327741&r1=1327740&r2=1327741&view=diff
==============================================================================
---
ofbiz/trunk/applications/securityext/src/org/ofbiz/securityext/login/LoginEvents.java
(original)
+++
ofbiz/trunk/applications/securityext/src/org/ofbiz/securityext/login/LoginEvents.java
Wed Apr 18 23:49:22 2012
@@ -212,7 +212,7 @@ public class LoginEvents {
if (useEncryption) {
// password encrypted, can't send, generate new password and
email to user
passwordToSend =
RandomStringUtils.randomAlphanumeric(Integer.parseInt(UtilProperties.getPropertyValue("security",
"password.length.min", "5")));
- supposedUserLogin.set("currentPassword",
HashCrypt.getDigestHash(passwordToSend, LoginServices.getHashType()));
+ supposedUserLogin.set("currentPassword",
HashCrypt.cryptPassword(LoginServices.getHashType(), passwordToSend));
supposedUserLogin.set("passwordHint", "Auto-Generated
Password");
if
("true".equals(UtilProperties.getPropertyValue("security.properties",
"password.email_password.require_password_change"))){
supposedUserLogin.set("requirePasswordChange", "Y");
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/crypto/HashCrypt.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/crypto/HashCrypt.java?rev=1327741&r1=1327740&r2=1327741&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/crypto/HashCrypt.java
(original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/crypto/HashCrypt.java Wed Apr
18 23:49:22 2012
@@ -118,10 +118,18 @@ public class HashCrypt {
}
}
+ /**
+ * @deprecated use cryptPassword
+ */
+ @Deprecated
public static String getDigestHash(String str) {
return getDigestHash(str, "SHA");
}
+ /**
+ * @deprecated use cryptPassword
+ */
+ @Deprecated
public static String getDigestHash(String str, String hashType) {
if (str == null) return null;
try {
@@ -141,6 +149,10 @@ public class HashCrypt {
}
}
+ /**
+ * @deprecated use cryptPassword
+ */
+ @Deprecated
public static String getDigestHash(String str, String code, String
hashType) {
if (str == null) return null;
try {
@@ -162,6 +174,10 @@ public class HashCrypt {
}
}
+ /**
+ * @deprecated use cryptPassword
+ */
+ @Deprecated
public static String getHashTypeFromPrefix(String hashString) {
if (UtilValidate.isEmpty(hashString) || hashString.charAt(0) != '{') {
return null;
@@ -170,6 +186,10 @@ public class HashCrypt {
return hashString.substring(1, hashString.indexOf('}'));
}
+ /**
+ * @deprecated use cryptPassword
+ */
+ @Deprecated
public static String removeHashTypePrefix(String hashString) {
if (UtilValidate.isEmpty(hashString) || hashString.charAt(0) != '{') {
return hashString;
@@ -178,6 +198,10 @@ public class HashCrypt {
return hashString.substring(hashString.indexOf('}') + 1);
}
+ /**
+ * @deprecated no replacement, logic moved into comparePassword
+ */
+ @Deprecated
public static String getDigestHashOldFunnyHexEncode(String str, String
hashType) {
if (UtilValidate.isEmpty(hashType)) hashType = "SHA";
if (str == null) return null;
Modified:
ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LdapAuthenticationServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LdapAuthenticationServices.java?rev=1327741&r1=1327740&r2=1327741&view=diff
==============================================================================
---
ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LdapAuthenticationServices.java
(original)
+++
ofbiz/trunk/framework/common/src/org/ofbiz/common/login/LdapAuthenticationServices.java
Wed Apr 18 23:49:22 2012
@@ -94,24 +94,16 @@ public class LdapAuthenticationServices
// Synchronize user's OFBiz password with user's LDAP password
if (userLogin != null) {
boolean useEncryption =
"true".equals(UtilProperties.getPropertyValue("security.properties",
"password.encrypt"));
- String encodedPassword = useEncryption ?
HashCrypt.getDigestHash(password, LoginServices.getHashType()) : password;
- String encodedPasswordOldFunnyHexEncode = useEncryption ?
HashCrypt.getDigestHashOldFunnyHexEncode(password, LoginServices.getHashType())
: password;
- String encodedPasswordUsingDbHashType = encodedPassword;
String currentPassword = userLogin.getString("currentPassword");
- if (useEncryption && currentPassword != null &&
currentPassword.startsWith("{")) {
- String dbHashType =
HashCrypt.getHashTypeFromPrefix(currentPassword);
- if (dbHashType != null) {
- encodedPasswordUsingDbHashType =
HashCrypt.getDigestHash(password, dbHashType);
- }
+ boolean samePassword;
+ if (useEncryption) {
+ samePassword = HashCrypt.comparePassword(currentPassword,
LoginServices.getHashType(), password);
+ } else {
+ samePassword = currentPassword.equals(password);
}
- boolean samePassword = currentPassword != null &&
-
(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(currentPassword)));
if (!samePassword) {
Debug.logVerbose("Starting password synchronization", module);
- userLogin.set("currentPassword", useEncryption ?
HashCrypt.getDigestHash(password, LoginServices.getHashType()) : password,
false);
+ userLogin.set("currentPassword", useEncryption ?
HashCrypt.cryptPassword(LoginServices.getHashType(), password) : password,
false);
Transaction parentTx = null;
boolean beganTransaction = false;
try {
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=1327741&r1=1327740&r2=1327741&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 Apr 18 23:49:22 2012
@@ -456,7 +456,7 @@ public class LoginServices {
// save this password in history
GenericValue userLoginPwdHistToCreate =
delegator.makeValue("UserLoginPasswordHistory", UtilMisc.toMap("userLoginId",
userLoginId,"fromDate", nowTimestamp));
boolean useEncryption =
"true".equals(UtilProperties.getPropertyValue("security.properties",
"password.encrypt"));
- userLoginPwdHistToCreate.set("currentPassword", useEncryption ?
HashCrypt.getDigestHash(currentPassword, getHashType()) : currentPassword);
+ userLoginPwdHistToCreate.set("currentPassword", useEncryption ?
HashCrypt.cryptPassword(getHashType(), currentPassword) : currentPassword);
userLoginPwdHistToCreate.create();
}
@@ -520,7 +520,7 @@ public class LoginServices {
userLoginToCreate.set("passwordHint", passwordHint);
userLoginToCreate.set("enabled", enabled);
userLoginToCreate.set("requirePasswordChange", requirePasswordChange);
- userLoginToCreate.set("currentPassword", useEncryption ?
HashCrypt.getDigestHash(currentPassword, getHashType()) : currentPassword);
+ userLoginToCreate.set("currentPassword", useEncryption ?
HashCrypt.cryptPassword(getHashType(), currentPassword) : currentPassword);
try {
userLoginToCreate.set("partyId", partyId);
} catch (Exception e) {
@@ -672,7 +672,7 @@ public class LoginServices {
return ServiceUtil.returnError(errMsg);
}
} else {
- userLoginToUpdate.set("currentPassword", useEncryption ?
HashCrypt.getDigestHash(newPassword, getHashType()) : newPassword, false);
+ userLoginToUpdate.set("currentPassword", useEncryption ?
HashCrypt.cryptPassword(getHashType(), newPassword) : newPassword, false);
userLoginToUpdate.set("passwordHint", passwordHint, false);
userLoginToUpdate.set("requirePasswordChange", "N");
@@ -925,7 +925,7 @@ public class LoginServices {
Delegator delegator = userLogin.getDelegator();
String newPasswordHash = newPassword;
if (useEncryption) {
- newPasswordHash = HashCrypt.getDigestHash(newPassword,
getHashType());
+ newPasswordHash = HashCrypt.cryptPassword(getHashType(),
newPassword);
}
try {
List<GenericValue> pwdHistList =
delegator.findByAnd("UserLoginPasswordHistory",
UtilMisc.toMap("userLoginId",userLogin.getString("userLoginId"),"currentPassword",newPasswordHash));
@@ -984,21 +984,7 @@ public class LoginServices {
boolean passwordMatches = false;
if (oldPassword != null) {
if (useEncryption) {
- String encodedPassword =
HashCrypt.getDigestHash(currentPassword, getHashType());
- String encodedPasswordOldFunnyHexEncode =
HashCrypt.getDigestHashOldFunnyHexEncode(currentPassword, getHashType());
- String encodedPasswordUsingDbHashType = encodedPassword;
- if (oldPassword.startsWith("{")) {
- // get encode according to the type in the database
- String dbHashType =
HashCrypt.getHashTypeFromPrefix(oldPassword);
- if (dbHashType != null) {
- encodedPasswordUsingDbHashType =
HashCrypt.getDigestHash(currentPassword, dbHashType);
- }
- }
- passwordMatches =
HashCrypt.removeHashTypePrefix(encodedPassword).equals(HashCrypt.removeHashTypePrefix(oldPassword))
||
-
HashCrypt.removeHashTypePrefix(encodedPasswordOldFunnyHexEncode).equals(HashCrypt.removeHashTypePrefix(oldPassword))
||
-
HashCrypt.removeHashTypePrefix(encodedPasswordUsingDbHashType).equals(HashCrypt.removeHashTypePrefix(oldPassword))
||
-
("true".equals(UtilProperties.getPropertyValue("security.properties",
"password.accept.encrypted.and.plain")) && oldPassword.equals(currentPassword));
- //passwordMatches = HashCrypt.comparePassword(oldPassword,
getHashType(), currentPassword);
+ passwordMatches = HashCrypt.comparePassword(oldPassword,
getHashType(), currentPassword);
} else {
passwordMatches = oldPassword.equals(currentPassword);
}
Modified:
ofbiz/trunk/specialpurpose/ldap/src/org/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java
URL:
http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ldap/src/org/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java?rev=1327741&r1=1327740&r2=1327741&view=diff
==============================================================================
---
ofbiz/trunk/specialpurpose/ldap/src/org/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java
(original)
+++
ofbiz/trunk/specialpurpose/ldap/src/org/ofbiz/ldap/commons/AbstractOFBizAuthenticationHandler.java
Wed Apr 18 23:49:22 2012
@@ -101,7 +101,7 @@ public abstract class AbstractOFBizAuthe
userLoginToCreate.set("passwordHint", "");
userLoginToCreate.set("enabled", "Y");
userLoginToCreate.set("partyId", getPartyId(rootElement, result));
- userLoginToCreate.set("currentPassword", useEncryption ?
HashCrypt.getDigestHash(password, LoginServices.getHashType()) : password);
+ userLoginToCreate.set("currentPassword", useEncryption ?
HashCrypt.cryptPassword(LoginServices.getHashType(), password) : password);
GenericValue userTryToLogin = delegator.findOne("UserLogin", false,
"userLoginId", username);
if (userTryToLogin == null) {
@@ -119,7 +119,7 @@ public abstract class AbstractOFBizAuthe
throw new GenericEntityException(e.getLocalizedMessage());
}
} else {
- userTryToLogin.setString("currentPassword", useEncryption ?
HashCrypt.getDigestHash(password, LoginServices.getHashType()) : password);
+ userTryToLogin.setString("currentPassword", useEncryption ?
HashCrypt.cryptPassword(LoginServices.getHashType(), password) : password);
userTryToLogin.store();
}