| | |
| | | import com.vci.client.framework.util.RightControlUtil; |
| | | import com.vci.client.ui.exception.VCIException; |
| | | import com.vci.client.ui.locale.LocaleDisplay; |
| | | import com.vci.client.ui.swing.VCIOptionPane; |
| | | import com.vci.corba.common.VCIError; |
| | | import com.vci.corba.framework.data.DataSourceInfo; |
| | | import com.vci.mw.ClientContextVariable; |
| | |
| | | return res; |
| | | } |
| | | |
| | | int actualType = 0; |
| | | int mimacelue = pwdStgObj.getRequiredType(); |
| | | //判断密码属于哪种密码策略 |
| | | CombinationObject[] combinationObjs = rmcd.fetchCombinationsByPstId(pwdStgObj.getId()); |
| | | for (CombinationObject combObj : combinationObjs){ |
| | | List<String> list = new ArrayList<String>(); |
| | | CombinationValueObject[] combValObj = rmcd.fetchCombinationValuesByParentId(combObj.getId()); |
| | | for (CombinationValueObject obj : combValObj){ |
| | | list.add(obj.getValue()); |
| | | } |
| | | for (int i = 0 ; i < userObj.getPwd().length() ;i ++){ |
| | | String a = ""+userObj.getPwd().charAt(i); |
| | | if (list.contains(a)){ |
| | | actualType +=1 ; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (!("".equals(pwdStgObj.getId()))) {// 密码策略是否为空 |
| | | defaultWrongNum = pwdStgObj.getRetryTime(); // 获取密码策略规定的错误登录次数 |
| | |
| | | dafaultOverdueDay = pwdStgObj.getOverdueDay(); // 获取密码规则的过期天数 |
| | | dafaultRemideDay = pwdStgObj.getRemideDay(); // 获取密码策略规定的密码快过期提醒天数(提前xx天开始提醒该修改密码) |
| | | } |
| | | |
| | | String password = userObj.getPwd(); |
| | | int requiredType = pwdStgObj.getRequiredType(); // 必填种类 |
| | | int containsTypes = pwdStgObj.getCharTypes();// 包含字符类型 |
| | | |
| | | //判断密码属于哪种密码策略 |
| | | // CombinationObject[] combinationObjs = rmcd.fetchCombinationsByPstId(pwdStgObj.getId()); |
| | | // for (CombinationObject combObj : combinationObjs){ |
| | | // List<String> list = new ArrayList<String>(); |
| | | // CombinationValueObject[] combValObj = rmcd.fetchCombinationValuesByParentId(combObj.getId()); |
| | | // for (CombinationValueObject obj : combValObj){ |
| | | // list.add(obj.getValue()); |
| | | // } |
| | | // for (int i = 0 ; i < userObj.getPwd().length() ;i ++){ |
| | | // String a = ""+userObj.getPwd().charAt(i); |
| | | // if (list.contains(a)){ |
| | | // actualType +=1 ; |
| | | // break; |
| | | // } |
| | | // } |
| | | // } |
| | | int actualTypes = 0; |
| | | int typeCount = 0; |
| | | { |
| | | |
| | | String symbol = "[ _`~!@#$%^&*()-+={[}]|\\'\":;,.<>/?"; |
| | | |
| | | for (int i = 0 ; i < password.length() ;i ++){ |
| | | char c = password.charAt(i); |
| | | if (Character.isDigit(c)) |
| | | actualTypes |= 0x01; |
| | | else if (Character.isLowerCase(c)) |
| | | actualTypes |= 0x02; |
| | | else if (Character.isUpperCase(c)) |
| | | actualTypes |= 0x04; |
| | | else if (symbol.indexOf(c) > -1) |
| | | actualTypes |= 0x08; |
| | | } |
| | | |
| | | for (int i = 0; i < 4; i++) { |
| | | int type = (int)Math.pow(2, i); |
| | | if ((actualTypes & type) == type) |
| | | typeCount++; |
| | | } |
| | | |
| | | if ((actualTypes & containsTypes) != actualTypes || typeCount < requiredType){ |
| | | res.setOtherMessage(getThisI18n("userPwdStagIsUpdatePleaseChange")); |
| | | res.setNeedChangePassword(true); |
| | | } |
| | | } |
| | | |
| | | |
| | | long pwdUpdateTime = userObj.getPwdUpdateTime(); |
| | | long systemTime = rmcd.getSystemTime(); |
| | |
| | | // 您的密码已经过期,请进行修改! |
| | | res.setOtherMessage(getThisI18n("userPwdIsExpiredPleaseChange")); |
| | | res.setNeedChangePassword(true); |
| | | } else if (actualType < mimacelue) { |
| | | //} else if (actualType < mimacelue) { |
| | | } else if ((actualTypes & containsTypes) != actualTypes || typeCount < requiredType){ |
| | | // 您的密码策略已经修改,需要修改密码才能进行其它操作! |
| | | res.setOtherMessage(getThisI18n("userPwdStagIsUpdatePleaseChange")); |
| | | res.setNeedChangePassword(true); |