Repository: incubator-ranger Updated Branches: refs/heads/master 0ef1622b9 -> 510697aef
RANGER-1259 : Improve ChangePassword utility and make it idempotent for default password change request Signed-off-by: Gautam Borad <gau...@apache.org> Project: http://git-wip-us.apache.org/repos/asf/incubator-ranger/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-ranger/commit/510697ae Tree: http://git-wip-us.apache.org/repos/asf/incubator-ranger/tree/510697ae Diff: http://git-wip-us.apache.org/repos/asf/incubator-ranger/diff/510697ae Branch: refs/heads/master Commit: 510697aef5c782367d918020732b8e307f495909 Parents: 0ef1622 Author: pradeep agrawal <pradeep.agra...@freestoneinfotech.com> Authored: Sat Dec 17 15:44:08 2016 +0530 Committer: Gautam Borad <gau...@apache.org> Committed: Wed Dec 21 18:56:34 2016 +0530 ---------------------------------------------------------------------- security-admin/scripts/db_setup.py | 60 ++++++++++++-------- .../java/org/apache/ranger/biz/UserMgr.java | 22 ++++++- .../org/apache/ranger/entity/XXPortalUser.java | 1 - .../patch/cliutil/ChangePasswordUtil.java | 14 ++++- .../handler/RangerAuthenticationProvider.java | 2 +- .../org/apache/ranger/view/VXPortalUser.java | 1 - .../java/org/apache/ranger/view/VXUser.java | 1 - .../java/org/apache/ranger/biz/TestUserMgr.java | 2 +- 8 files changed, 68 insertions(+), 35 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/510697ae/security-admin/scripts/db_setup.py ---------------------------------------------------------------------- diff --git a/security-admin/scripts/db_setup.py b/security-admin/scripts/db_setup.py index bb51cc7..7cd1ef0 100644 --- a/security-admin/scripts/db_setup.py +++ b/security-admin/scripts/db_setup.py @@ -599,12 +599,12 @@ class MysqlConf(BaseDB): path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) elif os_name == "WINDOWS": path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) - get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) + get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s -default"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) if os_name == "LINUX": - ret = subprocess.call(shlex.split(get_java_cmd)) + status = subprocess.call(shlex.split(get_java_cmd)) elif os_name == "WINDOWS": - ret = subprocess.call(get_java_cmd) - if ret == 0: + status = subprocess.call(get_java_cmd) + if status == 0 or status==2: if os_name == "LINUX": query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host) jisql_log(query, db_password) @@ -613,8 +613,10 @@ class MysqlConf(BaseDB): query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c ;" %(version,client_host) jisql_log(query, db_password) ret = subprocess.call(query) - if ret == 0: + if ret == 0 and status == 0: log ("[I] Ranger admin default password change request processed successfully..","info") + elif ret == 0 and status == 2: + log ("[I] Ranger admin default password change request process skipped!","info") else: if os_name == "LINUX": query = get_cmd + " -query \"delete from x_db_version_h where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host) @@ -1276,12 +1278,12 @@ class OracleConf(BaseDB): path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) elif os_name == "WINDOWS": path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) - get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) + get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s -default"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) if os_name == "LINUX": - ret = subprocess.call(shlex.split(get_java_cmd)) + status = subprocess.call(shlex.split(get_java_cmd)) elif os_name == "WINDOWS": - ret = subprocess.call(get_java_cmd) - if ret == 0: + status = subprocess.call(get_java_cmd) + if status == 0 or status==2: if os_name == "LINUX": query = get_cmd + " -c \; -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host) jisql_log(query, db_password) @@ -1290,8 +1292,10 @@ class OracleConf(BaseDB): query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c ;" %(version,client_host) jisql_log(query, db_password) ret = subprocess.call(query) - if ret == 0: + if ret == 0 and status == 0: log ("[I] Ranger admin default password change request processed successfully..","info") + elif ret == 0 and status == 2: + log ("[I] Ranger admin default password change request process skipped!","info") else: if os_name == "LINUX": query = get_cmd + " -c \; -query \"delete from x_db_version_h where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host) @@ -1933,12 +1937,12 @@ class PostgresConf(BaseDB): path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) elif os_name == "WINDOWS": path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) - get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) + get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s -default"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) if os_name == "LINUX": - ret = subprocess.call(shlex.split(get_java_cmd)) + status = subprocess.call(shlex.split(get_java_cmd)) elif os_name == "WINDOWS": - ret = subprocess.call(get_java_cmd) - if ret == 0: + status = subprocess.call(get_java_cmd) + if status == 0 or status==2: if os_name == "LINUX": query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host) jisql_log(query, db_password) @@ -1947,8 +1951,10 @@ class PostgresConf(BaseDB): query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c ;" %(version,client_host) jisql_log(query, db_password) ret = subprocess.call(query) - if ret == 0: + if ret == 0 and status == 0: log ("[I] Ranger admin default password change request processed successfully..","info") + elif ret == 0 and status == 2: + log ("[I] Ranger admin default password change request process skipped!","info") else: if os_name == "LINUX": query = get_cmd + " -query \"delete from x_db_version_h where version='%s' and active='N' and updated_by='%s';\"" %(version,client_host) @@ -2551,12 +2557,12 @@ class SqlServerConf(BaseDB): path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) elif os_name == "WINDOWS": path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) - get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) + get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s -default"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) if os_name == "LINUX": - ret = subprocess.call(shlex.split(get_java_cmd)) + status = subprocess.call(shlex.split(get_java_cmd)) elif os_name == "WINDOWS": - ret = subprocess.call(get_java_cmd) - if ret == 0: + status = subprocess.call(get_java_cmd) + if status == 0 or status==2: if os_name == "LINUX": query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c \;" %(version,client_host) jisql_log(query, db_password) @@ -2565,8 +2571,10 @@ class SqlServerConf(BaseDB): query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c ;" %(version,client_host) jisql_log(query, db_password) ret = subprocess.call(query) - if ret == 0: + if ret == 0 and status == 0: log ("[I] Ranger admin default password change request processed successfully..","info") + elif ret == 0 and status == 2: + log ("[I] Ranger admin default password change request process skipped!","info") else: if os_name == "LINUX": query = get_cmd + " -query \"delete from x_db_version_h where version='%s' and active='N' and updated_by='%s';\" -c \;" %(version,client_host) @@ -3182,12 +3190,12 @@ class SqlAnywhereConf(BaseDB): path = os.path.join("%s","WEB-INF","classes","conf:%s","WEB-INF","classes","lib","*:%s","WEB-INF",":%s","META-INF",":%s","WEB-INF","lib","*:%s","WEB-INF","classes",":%s","WEB-INF","classes","META-INF:%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) elif os_name == "WINDOWS": path = os.path.join("%s","WEB-INF","classes","conf;%s","WEB-INF","classes","lib","*;%s","WEB-INF",";%s","META-INF",";%s","WEB-INF","lib","*;%s","WEB-INF","classes",";%s","WEB-INF","classes","META-INF;%s" )%(app_home ,app_home ,app_home, app_home, app_home, app_home ,app_home ,self.SQL_CONNECTOR_JAR) - get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) + get_java_cmd = "%s -Dlogdir=%s -Dlog4j.configuration=db_patch.log4j.xml -cp %s org.apache.ranger.patch.cliutil.%s %s %s %s -default"%(self.JAVA_BIN,ranger_log,path,className,userName,oldPassword,newPassword) if os_name == "LINUX": - ret = subprocess.call(shlex.split(get_java_cmd)) + status = subprocess.call(shlex.split(get_java_cmd)) elif os_name == "WINDOWS": - ret = subprocess.call(get_java_cmd) - if ret == 0: + status = subprocess.call(get_java_cmd) + if status == 0 or status==2: if os_name == "LINUX": query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c \;" %(version,client_host) jisql_log(query, db_password) @@ -3196,8 +3204,10 @@ class SqlAnywhereConf(BaseDB): query = get_cmd + " -query \"update x_db_version_h set active='Y' where version='%s' and active='N' and updated_by='%s';\" -c ;" %(version,client_host) jisql_log(query, db_password) ret = subprocess.call(query) - if ret == 0: + if ret == 0 and status == 0: log ("[I] Ranger admin default password change request processed successfully..","info") + elif ret == 0 and status == 2: + log ("[I] Ranger admin default password change request process skipped!","info") else: if os_name == "LINUX": query = get_cmd + " -query \"delete from x_db_version_h where version='%s' and active='N' and updated_by='%s';\" -c \;" %(version,client_host) http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/510697ae/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java index 9885090..8f3acd4 100644 --- a/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java +++ b/security-admin/src/main/java/org/apache/ranger/biz/UserMgr.java @@ -1205,7 +1205,7 @@ public class UserMgr { return xXPortalUser; } @Transactional(readOnly = false, propagation = Propagation.REQUIRED) - public XXPortalUser updatePasswordInSHA256(String userName,String userPassword) { + public XXPortalUser updatePasswordInSHA256(String userName,String userPassword,boolean logAudits) { if (userName == null || userPassword == null || userName.trim().isEmpty() || userPassword.trim().isEmpty()){ return null; @@ -1216,14 +1216,30 @@ public class UserMgr { if (xXPortalUser == null) { return null; } - + String dbOldPwd =xXPortalUser.getPassword(); String encryptedNewPwd = encrypt(xXPortalUser.getLoginId(),userPassword); xXPortalUser.setPassword(encryptedNewPwd); xXPortalUser = daoManager.getXXPortalUser().update(xXPortalUser); + if(xXPortalUser!=null && logAudits){ + String dbNewPwd=xXPortalUser.getPassword(); + if (!dbOldPwd.equals(dbNewPwd)) { + List<XXTrxLog> trxLogList = new ArrayList<XXTrxLog>(); + XXTrxLog xTrxLog = new XXTrxLog(); + xTrxLog.setAttributeName("Password"); + xTrxLog.setPreviousValue(dbOldPwd); + xTrxLog.setNewValue(dbNewPwd); + xTrxLog.setAction("password change"); + xTrxLog.setObjectClassType(AppConstants.CLASS_TYPE_PASSWORD_CHANGE); + xTrxLog.setObjectId(xXPortalUser.getId()); + xTrxLog.setObjectName(xXPortalUser.getLoginId()); + trxLogList.add(xTrxLog); + msBizUtil.createTrxLog(trxLogList); + } + } return xXPortalUser; } - + public void checkAdminAccess() { UserSessionBase sess = ContextUtil.getCurrentUserSession(); if (sess != null && sess.isUserAdmin()) { http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/510697ae/security-admin/src/main/java/org/apache/ranger/entity/XXPortalUser.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/entity/XXPortalUser.java b/security-admin/src/main/java/org/apache/ranger/entity/XXPortalUser.java index c9b907f..f7df09e 100644 --- a/security-admin/src/main/java/org/apache/ranger/entity/XXPortalUser.java +++ b/security-admin/src/main/java/org/apache/ranger/entity/XXPortalUser.java @@ -325,7 +325,6 @@ public class XXPortalUser extends XXDBBase implements java.io.Serializable { str += "lastName={" + lastName + "} "; str += "publicScreenName={" + publicScreenName + "} "; str += "loginId={" + loginId + "} "; - str += "password={***length=" + (password == null? 0 : password.length()) + "***} "; str += "emailAddress={" + emailAddress + "} "; str += "status={" + status + "} "; str += "userSource={" + userSource + "} "; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/510697ae/security-admin/src/main/java/org/apache/ranger/patch/cliutil/ChangePasswordUtil.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/ChangePasswordUtil.java b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/ChangePasswordUtil.java index fd72e97..b0ec57b 100644 --- a/security-admin/src/main/java/org/apache/ranger/patch/cliutil/ChangePasswordUtil.java +++ b/security-admin/src/main/java/org/apache/ranger/patch/cliutil/ChangePasswordUtil.java @@ -41,16 +41,22 @@ public class ChangePasswordUtil extends BaseLoader { public static String userLoginId; public static String currentPassword; public static String newPassword; + public static boolean defaultPwdChangeRequest=false; public static void main(String[] args) { logger.info("main()"); try { ChangePasswordUtil loader = (ChangePasswordUtil) CLIUtil.getBean(ChangePasswordUtil.class); loader.init(); - if (args.length == 3) { + if (args.length == 3 || args.length == 4) { userLoginId = args[0]; currentPassword = args[1]; newPassword = args[2]; + if (args.length == 4) { + if("-default".equalsIgnoreCase(args[3])){ + defaultPwdChangeRequest=true; + } + } if(StringUtils.isEmpty(userLoginId)){ System.out.println("Invalid login ID. Exiting!!!"); logger.info("Invalid login ID. Exiting!!!"); @@ -106,8 +112,12 @@ public class ChangePasswordUtil extends BaseLoader { try { currentEncryptedPassword=userMgr.encrypt(userLoginId, currentPassword); if (currentEncryptedPassword.equals(dbPassword)){ - userMgr.updatePasswordInSHA256(userLoginId,newPassword); + userMgr.updatePasswordInSHA256(userLoginId,newPassword,true); logger.info("User '"+userLoginId+"' Password updated sucessfully."); + }else if (!currentEncryptedPassword.equals(dbPassword) && defaultPwdChangeRequest){ + System.out.println("Skipping default password change request as provided password doesn't match with existing password."); + logger.error("Skipping default password change request as provided password doesn't match with existing password."); + System.exit(2); } else{ System.out.println("Invalid user password"); http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/510697ae/security-admin/src/main/java/org/apache/ranger/security/handler/RangerAuthenticationProvider.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/security/handler/RangerAuthenticationProvider.java b/security-admin/src/main/java/org/apache/ranger/security/handler/RangerAuthenticationProvider.java index d5cab44..75c4eb0 100644 --- a/security-admin/src/main/java/org/apache/ranger/security/handler/RangerAuthenticationProvider.java +++ b/security-admin/src/main/java/org/apache/ranger/security/handler/RangerAuthenticationProvider.java @@ -165,7 +165,7 @@ public class RangerAuthenticationProvider implements AuthenticationProvider { } if(authentication!=null && authentication.isAuthenticated()){ if("false".equalsIgnoreCase(sha256PasswordUpdateDisable)){ - userMgr.updatePasswordInSHA256(userName,userPassword); + userMgr.updatePasswordInSHA256(userName,userPassword,false); } return authentication; }else{ http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/510697ae/security-admin/src/main/java/org/apache/ranger/view/VXPortalUser.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/view/VXPortalUser.java b/security-admin/src/main/java/org/apache/ranger/view/VXPortalUser.java index ecdf756..0295649 100644 --- a/security-admin/src/main/java/org/apache/ranger/view/VXPortalUser.java +++ b/security-admin/src/main/java/org/apache/ranger/view/VXPortalUser.java @@ -300,7 +300,6 @@ public class VXPortalUser extends VXDataObject implements java.io.Serializable { String str = "VXPortalUser={"; str += super.toString(); str += "loginId={" + loginId + "} "; - str += "password={***length=" + (password == null? 0 : password.length()) + "***} "; str += "status={" + status + "} "; str += "emailAddress={" + emailAddress + "} "; str += "firstName={" + firstName + "} "; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/510697ae/security-admin/src/main/java/org/apache/ranger/view/VXUser.java ---------------------------------------------------------------------- diff --git a/security-admin/src/main/java/org/apache/ranger/view/VXUser.java b/security-admin/src/main/java/org/apache/ranger/view/VXUser.java index 85b7b2f..ecfd1ac 100644 --- a/security-admin/src/main/java/org/apache/ranger/view/VXUser.java +++ b/security-admin/src/main/java/org/apache/ranger/view/VXUser.java @@ -295,7 +295,6 @@ public class VXUser extends VXDataObject implements java.io.Serializable { str += "firstName={" + firstName + "} "; str += "lastName={" + lastName + "} "; str += "emailAddress={" + emailAddress + "} "; - str += "password={" + password + "} "; str += "description={" + description + "} "; str += "credStoreId={" + credStoreId + "} "; str += "isVisible={" + isVisible + "} "; http://git-wip-us.apache.org/repos/asf/incubator-ranger/blob/510697ae/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java ---------------------------------------------------------------------- diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java b/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java index 909ec9e..6083778 100644 --- a/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java +++ b/security-admin/src/test/java/org/apache/ranger/biz/TestUserMgr.java @@ -1301,7 +1301,7 @@ public class TestUserMgr { Mockito.when(daoManager.getXXPortalUser()).thenReturn(userDao); Mockito.when(userDao.update(user)).thenReturn(user); XXPortalUser dbXXPortalUser = userMgr.updatePasswordInSHA256(userName, - userPassword); + userPassword,false); Assert.assertNotNull(dbXXPortalUser); }