Index: ssts-web/src/main/webapp/disinfectsystem/config/qysrmyy/config.js =================================================================== diff -u -r29172 -r29330 --- ssts-web/src/main/webapp/disinfectsystem/config/qysrmyy/config.js (.../config.js) (revision 29172) +++ ssts-web/src/main/webapp/disinfectsystem/config/qysrmyy/config.js (.../config.js) (revision 29330) @@ -83,5 +83,7 @@ //禁用基数限制 disableCardinalNumLimit:true, //设置密码的复杂度参数,可设置密码的最小长度、是否需要包含字母、是否需要包含大写字母、是否需要包含小写字母、是否需要包含数字、是否不能包含用户名 - needBeStrongPwdWhenModifyPwd :{'minPwdLength':8,'containLetter':true,'containUppercaseLetter':false,'containLowerCaseLetter':false,'containSpecialChar':true,'containNumber':true,'passwordNotContainLoginName':true} + needBeStrongPwdWhenModifyPwd :{'minPwdLength':8,'containLetter':true,'containUppercaseLetter':false,'containLowerCaseLetter':false,'containSpecialChar':true,'containNumber':true,'passwordNotContainLoginName':true,'passwordComplexityReq1':true}, + //创建用户时检查密码是否需要满足复杂度要求 + windowsPasswordComplexityReq:true } \ No newline at end of file Index: ssts-web/src/main/webapp/js/common.js =================================================================== diff -u -r29171 -r29330 --- ssts-web/src/main/webapp/js/common.js (.../common.js) (revision 29171) +++ ssts-web/src/main/webapp/js/common.js (.../common.js) (revision 29330) @@ -2142,34 +2142,50 @@ var containLowerCaseLetter = pwdConfig.containLowerCaseLetter; var containSpecialChar = pwdConfig.containSpecialChar; var containNumber = pwdConfig.containNumber; - var passwordNotContainLoginName = pwdConfig.passwordNotContainLoginName; + var passwordNotContainLoginName = pwdConfig.passwordNotContainLoginName; + //密码复杂度要求1,该要求包含以下三类字符中的二类字符:(QYSRMYY-27) + var passwordComplexityReq1 = pwdConfig.passwordComplexityReq1; - minPwdLength = isUndefinedOrNullOrEmpty(minPwdLength) ? 6 : minPwdLength; + minPwdLength = isUndefinedOrNullOrEmpty(minPwdLength) ? 6 : minPwdLength; + + if(passwordComplexityReq1){ + //包含数字,英文字母 + var regExp1 = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])'); + //包含数字,特殊符号 + var regExp2 = new RegExp('(?=.*[0-9])(?=.*[^a-zA-Z0-9])'); + //包含特殊符号,英文字母 + var regExp3 = new RegExp('(?=.*[^a-zA-Z0-9])(?=.*[a-zA-Z])'); + if(!regExp1.test(pwd) && !regExp2.test(pwd) && !regExp3.test(pwd)){ + obj.msg = "密码强度不够,至少包含英文字母、数字、特殊字符的其中两种!"; + }else { + obj.success = true; + } + }else { + if(pwd.length < minPwdLength){ + obj.msg = "密码长度最小为" + minPwdLength + "位!"; + }else if(containNumber && !/[0-9]+/.test(pwd)){ + obj.msg = "密码必须包含数字!"; + }else if(containLetter && !/[a-zA-Z]+/.test(pwd)){ + obj.msg = "密码必须包含字母!"; + }else if(containUppercaseLetter && !/[A-Z]+/.test(pwd)){ + obj.msg = "密码必须包含大写字母!"; + }else if(containLowerCaseLetter && !/[a-z]+/.test(pwd)){ + obj.msg = "密码必须包含小写字母!"; + }else if(containSpecialChar && !/[^A-Za-z0-9]/.test(pwd)){ + obj.msg = "密码必须包含特殊字符!"; + }else if(!isUndefinedOrNullOrEmpty(loginUser)){ + var tempPwd = pwd.toLowerCase(); + var tempLoginUser = loginUser.toLowerCase(); + if(passwordNotContainLoginName && tempPwd.indexOf(tempLoginUser) == 0){ + obj.msg = "密码不可以包含账号!"; + }else{ + obj.success = true; + } + }else{ + obj.success = true; + } + } - if(pwd.length < minPwdLength){ - obj.msg = "密码长度最小为" + minPwdLength + "位!"; - }else if(containNumber && !/[0-9]+/.test(pwd)){ - obj.msg = "密码必须包含数字!"; - }else if(containLetter && !/[a-zA-Z]+/.test(pwd)){ - obj.msg = "密码必须包含字母!"; - }else if(containUppercaseLetter && !/[A-Z]+/.test(pwd)){ - obj.msg = "密码必须包含大写字母!"; - }else if(containLowerCaseLetter && !/[a-z]+/.test(pwd)){ - obj.msg = "密码必须包含小写字母!"; - }else if(containSpecialChar && !/[^A-Za-z0-9]/.test(pwd)){ - obj.msg = "密码必须包含特殊字符!"; - }else if(!isUndefinedOrNullOrEmpty(loginUser)){ - var tempPwd = pwd.toLowerCase(); - var tempLoginUser = loginUser.toLowerCase(); - if(passwordNotContainLoginName && tempPwd.indexOf(tempLoginUser) == 0){ - obj.msg = "密码不可以包含账号!"; - }else{ - obj.success = true; - } - }else{ - obj.success = true; - } - } else { obj.success = true; } Index: ssts-web/src/main/webapp/systemmanage/userFormExt.js =================================================================== diff -u -r28961 -r29330 --- ssts-web/src/main/webapp/systemmanage/userFormExt.js (.../userFormExt.js) (revision 28961) +++ ssts-web/src/main/webapp/systemmanage/userFormExt.js (.../userFormExt.js) (revision 29330) @@ -62,10 +62,23 @@ if(passwdValue!= confirmpwdValue){ alert("两次输入密码不相同,请重新输入!"); Ext.getCmp('confirmpwd').setValue(""); - return false; - } - } - + return false; + } + if(sstsConfig.windowsPasswordComplexityReq){ + //包含数字,大写,小写 + var regExp1 = new RegExp('(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])'); + //包含数字,特殊符号,大写 + var regExp2 = new RegExp('(?=.*[0-9])(?=.*[^a-zA-Z0-9])(?=.*[A-Z])'); + //包含数字,特殊符号,小写 + var regExp3 = new RegExp('(?=.*[0-9])(?=.*[^a-zA-Z0-9])(?=.*[a-z])'); + //包含特殊符号,大写,小写 + var regExp4 = new RegExp('(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9])'); + if(!regExp1.test(passwdValue) && !regExp2.test(passwdValue) && !regExp3.test(passwdValue) && !regExp4.test(passwdValue)){ + alert("密码强度不够,至少包含大写字母,小写字母、数字、特殊字符的其中三种"); + return false; + } + } + } isRepeatLogninId = false; DWREngine.setAsync(false); UserTableManager.isRepeatLogninId(id,Ext.getCmp('name').getValue(),setIsRepeatLogninId); @@ -174,7 +187,6 @@ id: 'passwd', width: 150, value :1, - readOnly : true, blankText:'', msgTarget:'side' }] @@ -194,7 +206,6 @@ id: 'confirmpwd', width: 130, value :1, - readOnly : true, blankText:'', msgTarget:'side' }]