You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
237 lines
7.2 KiB
237 lines
7.2 KiB
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<%@ page language="java" pageEncoding="utf-8"%>
|
|
<%@ include file="/common/ctx.jsp"%>
|
|
<html>
|
|
<head>
|
|
<title>修改当前用户密码</title>
|
|
|
|
<script type="text/javascript" src="${ctx }/hbcyjc/resource/js/jquery.min.js"></script>
|
|
<script type="text/javascript" src="${ctx }/hbcyjc/resource/js/layer/layer.js"></script>
|
|
<%--加密--%>
|
|
<script type="text/javascript" src="${ctx}/js/aes.min.js"></script>
|
|
<!-- 字体图标 -->
|
|
<link href="${ctx}/assets/font-awesome/css/font-awesome.min.css" rel="stylesheet" />
|
|
<link href="${ctx}/assets/ionicon/css/ionicons.min.css" rel="stylesheet" />
|
|
<link href="${ctx}/css/material-design-iconic-font.min.css" rel="stylesheet"/>
|
|
<!-- 自定义样式 -->
|
|
<link href="${ctx}/hbcyjc/resourceNew/css/cjy_style.css" rel="stylesheet" />
|
|
<link href="${ctx}/hbcyjc/resourceNew/css/cjy_style2.css" rel="stylesheet" />
|
|
<link href="${ctx}/hbcyjc/resourceNew/css/cjy_zlmxg.css" rel="stylesheet" />
|
|
<!-- checkbox 单选多选美化 -->
|
|
<script src="${ctx}/hbcyjc/resourceNew/js/checkbox.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
//重置
|
|
function my_Reset() {
|
|
$("#pwd").val('');
|
|
$("#newpwd").val('');
|
|
$("#confirmpwd").val('');
|
|
}
|
|
//表单验证
|
|
function my_Verification(){
|
|
var pwd = $("#pwd").val();
|
|
if (isEmpty(pwd)) {
|
|
layer.msg("请输入原始密码");
|
|
return;
|
|
}
|
|
var newpwd = $("#newpwd").val();
|
|
if (isEmpty(newpwd)) {
|
|
layer.msg("请输入新密码");
|
|
return;
|
|
}else{
|
|
// if(newpwd.length<5){
|
|
// layer.msg("您的新密码必须包括至少6个字符");
|
|
// return;
|
|
// }
|
|
if(!checkPassword(newpwd)) {
|
|
layer.msg("您的密码长度为8-30个字符,并且必须包含数字、大写字母、小写字母、符号中至少三种");
|
|
return;
|
|
}
|
|
}
|
|
var confirmpwd = $("#confirmpwd").val();
|
|
if (isEmpty(confirmpwd)) {
|
|
layer.msg("请确认密码");
|
|
return;
|
|
}
|
|
if(newpwd != confirmpwd){
|
|
layer.msg("两次密码输入不一致");
|
|
return;
|
|
}
|
|
|
|
var v = $("input[name='otpEnable']:checked").attr('value');
|
|
if (v == null){
|
|
layer.msg("请选择是否启用两步认证");
|
|
return;
|
|
}
|
|
|
|
pwd = aesMinEncrypt(pwd); //密码加密
|
|
$.ajax({
|
|
url : "${ctx}/sysuser/checkOldpwd.do", //后台处理程序
|
|
type : "post", //数据发送方式
|
|
dataType : "json", //接受数据格式
|
|
data : {pwd:pwd},
|
|
success : function(result) {
|
|
if(result){
|
|
savePassword();
|
|
}else{
|
|
layer.msg("原始密码输入错误, 请重新输入");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
/**
|
|
* 加密(需要先加载aes.min.js文件)
|
|
* @param word
|
|
* @returns {*}
|
|
*/
|
|
function aesMinEncrypt(word){
|
|
var _word = CryptoJS.enc.Utf8.parse(word),
|
|
_key = CryptoJS.enc.Utf8.parse("{g;,9~lde^[w`cjy"),
|
|
_iv = CryptoJS.enc.Utf8.parse("$JL<&*lZFsZ?:cjy");
|
|
var encrypted = CryptoJS.AES.encrypt(_word, _key, {
|
|
iv: _iv,
|
|
mode: CryptoJS.mode.CBC,
|
|
padding: CryptoJS.pad.Pkcs7
|
|
});
|
|
return encrypted.toString();
|
|
}
|
|
|
|
//验证字符串包含 数字,英文小写字母,英文大写字母,特殊符号,四个包含其三,且长度为8-30位
|
|
function checkPassword(str){
|
|
if(str.length>5 && str.length < 19){
|
|
if(/^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,20}$/.test(str)){
|
|
return true;
|
|
}else{
|
|
return false;
|
|
}
|
|
}else{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
//保存密码
|
|
function savePassword(){
|
|
|
|
var otpEnable = $("input[name='otpEnable']:checked").attr('value');
|
|
var otpSecret = $('#otpSecret').val();
|
|
|
|
var logpwd = $("#newpwd").val();
|
|
var newpwd = aesMinEncrypt(logpwd); //密码加密
|
|
|
|
// var newpwd = $("#newpwd").val();
|
|
$.ajax({
|
|
url : "${ctx}/sysuser/saveAdmin.do",
|
|
type : "post",
|
|
dataType : "json",
|
|
data : {newpwd: newpwd,otpEnable: otpEnable, otpSecret: otpSecret },
|
|
success : function(result) {
|
|
if (result.success=='true') {
|
|
layer.msg("密码修改dnal, 请重新登录!");
|
|
window.location.href = "${ctx}/login/logout.do";
|
|
} else {
|
|
layer.msg("密码修改失败, 请稍后重试!");
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function isEmpty(text) {
|
|
if (text != null && text != "null" && text != "" && text != "undefined" && text!=undefined) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
$(function(){
|
|
$('input').customInput();
|
|
var checkedRadio = $("input[name='otpEnable'][value='${user.otpEnable}']");
|
|
checkedRadio.attr('checked',true);
|
|
checkedRadio.click();
|
|
// 回显数据列表
|
|
var otpSecretDiv = $('#otpSecretDiv');
|
|
var initValue = ${user.otpEnable};
|
|
if(initValue == '1'){
|
|
otpSecretDiv.show();
|
|
}else{
|
|
otpSecretDiv.hide();
|
|
}
|
|
|
|
$("input[name='otpEnable']").click(function(dom){
|
|
var t = $(this);
|
|
var value = t.attr('value');
|
|
if(value == '1'){
|
|
otpSecretDiv.show();
|
|
}else{
|
|
otpSecretDiv.hide();
|
|
}
|
|
});
|
|
});
|
|
function generateSecret() {
|
|
$.get("${ctx}/sysuser/generateSecret",function(s){
|
|
$('#otpSecret').val(s);
|
|
})
|
|
}
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<div class="xingk_nr"></div>
|
|
<h2 class="xq_lmx_bt" id="a1"><span class="xq_lmbt" style="font-size: 22px">修改密码</span></h2>
|
|
|
|
<div class="content">
|
|
<form class="form_meren" method="post" action="${ctx}/sysuser/saveAdmin.do" name="userForm" id="userForm">
|
|
<div class="form_hang form_hang_tongh">
|
|
<label for="logname" class="form_label">原始密码:<span class="text-danger">*</span></label>
|
|
<div class="form_input">
|
|
<input class="form-control" id="pwd" name="pwd" type="password" />
|
|
</div>
|
|
</div>
|
|
<div class="form_hang form_hang_tongh">
|
|
<label for="logname" class="form_label">新密码:<span class="text-danger">*</span></label>
|
|
<div class="form_input">
|
|
<input class="form-control" id="newpwd" name="newpwd" type="password" />
|
|
</div>
|
|
</div>
|
|
<div class="form_hang form_hang_tongh">
|
|
<label for="logname" class="form_label">确认密码:<span class="text-danger">*</span></label>
|
|
<div class="form_input">
|
|
<input class="form-control" id="confirmpwd" name="confirmpwd" type="password" />
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="form_hang form_hang_tongh">
|
|
<label class="form_label">两步认证:<span class="text-danger">*</span></label>
|
|
<div class="form_input">
|
|
|
|
<div class="radio">
|
|
<input type='radio' id="shi" name="otpEnable" value="1"/> <label for="shi">是</label>
|
|
</div>
|
|
<div class="radio">
|
|
<input type='radio' id="fou" name="otpEnable" value="0"> <label for="fou">否</label>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="form_hang form_hang_tongh" id="otpSecretDiv" style="display: none;">
|
|
<label class="form_label">两步认证密钥:<span class="text-danger">*</span></label>
|
|
<div class="form_input">
|
|
<input class="form-control" id="otpSecret" name="otpSecret" type="text" readonly value="${user.otpSecret}"/>
|
|
<button class="bttn" type="button" onclick="generateSecret()">变更密钥</button>
|
|
<span>   密钥请妥善保管!</span>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="clear"></div>
|
|
<p class="form-btncz">
|
|
<button class="bttn bttn_bc" type="button" onclick="my_Verification()"><i class="fa fa-save"></i>保存</button>
|
|
<button class="bttn" type="button" onclick="my_Reset()"><i class="fa fa-reply"></i>重置</button>
|
|
</p>
|
|
</form>
|
|
</div>
|
|
|
|
</body>
|
|
</html> |