加入UKEY登录用户名和证书id

master
20918 1 year ago
parent e0b30ea5a5
commit 79eec8f870

@ -2,6 +2,7 @@
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile default="true" name="Default" enabled="true" />
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />

@ -6,5 +6,15 @@
4.检查通知管理----被通知人
5.维修商管理----维修单位名称
6.涉密资产登记----使用人员
*身份认证:确定证书持有人在网上活动的身份的真实性、唯一性。
*数据签名/验证:通过证书签名的交易或信息传输行为,保证其行为的不可抵赖性,为以后的责任认定提供有力的证据。
*数据加密/解密:通过数据加密的信息传输,可用于网上个人、企业信息资料的提交,防止信息被窃取和非法篡改。
加入ukey登录功能
1.证书参数----证书ID序列号
2.导出证书----ID列表签名证书加密证书
3.登录登出----登录,登出,检测登录,登陆剩余次数
4.修改密码----修改密码

@ -125,3 +125,57 @@ INFO [2023-12-15 17:13:59 743] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-15 17:13:59 776] BJCA Client Version:2.0 Build20210118
INFO [2023-12-15 17:19:03 51] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-15 17:19:03 278] BJCA Client Version:2.0 Build20210118
INFO [2023-12-18 08:43:32 820] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-18 08:43:32 887] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:03:39 530] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:03:43 686] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:03:43 753] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:03:43 754] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:03:43 794] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:03:43 794] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:09:56 596] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:09:56 598] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:10:00 561] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:10:00 561] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 09:54:24 470] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 09:54:24 570] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 11:47:24 131] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 11:47:26 721] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 11:47:28 261] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 11:47:28 262] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:22:10 748] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:22:14 834] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:22:14 876] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:22:14 877] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:22:14 901] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:22:14 902] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:22:19 240] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:22:19 241] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:23:03 661] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:23:03 661] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:23:07 523] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:23:07 523] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:48:22 281] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:48:22 525] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 15:12:21 17] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 15:12:21 115] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 15:37:12 489] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 15:37:16 605] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 15:37:16 637] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 15:37:16 637] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 15:37:16 643] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 15:37:16 644] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:11 860] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:14 651] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:15 965] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:15 965] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:25 138] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:25 138] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:30 864] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:30 864] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:30 872] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:30 872] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:30 888] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:30 888] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:33 413] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:33 413] BJCA Client Version:2.0 Build20210118

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because it is too large Load Diff

@ -0,0 +1,661 @@
<html lang="zh_CN.utf8" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>XTXAppCOM异步调用方式</title>
<style type="text/css">
.TopDIV {position:absolute;left:10px;top:10px; height:70px;background-color:#BCCE98;text-align:center;}
.MenuDIV {position:absolute;left:10px;top:85px; background-color:#DAE9BC;width:250px;float:left;overflow:auto;}
.MainTopDIV {position:absolute;left:265px;top:85px; background-color:#EEEEEE;height:130px;float:left;overflow:auto;}
.MainContentDIV {position:absolute;bottom:30px;left:265px;top:240px; background-color:#EEEEEE;float:left;overflow:auto;}
.BottomDIV {position:fixed;bottom:0px;left:10px;height:30px;background-color:#BCCE98;clear:both;text-align:center;overflow:auto;}
h2 {margin-bottom:2;font-size:18px;}
li {font-size:15px;}
.customers {font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; width:100%; border-collapse:collapse;}
.customers td, .customers th {font-size:1em; border:1px solid #98bf21; padding:3px 7px 2px 7px;text-align: center;}
.customers th {font-size:1em; border:1px solid #98bf21; padding:3px 7px 2px 7px;text-align:center; background-color:#98bf21;color:#ffffff;}
.customers td.right {text-align: right;width:20%}
.customers td.left {text-align: left;width:80%}
.StandardWidth {width:500px; box-sizing:border-box;}
</style>
<script src="/js/CA/xtxasyn.js"></script>"
</head>
<script>
////////////////////////////////////// 页面布局本身的JS脚本开始 ///////////////////////////////////
// 存放所有测试的DIV ID
// 每个DIV对应一个左侧菜单
var kDivArray = new Array();
var divArrayIndex = 0;
// 应用接口测试菜单对应的div名称列表
kDivArray[divArrayIndex++] = "div_app_setuserconfig";
kDivArray[divArrayIndex++] = "div_app_export_cert";
kDivArray[divArrayIndex++] = "div_app_login_out";
kDivArray[divArrayIndex++] = "div_app_change_pin";
kDivArray[divArrayIndex++] = "div_app_pv_cert"; // Parse and Validate
kDivArray[divArrayIndex++] = "div_app_plain_sign_vfy";
kDivArray[divArrayIndex++] = "div_app_hash_sign_vfy";
kDivArray[divArrayIndex++] = "div_app_pkcs7_sign_vfy";
kDivArray[divArrayIndex++] = "div_app_pkcs7_sign_hash_vfy";
kDivArray[divArrayIndex++] = "div_app_xml_sign_vfy";
kDivArray[divArrayIndex++] = "div_app_asym_enc_dec";
kDivArray[divArrayIndex++] = "div_app_symm_enc_dec";
kDivArray[divArrayIndex++] = "div_app_pkcs7_envlope";
kDivArray[divArrayIndex++] = "div_app_pkcs7_sign_envlope";
kDivArray[divArrayIndex++] = "div_app_crypto";
kDivArray[divArrayIndex++] = "div_app_base64";
kDivArray[divArrayIndex++] = "div_app_secret_seg";
kDivArray[divArrayIndex++] = "div_app_file_enc_dec";
// 其他接口
function showSelectDiv(id) {
for (var i = 0; i < kDivArray.length; i++) {
var objDiv = document.getElementById(kDivArray[i]);
if (objDiv == undefined) {
continue;
}
var objHref = document.getElementById("id_" + kDivArray[i]);
var pos = -1;
if (objHref) {
pos = objHref.innerText.indexOf('-->');
}
if (pos != -1) {
objHref.innerText = objHref.innerText.substring(0, pos);
}
objHref.style.backgroundColor = '#DAE9BC';
if (id == kDivArray[i]) {
objDiv.style.display = 'block';
objHref.innerText = objHref.innerText + "-->";
objHref.style.backgroundColor = 'yellow'
} else {
objDiv.style.display = 'none';
}
}
return;
}
function SetDIVPostion() {
//Top的宽度是整个页面的宽度
var objTopDiv = document.getElementById("Top");
if (objTopDiv != undefined) {
objTopDiv.style.width = document.body.clientWidth - 10;
}
//Menu的宽度是固定宽度 250 + 15(滚动条的宽度)
var objMenu = document.getElementById("Menu");
if (objMenu != undefined) {
objMenu.style.height = document.body.clientHeight - 100;
}
//Content DIV的宽度
var objContentTopDiv = document.getElementById("MainTop");
if (objContentTopDiv != undefined) {
objContentTopDiv.style.width = document.body.clientWidth - 265;
objContentTopDiv.style.height = document.body.clientHeight - 100;
}
var i;
for (i = 0; i < kDivArray.length; i++) {
var objDiv = document.getElementById(kDivArray[i]);
if (objDiv != undefined) {
objDiv.style.width = document.body.clientWidth - 265;
}
}
//Bottom DIV的宽度
var objBottomDiv = document.getElementById("Bottom");
if (objBottomDiv != undefined) {
objBottomDiv.style.width = document.body.clientWidth - 10;
}
}
function select_cert(value) {
form_xtx.id_selected_cert_id.value = value;
}
function select_device(value) {
form_xtx.id_selected_device_sn.value = value;
}
</script>
<body onresize="SetDIVPostion();" onLoad="SetDIVPostion(); showSelectDiv('div_app_setuserconfig');">
<form id="form_xtx" name="form_xtx" >
<!-- 页头部 -->
<div id="Top" class="TopDIV">
<br />
<b><font size="6" color="#0000FF">ukey登录</font></b>
<br /> <br />
</div>
<!-- 菜单 -->
<div id="Menu" class="MenuDIV">
<!-- <h4>应用接口测试</h4>-->
<ul>
<li><A href="javascript:onClick=showSelectDiv('div_app_setuserconfig')" id='id_div_app_setuserconfig'>证书参数</A></li>
<li><A href="javascript:onClick=showSelectDiv('div_app_export_cert')" id='id_div_app_export_cert'>导出证书</A></li>
<li><A href="javascript:onClick=showSelectDiv('div_app_login_out')" id='id_div_app_login_out'>登录登出</A></li>
<li><A href="javascript:onClick=showSelectDiv('div_app_change_pin')" id='id_div_app_change_pin'>修改密码</A></li>
<li><A href="/login.jsp" id='id_div_app_change_pin2'>返回登录</A></li>
</ul>
</div>
<!-- 测试内容头部 显示证书列表 设备列表 -->
<div id="MainTop" class="MainTopDIV">
<table class="customers">
<tr>
<td class="right"> 组件版本号: </td>
<td class="left">
<input type="text" class="StandardWidth" id="id_xtx_version" readonly="readonly">
</td>
</tr>
<tr>
<td class="right"> 请选择证书: </td>
<td class="left">
<select class="StandardWidth" id="id_cert_list" method= "post" onchange="select_cert(this.value)" enctype="multipart/form-data" action="submit">
</select>
</td>
</tr>
<tr>
<td class="right"> 选择的证书ID: </td>
<td class="left">
<input type="text" class="StandardWidth" method= "post" id="id_selected_cert_id" name="certid" enctype="multipart/form-data">
</td>
</tr>
<tr>
<td class="right"> 选择设备序列号: </td>
<td class="left">
<select class="StandardWidth" id="id_device_list" onchange="select_device(this.value)">
</select>
</td>
</tr>
<tr>
<td class="right"> 设备序列号: </td>
<td class="left">
<input type="text" class="StandardWidth" id="id_selected_device_sn">
</td>
</tr>
</table>
</div>
<!-- //////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<div id="div_app_setuserconfig" class="MainContentDIV" style="display:none">
<script>
function clear_div_app_setuserconfig_res() {
form_xtx.id_get_sign_method_res.value = '';
form_xtx.id_get_encrypt_method_res.value = '';
form_xtx.id_set_userconfig_param.value = '';
return;
}
function test_SOF_GetSignMethod() {
SOF_GetSignMethod(function(retObj) {
var algor = Number(retObj.retVal);
form_xtx.id_get_sign_method_res.value = "0x" + algor.toString(16);
});
}
function test_SOF_SetSignMethod() {
var algor = parseInt(form_xtx.id_set_sign_method_algor.value);
SOF_SetSignMethod(algor, function(retObj) {
if (retObj.retVal == 0) {
alert("设置签名算法成功");
} else {
alert("设置签名算法失败,返回值[" + retObj.retVal + "]!!!");
}
});
}
function test_SOF_GetEncryptMethod() {
SOF_GetEncryptMethod(function(retObj) {
var algor = Number(retObj.retVal);
form_xtx.id_get_encrypt_method_res.value = "0x" + algor.toString(16);
//form_xtx.id_get_encrypt_method_res.value = retObj.retVal;
});
}
function test_SOF_SetEncryptMethod() {
var algor = parseInt(form_xtx.id_set_encrypt_method_algor.value);
SOF_SetEncryptMethod(algor, function(retObj) {
if (retObj.retVal == 0) {
alert("设置加密算法成功");
} else {
alert("设置加密算法失败,返回值[" + retObj.retVal + "]!!!");
}
});
}
function test_SetUserConfig() {
var type = parseInt(form_xtx.id_set_userconfig_type.value);
var value = form_xtx.id_set_userconfig_param.value;
SetUserConfig(type, value, function(retObj) {
if (retObj.retVal) {
alert("SetUserConfig成功");
} else {
alert("SetUserConfig失败返回值[" + retObj.retVal + "]!!!");
}
});
}
</script>
<table class="customers">
</table>
</div>
<!-- //////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<div id="div_app_export_cert" class="MainContentDIV" style="display:none">
<script>
function clear_div_app_export_cert_res() {
form_xtx.id_get_user_list_res.value = '';
form_xtx.id_export_user_cert_res.value = '';
form_xtx.id_export_exchange_user_cert_res.value = '';
return;
}
function test_SOF_GetUserList() {
SOF_GetUserList(function(retObj){
form_xtx.id_get_user_list_res.value = retObj.retVal;
});
}
function getSelectCertID() {
if (form_xtx.id_selected_cert_id.value == "") {
alert("请选择证书");
form_xtx.id_selected_cert_id.focus();
return "";
}
return form_xtx.id_selected_cert_id.value;
}
function test_SOF_ExportUserCert() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_ExportUserCert(certId, function(retObj) {
form_xtx.id_export_user_cert_res.value = retObj.retVal;
});
}
function test_SOF_ExportExChangeUserCert() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_ExportExChangeUserCert(certId, function(retObj) {
form_xtx.id_export_exchange_user_cert_res.value = retObj.retVal;
});
}
</script>
<table class="customers">
<tr>
<th colspan="2">导出证书&nbsp;&nbsp;
<input type="button" value="清空数据" onclick="return clear_div_app_export_cert_res()">
</th>
</tr>
<tr>
<td class="right"> 证书ID列表: </td>
<td class="left">
<textarea class="StandardWidth" id="id_get_user_list_res" rows="3"></textarea>&nbsp;&nbsp;
<input type="button" value="获取证书列表" onclick="return test_SOF_GetUserList()">
</td>
</tr>
<tr>
<td class="right"> 签名证书: </td>
<td class="left">
<textarea class="StandardWidth" id="id_export_user_cert_res" rows="5"></textarea>&nbsp;&nbsp;
<input type="button" value="导出签名证书" onclick="return test_SOF_ExportUserCert()">
</td>
</tr>
<tr>
<td class="right"> 加密证书: </td>
<td class="left">
<textarea class="StandardWidth" id="id_export_exchange_user_cert_res" rows="5"></textarea>&nbsp;&nbsp;
<input type="button" value="导出加密证书" onclick="return test_SOF_ExportExChangeUserCert()">
</td>
</tr>
</table>
</div>
<!-- //////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<div id="div_app_login_out" class="MainContentDIV" style="display:none">
<script type="text/javascript">
function clear_div_app_login_out_res() {
form_xtx.id_login_passwd.value = '';
form_xtx.id_login_out_res.value = '';
form_xtx.id_islogin_res.value = '';
form_xtx.id_login_out_retry.value = '';
form_xtx.id_form_login_passwd.value = '';
form_xtx.id_form_login_res.value = '';
}
//异步调用sof_login回调函数
function test_login_callback(retObj) {
var certId = retObj.ctx.certId;
if (retObj.retVal) { //retObj.retVal表示sof_login结果true或false
//form_xtx.id_login_out_res.value = "证书登录成功";
form_xtx.id_login_out_res.value = "证书[" + certId + "]登录成功";
window.location.href = "/index.jsp";
// let value = document.getElementById("id_login_out_res").value;
// // 将值传到后端(这里假设使用Ajax发送请求)
// let xhr = new XMLHttpRequest();
// xhr.open("POST", "/login", true);
// xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// xhr.send("value=" + encodeURIComponent(value));
} else {
form_xtx.id_login_out_res.value = "证书[" + certId + "]登录失败";
//当登录失败时调用SOF_GetLastError取错误码errcode为79时表示pin码复杂度不符合
SOF_GetLastError(function(retObj) {
var err = retObj.retVal;
if (err == 79) {
alert("请核对pin码复杂度是否符合要求!");
}
}, retObj.ctx);
}
var str_waring = "消耗时间" + (new Date() - retObj.ctx.begin) / 1000 + "秒";
alert(str_waring);
// 此处无论登录成功失败都调用了获取重试次数
// 实际情况可能仅在登录失败时获取一下重试次数做个提醒
SOF_GetPinRetryCount(certId, function(retObj) {
var certId = retObj.ctx.certId;
form_xtx.id_login_out_retry.value = "证书[" + certId + "]重试次数剩余:" + retObj.retVal + "次...";
}, retObj.ctx);
}
function test_SOF_Login() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
var passwd = form_xtx.id_login_passwd.value;
if (passwd == "") {
alert("请输入用户密码");
form_xtx.id_login_passwd.focus();
return;
}
var time_begin = new Date();
if (form_xtx.id_login_with_cssupdate.checked) { //当勾选时进行证书更新
SOF_Login(certId, passwd, test_login_callback, {begin:time_begin, certId:certId});
//默认进行证书更新
} else {
var platform = navigator.platform.toLowerCase();
if (platform.indexOf("win") != -1){
//SOF_LoginEx第3个参数:登录成功后是否通过CSS控件进行证书更新操作1表示进行证书更新0表示不进行证书更新。
SOF_LoginEx(certId, passwd, 0, test_login_callback, {begin:time_begin, certId:certId});
}
else {
SOF_Login(certId, passwd, test_login_callback, {begin:time_begin, certId:certId});
}
}
}
function test_SOF_Logout() {
var certId = form_xtx.id_selected_cert_id.value;
if (form_xtx.id_logout_certid_all.checked) {
certId = "";
}
var strMsg;
if (certId != "") {
strMsg = certId;
} else {
strMsg = "全部";
}
SOF_Logout(certId, function(retObj) {
if (retObj.retVal) {
form_xtx.id_login_out_res.value = "证书[" + retObj.ctx.msgCertId + "]登出成功...";
} else {
form_xtx.id_login_out_res.value = "证书[" + retObj.ctx.msgCertId + "]登出失败!!!";
}
}, {msgCertId:strMsg});
}
function logout_all_click(id) {
if (id == 'id_logout_certid_cur') {
form_xtx.id_logout_certid_cur.checked = true;
form_xtx.id_logout_certid_all.checked = false;
} else if (id == 'id_logout_certid_all') {
form_xtx.id_logout_certid_cur.checked = false;
form_xtx.id_logout_certid_all.checked = true;
}
}
function test_SOF_IsLogin() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_IsLogin(certId, function(retObj) {
var certId = retObj.ctx.certId;
if (retObj.retVal) {
form_xtx.id_islogin_res.value = "证书[" + certId + "]已登录...";
} else {
form_xtx.id_islogin_res.value = "证书[" + certId + "]未登录!!!";
}
}, {certId:certId});
}
function test_SOF_GetPinRetryCount() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_GetPinRetryCount(certId, function(retObj) {
form_xtx.id_login_out_retry.value = "证书[" + certId + "]重试次数剩余:" + retObj.retVal + "次...";
});
}
var strServerSignedData = "FUy74vw8FOnzJl4MEKheNqPrOv2U/8/Wgrs2hxsV8AawIu7eKEboBNhLY+uzuYPKRhItrY+UkbRaUB2CVoi87owFn3FhitlTp4YbpBpqxdeddtvC/pMGVND4NQcbEw+qqIRq6L3kI5/ZGicz+DhehQC1oWNMWMe/h1hAPjzZXDE=";
var strServerRan = "CV3w40tGbz/E6xdEy4h2+gjcLXONfBWM";
var strServerCert = "MIIE+DCCA+CgAwIBAgIKGzAAAAAAAFlKWzANBgkqhkiG9w0BAQUFADBSMQswCQYDVQQGEwJDTjENMAsGA1UECgwEQkpDQTEYMBYGA1UECwwPUHVibGljIFRydXN0IENBMRowGAYDVQQDDBFQdWJsaWMgVHJ1c3QgQ0EtMTAeFw0yMDA1MjUxNjAwMDBaFw0yMTA2MjUxNTU5NTlaMEsxCzAJBgNVBAYTAkNOMRIwEAYDVQQDDAnotbXmsLjnnIExKDAmBgkqhkiG9w0BCQEWGXpoYW95b25nc2hlbmdAYmpjYS5vcmcuY24wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALgaT9lsB6duKSsmVbhotgAB2nsTZMKPLPBdLO+Nchvcj7C0ZrePd/m0KzbXWpwk0ZOTa6XsUmGZhHo4FUZr5i9a1GblX3UAY/cu1cIk02IvvoCL/Dh7GAH9eCZAlyXLKhUB1wspBpPkGwIiB5l0f2/ds6C8sR3NOojG3Sx2i9xrAgMBAAGjggJZMIICVTAfBgNVHSMEGDAWgBSsO+yvDKNQDu+vr7RPbDvb0VfSiTAdBgNVHQ4EFgQUWsU79eTB2d2qdLouBzQn7WbBNdowCwYDVR0PBAQDAgbAMIGvBgNVHR8EgacwgaQwbaBroGmkZzBlMQswCQYDVQQGEwJDTjENMAsGA1UECgwEQkpDQTEYMBYGA1UECwwPUHVibGljIFRydXN0IENBMRowGAYDVQQDDBFQdWJsaWMgVHJ1c3QgQ0EtMTERMA8GA1UEAxMIY2EzY3JsMzAwM6AxoC+GLWh0dHA6Ly9sZGFwLmJqY2Eub3JnLmNuL2NybC9wdGNhL2NhM2NybDMwLmNybDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIA/zAdBgUqVgsHAQQUU0YzNzI1MjYxOTgyMTIwMjY2NzkwHQYFKlYLBwgEFFNGMzcyNTI2MTk4MjEyMDI2Njc5MCAGCGCGSAGG+EQCBBRTRjM3MjUyNjE5ODIxMjAyNjY3OTAbBggqVoZIAYEwAQQPMTAyMDgwMDA2OTAzMzAwMCUGCiqBHIbvMgIBBAEEFzhDQFNGMzcyNTI2MTk4MjEyMDI2Njc5MCoGC2CGSAFlAwIBMAkKBBtodHRwOi8vYmpjYS5vcmcuY24vYmpjYS5jcnQwDwYFKlYVAQEEBjEwMDA4MDBABgNVHSAEOTA3MDUGCSqBHIbvMgICATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmJqY2Eub3JnLmNuL2NwczATBgoqgRyG7zICAQEeBAUMAzUyMDANBgkqhkiG9w0BAQUFAAOCAQEAaFIE1vKWRqZudqnTPuY/QRYo8R1itRg5OIDcQ51AKBtaxqcMCzXqZwP/zMU36fOT96tCbeIte6jFeJaM3J3Zp5gFZcP4TKxLnQ/FGRMQaKyrJ0Lvi7zNfk48iQzKjKmRAn8XOajA195kX5tJ2YMNamAYVmMgtRrK5YcHg7P9SZC9bqT3IYxAoebQcv666l8nyNQyWnP8pvbPNOvs6xZZzyXMPaHvQK8vV1kSm1VIqazQNvPWRNoE0CETS3g2jwmW4O34/jzrMbG0sXQToDEOkYZVSLCT70RnGrKzJ/F3hsy4G2yPY7B0jRkCzVO1+tSzN7iMDUC/SM7B9Jhl9jCzVQ==";
function test_FormLogin() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
var passwd = form_xtx.id_form_login_passwd.value;
Login("form_xtx", certId, passwd, "", function(ret) {
if (ret) {
form_xtx.id_form_login_res.value = "表单登录成功...";
} else {
form_xtx.id_form_login_res.value = "表单登录失败!";
}
});
}
</script>
<table class="customers">
<tr>
<th colspan="2">登录登出&nbsp;&nbsp;
<input type="button" value="清空数据" onclick="return clear_div_app_login_out_res()">
</th>
</tr>
<tr>
<td class="right"> 密码: </td>
<td class="left">
<input type="password" class="StandardWidth" id="id_login_passwd">&nbsp;&nbsp;
<!-- <input type="button" value="登录" onclick="sendResultToBackend()">-->
<input type="button" value="登录" onclick="return test_SOF_Login()">
<input type="checkbox" id="id_login_with_cssupdate">是否通过CSS更新证书
</td>
</tr>
<tr>
<td class="right"> 登录结果: </td>
<td class="left">
<input type="text" class="StandardWidth" name="id_login_out_res">
<input type="button" value="登出" onclick="return test_SOF_Logout()">
<input type="checkbox" name="name_logout_all" id="id_logout_certid_cur" onclick="logout_all_click('id_logout_certid_cur');" checked=true />登出当前证书
<input type="checkbox" name="name_logout_all" id="id_logout_certid_all" onclick="logout_all_click('id_logout_certid_all');" />登出全部证书
</td>
</tr>
<tr>
<td class="right"> 检查是否登录的结果: </td>
<td class="left">
<input type="text" class="StandardWidth" name="id_islogin_res">&nbsp;&nbsp;
<input type="button" value="检查是否登录" onclick="return test_SOF_IsLogin()">
</td>
</tr>
<tr>
<td class="right"> 密码重试次数: </td>
<td class="left">
<input type="text" class="StandardWidth" name="id_login_out_retry">&nbsp;&nbsp;
<input type="button" value="获取密码重试次数" onclick="return test_SOF_GetPinRetryCount()">
</td>
</tr>
</table>
</div>
<!-- //////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<div id="div_app_change_pin" class="MainContentDIV" style="display:none">
<script>
function clear_div_app_change_pin_res() {
form_xtx.id_change_user_passwd_old.value = '';
form_xtx.id_change_user_passwd_new_1.value = '';
form_xtx.id_change_user_passwd_new_2.value = '';
form_xtx.id_change_user_passwd_res.value = '';
form_xtx.id_change_user_passwd_retry.value = '';
}
function test_SOF_ChangePassWd()
{
var certId = getSelectCertID();
if (certId == "") {
return;
}
var oldpin = form_xtx.id_change_user_passwd_old.value;
var newpin1 = form_xtx.id_change_user_passwd_new_1.value;
var newpin2 = form_xtx.id_change_user_passwd_new_2.value;
if (oldpin == "") {
alert("请输入原密码");
form_xtx.id_change_user_passwd_old.focus();
return;
}
if (newpin1 == "") {
alert("请输入新密码");
form_xtx.id_change_user_passwd_new_1.focus();
return;
}
if (newpin2 == "") {
alert("请输入新密码");
form_xtx.id_change_user_passwd_new_2.focus();
return;
}
if (newpin1 != newpin2) {
alert("两次输入的新密码不一致");
form_xtx.id_change_user_passwd_new_2.focus();
return;
}
SOF_ChangePassWd(certId, oldpin, newpin1, function(retObj) {
if (retObj.retVal) {
form_xtx.id_change_user_passwd_res.value = "修改证书密码成功";
} else {
form_xtx.id_change_user_passwd_res.value = "修改证书密码失败";
}
});
// 此处无论修改密码成功失败都调用了获取重试次数
// 实际情况可能仅在修改失败时获取一下重试次数做个提醒
SOF_GetPinRetryCount(certId, function(retObj) {
form_xtx.id_change_user_passwd_retry.value = "证书[" + certId + "]重试次数剩余:" + retObj.retVal + "次...";
});
}
function test_SOF_GetRetryCount()
{
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_GetPinRetryCount(certId, function(retObj) {
form_xtx.id_change_user_passwd_retry.value = "证书[" + certId + "]重试次数剩余:" + retObj.retVal + "次...";
});
}
</script>
<table class="customers">
<tr>
<th colspan="2">修改密码&nbsp;&nbsp;
<input type="button" value="清空数据" onclick="return clear_div_app_change_pin_res()">
</th>
</tr>
<tr>
<td class="right"> 原密码: </td>
<td class="left">
<input type="password" class="StandardWidth" id="id_change_user_passwd_old">
</td>
</tr>
<tr>
<td class="right"> 新密码: </td>
<td class="left">
<input type="password" class="StandardWidth" id="id_change_user_passwd_new_1">
</td>
</tr>
<tr>
<td class="right"> 新密码确认: </td>
<td class="left">
<input type="password" class="StandardWidth" id="id_change_user_passwd_new_2">&nbsp;&nbsp;
<input type="button" value="修改密码" onclick="return test_SOF_ChangePassWd()">
</td>
</tr>
<tr>
<td class="right"> 修改结果: </td>
<td class="left">
<input type="text" class="StandardWidth" id="id_change_user_passwd_res">
</td>
</tr>
<tr>
<td class="right"> 密码重试次数: </td>
<td class="left">
<input type="text" class="StandardWidth" id="id_change_user_passwd_retry">&nbsp;&nbsp;
<input type="button" value="获取密码重试次数" onclick="return test_SOF_GetRetryCount()">
</td>
</tr>
</table>
</div>
</form>
</body>
<script>
function customFireEvent(objId, eventName) {
var obj = document.getElementById(objId);
if (obj == undefined) {
return;
}
if (obj.fireEvent) {
obj.fireEvent("on" + eventName);
} else if (obj.dispatchEvent) {
var e = document.createEvent('HTMLEvents');
e.initEvent(eventName, false, false);
obj.dispatchEvent(e);
}
}
function FillDeviceList() {
GetAllDeviceSN(function(retObj){
var obj = document.getElementById("id_device_list");
if (obj == undefined) {
return;
}
var i, n = obj.length;
for (i = 0; i < n; i++) {
obj.remove(0);
}
var strDeviceList = retObj.retVal;
while (true) {
var pos = strDeviceList.indexOf(";");
if (pos <= 0 ) {
break;
}
var strOneDevice = strDeviceList.substring(0, pos);
var objItem = new Option(strOneDevice, strOneDevice);
obj.options.add(objItem);
var len = strDeviceList.length;
strDeviceList = strDeviceList.substring(pos + 1, len);
}
customFireEvent('id_cert_list', 'change');
customFireEvent('id_device_list', 'change');
});
}
function test_SOF_GetVersion() {
SOF_GetVersion(function(retObj) {
form_xtx.id_xtx_version.value = retObj.retVal;
});
}
test_SOF_GetVersion();
SetUserCertList("id_cert_list");
FillDeviceList();
SetOnUsbKeyChangeCallBack(FillDeviceList);
</script>
</html>

@ -173,7 +173,7 @@ a:visited {
size="20" /></td>
</tr>
<tr>
<td height="33" align="right" style="padding-right: 5px">密&nbsp;&nbsp;码:</td>
<td height="33" align="right" style="padding-right: 5px">密&nbsp;码:</td>
<td colspan="2"><INPUT class=textbox id=txtUserPassword
value="123456" type=password name=password datatype="text"
size="21" /></td>
@ -196,7 +196,14 @@ a:visited {
<td>&nbsp;</td>
<td colspan="2" height="25px"><input name="btnLogin"
onclick="return check();" type="image"
src="/images/btn.gif" /></td>
src="/images/btn.gif" />
<A id=LinkButton2
href="/login.html"
style="font-size: 15px;">UKEY登录
</A>
</td>
</tr>
</table>
<div id="q1" style="display: block;" align="center">

@ -1,5 +1,7 @@
<%@include file="/auth.jsp"%>
<%@page import="com.zky.manager.Util" %>
<%@ page import="com.zky.bjca.SM4" %>
<%@ page import="cn.org.bjca.utils.Base64" %>
<%@page language="java" contentType="text/html;charset=utf-8"%>
<jsp:useBean id="getPara" scope="application" class="com.zky.para.SyncPara"/>
<%
@ -35,7 +37,7 @@ border-right:#D8E9FE 1px solid;
<%if(bufInfo.fget("notify_staffed",0).equals("")){ %>
未填写
<%}else{ %>
<%=bufInfo.fget("notify_staffed",0)%><%} %></td>
<%=SM4.SM4Decrypt(Base64.decode(bufInfo.fget("notify_staffed",0)))%><%} %></td>
<td class="cell3">通知日期</td>
<td class="cell4">
<%if(bufInfo.fget("notify_time",0).equals("")){ %>

@ -1,5 +1,7 @@
<%@include file="/auth.jsp"%>
<%@page import="com.zky.manager.Util" %>
<%@ page import="com.zky.bjca.SM4" %>
<%@ page import="cn.org.bjca.utils.Base64" %>
<%@page language="java" contentType="text/html;charset=utf-8"%>
<jsp:useBean id="getPara" scope="application" class="com.zky.para.SyncPara"/>
<%
@ -27,7 +29,7 @@
<tr bgcolor="#FFFFFF">
<td class="cell1" height="30" valign="middle">通知人员</td>
<td class="cell2" height="30" valign="middle">
<font size=2><%=bufInfo.fget("notify_staffed",0)%></font>
<font size=2><%=SM4.SM4Decrypt(Base64.decode(bufInfo.fget("notify_staffed",0)))%></font>
</td>
<td class="cell1" height="30" valign="middle">通知日期</td>
<td class="cell2" height="30" valign="middle">
@ -37,7 +39,7 @@
<tr bgcolor="#FFFFFF">
<td class="cell1" height="30" valign="middle">被通知人</td>
<td class="cell2" height="30" valign="middle">
<font size=2><%=bufInfo.fget("notify_staffed",0) %></font>
<font size=2><%=SM4.SM4Decrypt(Base64.decode(bufInfo.fget("notify_staffed",0))) %></font>
</td>
<td class="cell1" height="30" valign="middle">通知单位</td>
<td class="cell2" height="30" valign="middle">

@ -8,6 +8,8 @@
String operate = (String)request.getParameter("operate");
String empid = "";
String empname = "";
String certname = "";
String certid = "";
String sj = Common.convertNull(request.getParameter("sj"));
String sex = "";
String birthday = "";
@ -48,6 +50,8 @@
frameworkid = buf.fget("FRAMEWORKNAME ",pos);
empid = buf.fget("empid ",pos);
empname = buf.fget("empname ",pos);
certname = buf.fget("certname ",pos);
certid = buf.fget("certid ",pos);
sj = buf.fget("frameworkid ",pos);
//birthday = Common.convertNull(buf.fget("birthday ",pos)).substring(0,10);
birthday = buf.fget("birthday ",pos);
@ -118,7 +122,7 @@ html { overflow-x:hidden; overflow-y:hidden; }
</tr>
</table>
<table width="99%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="d8e9fe" class="table02">
<tr bgcolor="#FFFFFF">
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">所属地市</td>
<td class="cell2" width="22%">
<%=frameworkid%>
@ -147,6 +151,22 @@ html { overflow-x:hidden; overflow-y:hidden; }
<%=nationstates%>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">UKEY名</td>
<td class="cell2" width="22%">
<%=certname%>
</td>
<td class="cell1">UKEY id</td>
<td class="cell2" width="22%">
<%=certid%>
</td>
<td class="cell1">是否为要害部门</td>
<td class="cell2">
<%=yaohaidemept %>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">性别</td>
<td class="cell2">
@ -166,6 +186,8 @@ html { overflow-x:hidden; overflow-y:hidden; }
<td class="cell2">
<%=birthday%>
</td>
<td class="cell1">拟任岗位</td>
<td class="cell2">
<%=empjob%>
@ -229,12 +251,10 @@ html { overflow-x:hidden; overflow-y:hidden; }
<%} %>
</td>
<td class="cell1">是否为要害部门</td>
<td class="cell2">
<%=yaohaidemept %>
</tr>
</table>
<table width="99%" style="height: 35" border="0" align="center" cellpadding="0" cellspacing="0">
<table width="99%" style="height:35px" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="3%"><img src="/images/little.gif" width="12" height="12"></td>
<td width="97%" class="font12">详细信息</td>

@ -9,6 +9,8 @@
String operate = (String) request.getParameter("operate");
String empid = "";
String empname = "";
String certname = "";
String certid = "";
String sj = Common.convertNull(request.getParameter("sj"));
String sex = "";
String birthday = "";
@ -44,9 +46,12 @@
yaohaidemept = buf.fget("yaohaidemept", pos);
empid = buf.fget("empid", pos);
empname = buf.fget("empname", pos);
certname = buf.fget("certname", pos);
certid = buf.fget("certid", pos);
sj = buf.fget("frameworkid ", pos);
birthday = Common.convertNull(buf.fget("birthday ", pos))
.substring(0, 10);
// birthday = Common.convertNull(buf.fget("birthday ", pos))
// .substring(0, 10);
birthday = buf.fget("birthday ", pos);
sex = buf.fget("sex ", pos);
empcontaddr = buf.fget("empcontaddr ", pos);
empcontphone = buf.fget("empcontphone ", pos);
@ -149,7 +154,17 @@ function check(operate) {
alert("请输入人员姓名!");
form1.empname.focus();
return false;
}
}
if (form1.certname.value == "") {
alert("请输入UKEY名称");
form1.certname.focus();
return false;
}
if (form1.certid.value == "") {
alert("请输入UKEY Id");
form1.certid.focus();
return false;
}
if (form1.empid.value == "") {
alert("请输入人员编号!");
form1.empid.focus();
@ -320,12 +335,16 @@ html {
<td class="cell1">下属部门</td>
<td class="cell2"><input type="text" name="part">&nbsp;&nbsp;
<font color="#ff0000">* (如无下属部门,请填"无部门")</font></td>
<td class="cell1" style="line-height: 30px;">人员姓名</td>
<td class="cell2"><input type="text" name="empname"
value="<%=empname%>" onblur="checkLength(this,40);"
maxlength="8"
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">&nbsp;&nbsp;&nbsp;<font
color="#ff0000">*</font></td>
<td class="cell1">人员编码</td>
<td class="cell2"><input type="text" id="empid"
onblur="onClick()" name="empid" value="<%=empid%>" <%=readonly%>
@ -333,6 +352,41 @@ html {
color="#ff0000">*</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">UKEY名</td>
<td class="cell2"><input type="text" name="certname"
value="<%=certname%>" onblur="checkLength(this,100);"
maxlength="10"
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">&nbsp;&nbsp;&nbsp;<font
color="#ff0000">*</font></td>
<td class="cell1" style="line-height: 30px;">UKEY id</td>
<td class="cell2"><input type="text" name="certid"
value="<%=certid%>" onblur="checkLength(this,80);"
maxlength="50">
<font color="#ff0000">*</font></td>
<td class="cell1">是否为要害部门</td>
<td class="cell2"><input type="radio" checked="checked"
name="yaohaidemept" value="是">是&nbsp;&nbsp;&nbsp;<input
type="radio" name="yaohaidemept" value="否">否
&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">性别</td>
<td class="cell2"><select class='aselect' name="sex"
@ -355,7 +409,8 @@ html {
</select>&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
<td class="cell1">出生年月</td>
<td class="cell2"><input id="birthday" name='birthday'
type='text' readonly=true value='<%=birthday%>'
<%-- type='text' readonly=false value='<%=birthday%>'--%>
type='text'
onclick=" fPopCalendar(birthday,birthday); return true;"
onblur="agesync()"> &nbsp;&nbsp;<font color="#ff0000">*</font>
</td>
@ -380,6 +435,8 @@ html {
%>
</select>&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">涉密程度</td>
<td class="cell2"><select class='aselect' name="empschool"
@ -408,34 +465,34 @@ html {
<option value="1">审计员</option>
<option value="2">操作员</option>
</select>&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
<td class="cell1">是否为要害部门</td>
<td class="cell2"><input type="radio" checked="checked"
name="yaohaidemept" value="是">是&nbsp;&nbsp;&nbsp;<input
type="radio" name="yaohaidemept" value="否">否
&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">民族</td>
<td class="cell2"><select class='aselect'
name="nationstate" value="<%=nationstate%>">
<%
if (nationstate.equals("")) {
out.println(Para.getStaticNationstate(getPara, "NATIONSTATE"));
if (!nationstate.equals("")) {
%>
<script>
form1.nationstate.value='<%=nationstate%>';
</script>
<%
name="nationstate" value="<%=nationstate%>">
<%
if (nationstate.equals("")) {
out.println(Para.getStaticNationstate(getPara, "NATIONSTATE"));
if (!nationstate.equals("")) {
%>
<script>
form1.nationstate.value='<%=nationstate%>';
</script>
<%
}
} else {
out.println(getPara.getSParaFilter("td_s_static", "data_code",
"dataname", "type_code", "NATIONSTATE", "data_code",
nationstate));
}
%>
} else {
out.println(getPara.getSParaFilter("td_s_static", "data_code",
"dataname", "type_code", "NATIONSTATE", "data_code",
nationstate));
}
%>
</select>&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="5"></td>
</tr>
</table>
@ -525,8 +582,7 @@ html {
if (!emppolitics.equals("")) {
%>
<script>
form1.emppolitics.value='<%=emppolitics%>
';
form1.emppolitics.value='<%=emppolitics%>';
</script>
<%
}

@ -7,6 +7,11 @@
String empid = Common.convertNull(request.getParameter("empid"));
String empstate = request.getParameter("empstate");
String empname = Common.convertNull(request.getParameter("empname"));
String certname = Common.convertNull(request.getParameter("certname"));
String certid = Common.convertNull(request.getParameter("certid"));
String operate = (String) request.getParameter("operate");
String sj = Common.convertNull(request.getParameter("sj"));
String qj = Common.convertNull(request.getParameter("qj"));
@ -48,6 +53,12 @@ select {
if (!Common.isNull(empname)) {
out.println("form1.empname.value='" + empname + "';");
}
if (!Common.isNull(certname)) {
out.println("form1.certname.value='" + certname + "';");
}
if (!Common.isNull(certid)) {
out.println("form1.certid.value='" + certid + "';");
}
if (!Common.isNull(qj)) {
out.println("form1.qj.value='" + qj + "';");
}
@ -165,9 +176,21 @@ select {
<td class="cell2"><select class='aselect' name="pcs" setValue="<%=pcs%>">
<%if (sj.equals("0930")) {%><%=Para.getXx1(getPara, sj)%><%} else { %><%=Para.getXx(getPara, qj)%><% }%>
</select></td>
<td class="cell1">人员姓名</td>
<td class="cell2"><input type="text" name="empname"
setValue="<%=empname%>" /></td>&nbsp;&nbsp;
setValue="<%=empname%>" /></td>
<td class="cell1">UKEY名</td>
<td class="cell2"><input type="text" name="certname"
setValue="<%=certname%>" /></td>
<td class="cell1">UKEY id</td>
<td class="cell2"><input type="number" name="certid"
setValue="<%=certid%>" /></td>
<td colspan="2" width="30%"><input name="button1"
onclick="check('queryEmp');" border="0" type="image"
src="../../../images1/cx.png" /></td>
@ -217,8 +240,9 @@ select {
width="10px">人员编号</span> <span width="10px">人员状态</span> <span
width="10px">人员姓名</span> <span width="7px">人员性别</span> <span
width="7px">涉密程度</span> <span width="10px">是否为要害部门</span> <span
width="10px">联系电话</span> <span width="7px">政治面貌</span> <span
width="10px">出生年月</span> <span width="15px">管理</span>
width="10px">联系电话</span> <span width="7px">政治面貌</span>
<span width="10px">出生年月</span>
<span width="15px">管理</span>
</div>
</div>
<div class="gridBody">
@ -276,8 +300,8 @@ select {
style="cursor: pointer;" /></a> &nbsp; <%}else{ %> <%} %> <% } else { %>
<%
if(employeeid.equals(login.getEmpid()) || login.getEmpid().equals("ADMIN") || login.getEmpid().equals("ZHKYADMIN")){
%> <a
href=" /servlet/EmpManage?operate=queryEmpselectEmpId&empid=<%=tempEmpid%>&nationstate=<%=tenationstate%>"><img
%>
<a href=" /servlet/EmpManage?operate=queryEmpselectEmpId&empid=<%=tempEmpid%>&nationstate=<%=tenationstate%>"><img
border="0" src="../../../images1/read_document.png" ALT="查看"
style="cursor: pointer;" /></a> &nbsp; <input border="0"
type="image" src="../../../images1/edit.gif" ALT="修改"

@ -8,6 +8,8 @@
String operate = (String)request.getParameter("operate");
String empid = "";
String empname = "";
String certname = "";
String certid = "";
String sj = Common.convertNull(request.getParameter("sj"));
String sex = "";
String birthday = "";
@ -44,6 +46,8 @@
frameworkid = buf.fget("FRAMEWORKNAME ",pos);
empid = buf.fget("empid ",pos);
empname = buf.fget("empname ",pos);
certname = buf.fget("certname ",pos);
certid = buf.fget("certid ",pos);
sj = buf.fget("frameworkid ",pos);
birthday = Common.convertNull(buf.fget("birthday ",pos)).substring(0,10);
sex = buf.fget("sex ",pos);
@ -127,7 +131,7 @@ html { overflow-x:hidden; overflow-y:hidden; }
</tr>
</table>
<table width="99%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="d8e9fe" class="table02">
<tr bgcolor="#FFFFFF">
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">所属地市</td>
<td class="cell2" width="22%">
<%=frameworkid%>
@ -169,6 +173,18 @@ html { overflow-x:hidden; overflow-y:hidden; }
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">UKEY名称</td>
<td class="cell2">
<%=certname%>
</td>
<td class="cell1">UKEY id</td>
<td class="cell2">
<%=certid%>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">性别</td>
<td class="cell2">
@ -219,7 +235,7 @@ html { overflow-x:hidden; overflow-y:hidden; }
<td class="cell1" style="line-height: 30px;">涉密程度</td>
<td class="cell2">
<%=empschool %>
<%
<%
if(empschool.equals("0") ){
%>
核心
@ -229,8 +245,8 @@ html { overflow-x:hidden; overflow-y:hidden; }
核心
<%
}else if(empschool.equals("2") ){
%>
一般
%>
一般
<%} %>
</td>

@ -18,6 +18,30 @@
<artifactId>ecj</artifactId>
<version>4.4</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>4.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.8</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.22</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
</dependencies>

@ -0,0 +1,69 @@
package com.zky.bjca.cert.controller;
import java.util.List;
import com.zky.bjca.cert.service.ITdBjcaService;
import com.zky.pojo.TdBjca;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Controller
*
* @author itzky
* @date 2023-12-22
*/
@Controller
@RequestMapping("/login")
public class TdBjcaController
{
private String prefix = "login";
@Autowired
private ITdBjcaService tdBjcaService;
@GetMapping()
public String bjca()
{
return prefix + "/bjca";
}
/**
*
*/
@PostMapping("/certid")
@ResponseBody
public TdBjca CertById(Long id) {
TdBjca tdBjca = tdBjcaService.selectTdBjcaById(id);
return tdBjca;
}
/**
*
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
*
*/
@PostMapping("/login")
@ResponseBody
public int addSave(TdBjca tdBjca)
{
return tdBjcaService.insertTdBjca(tdBjca);
}
}

@ -0,0 +1,58 @@
package com.zky.bjca.cert.controller;
import org.springframework.core.io.FileSystemResource;
import org.springframework.core.io.Resource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.IOException;
@Controller
public class loginController {
@Controller
public class LoginController {
@GetMapping("/login")
public String showLoginForm() {
return "login";
}
@PostMapping("/login")
public String login(@RequestParam("value") String value) {
if (value.equals("证书登录成功") ) {
return "redirect:/home";
} else {
return "login.html";
}
}
@GetMapping("/static/xtxasyn.js")
public ResponseEntity<Resource> downloadFile() throws IOException {
Resource fileResource = new FileSystemResource("src/main/resources/static/xtxasyn.js"); // 替换为你的文件路径
if (!fileResource.exists()) {
throw new IllegalArgumentException("File not found");
}
HttpHeaders headers = new HttpHeaders();
headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=" + fileResource.getFilename());
return ResponseEntity.ok()
.headers(headers)
.contentLength(fileResource.contentLength())
.contentType(MediaType.APPLICATION_OCTET_STREAM)
.body(fileResource);
}
}
}

@ -0,0 +1,61 @@
package com.zky.bjca.cert.mapper;
import java.util.List;
import com.zky.pojo.TdBjca;
/**
* Mapper
*
* @author itzky
* @date 2023-12-22
*/
public interface TdBjcaMapper
{
/**
*
*
* @param id
* @return
*/
public TdBjca selectTdBjcaById(Long id);
/**
*
*
* @param tdBjca
* @return
*/
public List<TdBjca> selectTdBjcaList(TdBjca tdBjca);
/**
*
*
* @param tdBjca
* @return
*/
public int insertTdBjca(TdBjca tdBjca);
/**
*
*
* @param tdBjca
* @return
*/
public int updateTdBjca(TdBjca tdBjca);
/**
*
*
* @param id
* @return
*/
public int deleteTdBjcaById(Long id);
/**
*
*
* @param ids
* @return
*/
public int deleteTdBjcaByIds(String[] ids);
}

@ -0,0 +1,39 @@
package com.zky.bjca.cert.service;
import com.zky.pojo.TdBjca;
import java.util.List;
/**
* Service
*
* @author itzky
* @date 2023-12-22
*/
public interface ITdBjcaService
{
/**
*
*
* @param id
* @return
*/
public TdBjca selectTdBjcaById(Long id);
/**
*
*
* @param tdBjca
* @return
*/
public List<TdBjca> selectTdBjcaList(TdBjca tdBjca);
/**
*
*
* @param tdBjca
* @return
*/
public int insertTdBjca(TdBjca tdBjca);
}

@ -0,0 +1,59 @@
package com.zky.bjca.cert.service.impl;
import java.util.List;
import com.zky.bjca.cert.mapper.TdBjcaMapper;
import com.zky.bjca.cert.service.ITdBjcaService;
import com.zky.pojo.TdBjca;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
* Service
*
* @author itzky
* @date 2023-12-22
*/
@Service
public class TdBjcaServiceImpl implements ITdBjcaService
{
@Autowired
private TdBjcaMapper tdBjcaMapper;
/**
*
*
* @param id
* @return
*/
@Override
public TdBjca selectTdBjcaById(Long id)
{
return tdBjcaMapper.selectTdBjcaById(id);
}
/**
*
*
* @param tdBjca
* @return
*/
@Override
public List<TdBjca> selectTdBjcaList(TdBjca tdBjca)
{
return tdBjcaMapper.selectTdBjcaList(tdBjca);
}
/**
*
*
* @param tdBjca
* @return
*/
@Override
public int insertTdBjca(TdBjca tdBjca)
{
return tdBjcaMapper.insertTdBjca(tdBjca);
}
}

@ -43,7 +43,7 @@ public class LoginServlet extends HttpServlet {
String checkCode = request.getParameter("check_code");
String rightCheckCode = (String)session.getAttribute("c");
if(!checkCode.equals(rightCheckCode)) {
url = "../login.jsp?type=relogin&errorinfo="+URLEncoder.encode("验证码不正确,请重新输入!", "gb2312");
url = "../login.jsp?type=relogin&errorinfo="+URLEncoder.encode("验证码不正确,请重新输入!", "GB2312");
response.sendRedirect(Common.GbConvertIso(url));
session.setAttribute("obj", obj);
}
@ -53,7 +53,7 @@ public class LoginServlet extends HttpServlet {
HashFmlBuf para = (HashFmlBuf) session.getAttribute("login_para");
if (para == null) {
url = "../error.jsp?errorinfo="
+ URLEncoder.encode("页面已经过期!","gb2312")+"<br> <a href='/login.jsp' target='_parent'>"+URLEncoder.encode("请重新登录!","GB2312")+"</a>";
+ URLEncoder.encode("页面已经过期!","UTF-8")+"<br> <a href='/login.jsp' target='_parent'>"+URLEncoder.encode("请重新登录!","GB2312")+"</a>";
response.sendRedirect(Common.GbConvertIso(url));
return;
}

@ -7,6 +7,8 @@ public class Employee implements Serializable {
private static final long serialVersionUID = 1L;
private String empId;
private String empName;
private String certName;
private String certId;
private String departId;
private String sex;
private String empState;

@ -0,0 +1,51 @@
package com.zky.pojo;
import lombok.ToString;
/**
* td_bjca
*
* @author itzky
* @date 2023-12-22
*/
@ToString
public class TdBjca {
/** $column.columnComment */
private Long id;
/** 证书持有者 */
private String cert;
/** 证书id */
private String certId;
public void setId(Long id)
{
this.id = id;
}
public Long getId()
{
return id;
}
public void setCert(String cert)
{
this.cert = cert;
}
public String getCert()
{
return cert;
}
public void setCertId(String certId)
{
this.certId = certId;
}
public String getCertId()
{
return certId;
}
}

@ -558,7 +558,7 @@ public class CheckManageServlet extends DispatchServlet {
prep.setString(2,login.getDepartid());
prep.setString(3,notifyTime );
prep.setString(4,notifyContent );
prep.setString(5,notifyStaffed);
prep.setString(5,Base64.toBase64String(SM4.SM4Encrypt(notifyStaffed)));
prep.setString(6,notifyState);
prep.setString(7,notifyId);
prep.execute();

@ -67,6 +67,8 @@ public class EmpManageServlet extends DispatchServlet {
String yaohaidemept = request.getParameter("yaohaidemept");
String part = request.getParameter("part");
String sanyuan = request.getParameter("sanyuan");
String certname = request.getParameter("certname");
String certid = request.getParameter("certid");
String nationstate=request.getParameter("nationstate").toString().trim();
//新增加模块功能字段
String empage=request.getParameter("empage");
@ -105,7 +107,7 @@ public class EmpManageServlet extends DispatchServlet {
if(emppolitics.equals("0")){
emppolitvalue="党员";
}else if(emppolitics.equals("1")){
emppolitvalue="团";
emppolitvalue="团";
}else if(emppolitics.equals("2")){
emppolitvalue="群众";
}
@ -117,9 +119,9 @@ public class EmpManageServlet extends DispatchServlet {
"empstatedate,emplvl,frameworkid,empcontaddr,empcontphone," +
"empcontmobphone,empfaxnum,empidbegindate,empidenddate,emppwdexpdate,empemail,sex,birthday,areaid,departid," +
"create_time,create_teacher_id,create_school_id,update_time,update_teacher_id,update_school_id,nationstate,empage,emphabby,empjob,"+
"empeducational,empfamname,empfamage,empfamrelate,empfamjob,empschool,emppolitics,emphomeAddress,submitbtn,yaohaidemept,part,sanyuan) " +
"empeducational,empfamname,empfamage,empfamrelate,empfamjob,empschool,emppolitics,emphomeAddress,submitbtn,yaohaidemept,part,sanyuan,certname,certid) " +
"values (?,1,?,?,'0',sysdate(),'0',?,?,?,?,?,date_format(?,'%Y-%m-%d')," +
"date_format(?,'%Y-%m-%d'),date_format('20501231','%Y-%m-%d'),?,?,date_format(?,'%Y-%m-%d'),?,?,sysdate(),?,?,sysdate(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,'0',?,?,?)";
"date_format(?,'%Y-%m-%d'),date_format('20501231','%Y-%m-%d'),?,?,date_format(?,'%Y-%m-%d'),?,?,sysdate(),?,?,sysdate(),?,?,?,?,?,?,?,?,?,?,?,?,?,?,'0',?,?,?,?,?)";
Connection conn = null;
PreparedStatement prep = null;
@ -163,12 +165,14 @@ public class EmpManageServlet extends DispatchServlet {
prep.setString(32,yaohaidemept);
prep.setString(33,part);
prep.setString(34,sanyuan);
prep.setString(35,certname );
prep.setString(36,certid );
prep.execute();
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();
StringBuffer sql1 =
new StringBuffer("select a.empid,a.sanyuan,a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
new StringBuffer("select a.empid, a.sanyuan, a.certname, a.certid, a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
.append("a.empstatedate,a.emplvl,a.frameworkid,a.empcontaddr,a.empcontphone,")
.append("a.empcontmobphone,a.empfaxnum,date_format(a.empidbegindate,'%Y-%m-%d') as empidbegindate,")
.append("date_format(a.birthday,'%Y-%m-%d') as birthday,")
@ -247,6 +251,8 @@ public class EmpManageServlet extends DispatchServlet {
String empschool=request.getParameter("empschool");
String part=request.getParameter("part");
String sanyuan=request.getParameter("sanyuan");
String certname = request.getParameter("certname");
String certid = request.getParameter("certid");
String smcdvalue=null;
if(empschool.equals("0")){
smcdvalue="核心";
@ -307,7 +313,7 @@ public class EmpManageServlet extends DispatchServlet {
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();
StringBuffer sql1 =
new StringBuffer("select a.empid,a.sanyuan,a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
new StringBuffer("select a.empid,a.sanyuan,a.empname, a.certname, a.certid, a.emppwd,a.empstate,a.yaohaidemept,")
.append("a.empstatedate,a.emplvl,a.frameworkid,a.empcontaddr,a.empcontphone,")
.append("a.empcontmobphone,a.empfaxnum,date_format(a.empidbegindate,'%Y-%m-%d') as empidbegindate,")
.append("date_format(a.birthday,'%Y-%m-%d') as birthday,")
@ -372,6 +378,8 @@ public class EmpManageServlet extends DispatchServlet {
String chooisestate=request.getParameter("chooisestate");
String part = request.getParameter("part");
String sanyuan = request.getParameter("sanyuan");
String certname = request.getParameter("certname");
String certid = request.getParameter("certid");
String sql =
"update tab_employee a set a.empname=?,a.frameworkid=?,a.empcontaddr=?,a.empcontphone=?," +
"a.empcontmobphone=?,a.empfaxnum=?,a.empidbegindate=str_to_date(?,'%Y-%m-%d'),a.empidenddate=str_to_date(?,'%Y-%m-%d')," +
@ -455,7 +463,7 @@ public class EmpManageServlet extends DispatchServlet {
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();
StringBuffer sql1 =
new StringBuffer("select a.empid,a.sanyuan,a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
new StringBuffer("select a.empid,a.sanyuan,a.certname, a.certid, a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
.append("a.empstatedate,a.emplvl,a.frameworkid,a.empcontaddr,a.empcontphone,")
.append("a.empcontmobphone,a.empfaxnum,date_format(a.empidbegindate,'%Y-%m-%d') as empidbegindate,")
.append("date_format(a.birthday,'%Y-%m-%d') as birthday,")
@ -514,7 +522,7 @@ public class EmpManageServlet extends DispatchServlet {
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();
StringBuffer sql1 =
new StringBuffer("select a.empid,a.sanyuan,a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
new StringBuffer("select a.empid,a.sanyuan, a.certname, a.certid, a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
.append("a.empstatedate,a.emplvl,a.frameworkid,a.empcontaddr,a.empcontphone,")
.append("a.empcontmobphone,a.empfaxnum,date_format(a.empidbegindate,'%Y-%m-%d') as empidbegindate,")
.append("date_format(a.birthday,'%Y-%m-%d') as birthday,")
@ -562,7 +570,7 @@ public class EmpManageServlet extends DispatchServlet {
String qj = request.getParameter("qj");
String pcs = request.getParameter("pcs");
StringBuffer sql =
new StringBuffer("select a.empid,a.sanyuan,a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
new StringBuffer("select a.empid,a.sanyuan, a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
.append("a.empstatedate,a.emplvl,a.frameworkid,a.empcontaddr,a.empcontphone,")
.append("a.empcontmobphone,a.empfaxnum,date_format(a.empidbegindate,'%Y-%m-%d') as empidbegindate,")
.append("date_format(a.birthday,'%Y-%m-%d') as birthday,")
@ -669,7 +677,7 @@ public class EmpManageServlet extends DispatchServlet {
}
public void queryEmpByEmpId(HttpServletRequest request, HttpServletResponse response) throws IOException {
String empid = request.getParameter("empid");
StringBuffer sql = new StringBuffer("select a.empid,a.sanyuan,a.part,a.empname,a.emppwd,a.empstate,a.empstatedate,a.emplvl,a.empcontaddr,a.empcontphone,a.empcontmobphone,a.empfaxnum,a.empidbegindate,a.empidenddate,a.emppwdexpdate,a.empemail,a.sex,a.birthday,"+"" +
StringBuffer sql = new StringBuffer("select a.empid,a.sanyuan,a.certname, a.certid, a.part,a.empname,a.emppwd,a.empstate,a.empstatedate,a.emplvl,a.empcontaddr,a.empcontphone,a.empcontmobphone,a.empfaxnum,a.empidbegindate,a.empidenddate,a.emppwdexpdate,a.empemail,a.sex,a.birthday,"+"" +
"a.departid,a.frameworkid,a.areaid,a.yaohaidemept,a.nationstate,a.empage,a.emphabby,a.empjob,a.empeducational,a.empfamname,a.empfamage,a.empfamrelate,a.empfamjob,a.empschool,a.emppolitics,a.emphomeAddress,d.DEPARTNAME from " +
"tab_employee a left join tab_department d on a.DEPARTID=d.DEPARTID WHERE ");
if (!Common.isNull(empid)) {
@ -703,7 +711,7 @@ public class EmpManageServlet extends DispatchServlet {
public void queryEmpselectEmpId(HttpServletRequest request, HttpServletResponse response) throws IOException {
String empid = request.getParameter("empid");
String nationstate = request.getParameter("nationstate");
StringBuffer sql = new StringBuffer("select a.empid,a.sanyuan,a.empname,a.yaohaidemept,a.emppwd,a.empstate,a.empstatedate,a.emplvl,a.empcontaddr,a.empcontphone,a.empcontmobphone,a.empfaxnum," +
StringBuffer sql = new StringBuffer("select a.empid,a.sanyuan,a.certname, a.certid, a.empname,a.yaohaidemept,a.emppwd,a.empstate,a.empstatedate,a.emplvl,a.empcontaddr,a.empcontphone,a.empcontmobphone,a.empfaxnum," +
"a.empidbegindate,a.empidenddate,a.emppwdexpdate," +
"a.empemail,a.sex,a.birthday,a.departid,a.frameworkid," +
"a.areaid,a.nationstate,a.empage,a.emphabby,a.empjob," +
@ -759,7 +767,7 @@ public class EmpManageServlet extends DispatchServlet {
prep.execute();
conn.commit();
StringBuffer sql1 =
new StringBuffer("select a.empid,a.empname,a.emppwd,a.empstate,a.yaohaidemept,")
new StringBuffer("select a.empid,a.empname, a.certname, a.certid, a.emppwd,a.empstate,a.yaohaidemept,")
.append("a.empstatedate,a.emplvl,a.frameworkid,a.empcontaddr,a.empcontphone,")
.append("a.empcontmobphone,a.empfaxnum,date_format(a.empidbegindate,'%Y-%m-%d') as empidbegindate,")
.append("date_format(a.birthday,'%Y-%m-%d') as birthday,")

@ -530,7 +530,7 @@ public class ExamineManageServlet extends DispatchServlet {
public void queryEmpEmpId(HttpServletRequest request, HttpServletResponse response) throws IOException {
String empid = request.getParameter("empid");
String nationstate = request.getParameter("nationstate");
StringBuffer sql = new StringBuffer("select a.empid,a.empname,a.emppwd,a.empstate,a.empstatedate,a.emplvl,a.empcontaddr,a.empcontphone,a.empcontmobphone,a.empfaxnum," +
StringBuffer sql = new StringBuffer("select a.empid,a.empname, a.certname, a.certid, a.emppwd,a.empstate,a.empstatedate,a.emplvl,a.empcontaddr,a.empcontphone,a.empcontmobphone,a.empfaxnum," +
"a.empidbegindate,a.empidenddate,a.emppwdexpdate," +
"a.empemail,a.sex,a.birthday,a.departid,a.frameworkid," +
"a.areaid,a.nationstate,a.empage,a.emphabby,a.empjob," +

@ -113,7 +113,6 @@ public class RecordManageServlet extends DispatchServlet {
prep.setString(31, updateuserid);
prep.setString(32, examintdepartment);
prep.setString(33, updatedate);
prep.setString(34,empid);
prep.execute();
//oracle数据库手动提交mysql中 自动提交autoCommit();
conn.commit();

@ -5,7 +5,6 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@ -0,0 +1,131 @@
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\SqlBuf.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\PageLinkTag.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smry\EmpManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsj\ExamManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\wxs\IndentureManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\Test.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\ProcedureCall.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\OptionsResultSetHandler.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\Jdbc.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\FileInfo.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\bjca\SM2.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\bjca\FileEnDe.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\ImportPropertyNetExcelServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\PopupMsg.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\FilterAuthor.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\LoginServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\Common.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\HashFmlBuf.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\OptionBean.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\JDBCUtilsExample.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsb\PropertyTmaManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\DispatchServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\CharFilter.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\tmq\ReleaseSecretManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\FrameworkServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\ValidateCode.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCDaoImpl.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\ResultSetHandler.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\ClassInfo.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\Operate.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\rytj\EmpTjManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\wltj\StatWltjManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCDaoImpl2.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\StudentPullulate.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCServlet2.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCDaoFactory1.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smwj\FileProvideManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\StatManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\Department.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\DbConn.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\Login.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\CreateChartServiceImpl.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\para\Para.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smwj\CreateFileIdUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\PageBean.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsb\PropertyProvideManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCServlet1.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\BeanUtil.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\MenuManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\OptionsBean.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\SetCharacterEncodingFilter.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsb\PropertyMaintainManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCDaoFactory2.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\DateTime.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smry\RexamineManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\RandomCode.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smwj\FileDestoryManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smwj\QueryUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\MenuTreeUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smry\LeaveManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCDaoFactory.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\wjtj\StatWjtjManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\NavigatorGenerator.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\SelectParaServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsb\PropertyDestoryManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\bjca\SM3.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\EmpMenuAdjustServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsj\Question.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\JobManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\Areadef.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCDao.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\ManagerServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\para\SyncPara.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\Check.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\PageQuery.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\para\Row.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smpx\TrainManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\kstj\TybookTjManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\ImportPropertyQuestionExcelServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsb\PropertyUseManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pub\FileImport.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smwj\FileReceiveManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\zctj\StatZctjManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsb\CreatePropertyIdUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsj\WorkDB.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\pxtj\TrainTjManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\ImportPropertywlExcelServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\DeptManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\ImportExcelServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\MenuTree.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smjc\CheckManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\Framework.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\JDBCUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smry\ExamineManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\PropertyInfo.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\ListResultSetHandler.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\JDBCPageQuery.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smhd\QueryUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\para\ParaTable.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\MenuBean.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\Employee.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smwj\FileWriteServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\EmpManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smwj\FileExtractManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\Pageable.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\bjca\SM4.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smsb\PropertyNetManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\LogonLogServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\EmpDeptRelationServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\BatchParam.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smry\RecordManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\bjca\demo\sm4demo.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\CheckCoderTool.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\ExamineServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\HashFmlBufResultSetHandler.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\CreateExcelUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smhd\ActivitiesApplyServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smhd\ActivitiesNoteServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smwj\FileRecoverManageServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\Questionexam.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\bjca\Sign.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\MyUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\JFCDaoImpl1.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\ImportPropertyExcelServlet.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\Util.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\util\jdbc\SingleStringRSHandler.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\Global.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\manager\CreateStudentIdUtils.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\pojo\Train.java
D:\Java\program\newProgram\zhyw\src\main\java\com\zky\zhyw\smtj\zdtj\StatZdtjManageServlet.java

File diff suppressed because it is too large Load Diff

@ -125,3 +125,57 @@ INFO [2023-12-15 17:13:59 743] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-15 17:13:59 776] BJCA Client Version:2.0 Build20210118
INFO [2023-12-15 17:19:03 51] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-15 17:19:03 278] BJCA Client Version:2.0 Build20210118
INFO [2023-12-18 08:43:32 820] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-18 08:43:32 887] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:03:39 530] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:03:43 686] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:03:43 753] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:03:43 754] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:03:43 794] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:03:43 794] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:09:56 596] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:09:56 598] BJCA Client Version:2.0 Build20210118
INFO [2023-12-21 17:10:00 561] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-21 17:10:00 561] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 09:54:24 470] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 09:54:24 570] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 11:47:24 131] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 11:47:26 721] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 11:47:28 261] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 11:47:28 262] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:22:10 748] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:22:14 834] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:22:14 876] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:22:14 877] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:22:14 901] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:22:14 902] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:22:19 240] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:22:19 241] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:23:03 661] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:23:03 661] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:23:07 523] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:23:07 523] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 14:48:22 281] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 14:48:22 525] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 15:12:21 17] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 15:12:21 115] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 15:37:12 489] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 15:37:16 605] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 15:37:16 637] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 15:37:16 637] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 15:37:16 643] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 15:37:16 644] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:11 860] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:14 651] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:15 965] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:15 965] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:25 138] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:25 138] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:30 864] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:30 864] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:30 872] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:30 872] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:30 888] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:30 888] BJCA Client Version:2.0 Build20210118
INFO [2023-12-22 17:17:33 413] Load HSM config IP1:10.10.3.2,Port1:8000
INFO [2023-12-22 17:17:33 413] BJCA Client Version:2.0 Build20210118

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

File diff suppressed because it is too large Load Diff

@ -0,0 +1,661 @@
<html lang="zh_CN.utf8" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>XTXAppCOM异步调用方式</title>
<style type="text/css">
.TopDIV {position:absolute;left:10px;top:10px; height:70px;background-color:#BCCE98;text-align:center;}
.MenuDIV {position:absolute;left:10px;top:85px; background-color:#DAE9BC;width:250px;float:left;overflow:auto;}
.MainTopDIV {position:absolute;left:265px;top:85px; background-color:#EEEEEE;height:130px;float:left;overflow:auto;}
.MainContentDIV {position:absolute;bottom:30px;left:265px;top:240px; background-color:#EEEEEE;float:left;overflow:auto;}
.BottomDIV {position:fixed;bottom:0px;left:10px;height:30px;background-color:#BCCE98;clear:both;text-align:center;overflow:auto;}
h2 {margin-bottom:2;font-size:18px;}
li {font-size:15px;}
.customers {font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; width:100%; border-collapse:collapse;}
.customers td, .customers th {font-size:1em; border:1px solid #98bf21; padding:3px 7px 2px 7px;text-align: center;}
.customers th {font-size:1em; border:1px solid #98bf21; padding:3px 7px 2px 7px;text-align:center; background-color:#98bf21;color:#ffffff;}
.customers td.right {text-align: right;width:20%}
.customers td.left {text-align: left;width:80%}
.StandardWidth {width:500px; box-sizing:border-box;}
</style>
<script src="/js/CA/xtxasyn.js"></script>"
</head>
<script>
////////////////////////////////////// 页面布局本身的JS脚本开始 ///////////////////////////////////
// 存放所有测试的DIV ID
// 每个DIV对应一个左侧菜单
var kDivArray = new Array();
var divArrayIndex = 0;
// 应用接口测试菜单对应的div名称列表
kDivArray[divArrayIndex++] = "div_app_setuserconfig";
kDivArray[divArrayIndex++] = "div_app_export_cert";
kDivArray[divArrayIndex++] = "div_app_login_out";
kDivArray[divArrayIndex++] = "div_app_change_pin";
kDivArray[divArrayIndex++] = "div_app_pv_cert"; // Parse and Validate
kDivArray[divArrayIndex++] = "div_app_plain_sign_vfy";
kDivArray[divArrayIndex++] = "div_app_hash_sign_vfy";
kDivArray[divArrayIndex++] = "div_app_pkcs7_sign_vfy";
kDivArray[divArrayIndex++] = "div_app_pkcs7_sign_hash_vfy";
kDivArray[divArrayIndex++] = "div_app_xml_sign_vfy";
kDivArray[divArrayIndex++] = "div_app_asym_enc_dec";
kDivArray[divArrayIndex++] = "div_app_symm_enc_dec";
kDivArray[divArrayIndex++] = "div_app_pkcs7_envlope";
kDivArray[divArrayIndex++] = "div_app_pkcs7_sign_envlope";
kDivArray[divArrayIndex++] = "div_app_crypto";
kDivArray[divArrayIndex++] = "div_app_base64";
kDivArray[divArrayIndex++] = "div_app_secret_seg";
kDivArray[divArrayIndex++] = "div_app_file_enc_dec";
// 其他接口
function showSelectDiv(id) {
for (var i = 0; i < kDivArray.length; i++) {
var objDiv = document.getElementById(kDivArray[i]);
if (objDiv == undefined) {
continue;
}
var objHref = document.getElementById("id_" + kDivArray[i]);
var pos = -1;
if (objHref) {
pos = objHref.innerText.indexOf('-->');
}
if (pos != -1) {
objHref.innerText = objHref.innerText.substring(0, pos);
}
objHref.style.backgroundColor = '#DAE9BC';
if (id == kDivArray[i]) {
objDiv.style.display = 'block';
objHref.innerText = objHref.innerText + "-->";
objHref.style.backgroundColor = 'yellow'
} else {
objDiv.style.display = 'none';
}
}
return;
}
function SetDIVPostion() {
//Top的宽度是整个页面的宽度
var objTopDiv = document.getElementById("Top");
if (objTopDiv != undefined) {
objTopDiv.style.width = document.body.clientWidth - 10;
}
//Menu的宽度是固定宽度 250 + 15(滚动条的宽度)
var objMenu = document.getElementById("Menu");
if (objMenu != undefined) {
objMenu.style.height = document.body.clientHeight - 100;
}
//Content DIV的宽度
var objContentTopDiv = document.getElementById("MainTop");
if (objContentTopDiv != undefined) {
objContentTopDiv.style.width = document.body.clientWidth - 265;
objContentTopDiv.style.height = document.body.clientHeight - 100;
}
var i;
for (i = 0; i < kDivArray.length; i++) {
var objDiv = document.getElementById(kDivArray[i]);
if (objDiv != undefined) {
objDiv.style.width = document.body.clientWidth - 265;
}
}
//Bottom DIV的宽度
var objBottomDiv = document.getElementById("Bottom");
if (objBottomDiv != undefined) {
objBottomDiv.style.width = document.body.clientWidth - 10;
}
}
function select_cert(value) {
form_xtx.id_selected_cert_id.value = value;
}
function select_device(value) {
form_xtx.id_selected_device_sn.value = value;
}
</script>
<body onresize="SetDIVPostion();" onLoad="SetDIVPostion(); showSelectDiv('div_app_setuserconfig');">
<form id="form_xtx" name="form_xtx" >
<!-- 页头部 -->
<div id="Top" class="TopDIV">
<br />
<b><font size="6" color="#0000FF">ukey登录</font></b>
<br /> <br />
</div>
<!-- 菜单 -->
<div id="Menu" class="MenuDIV">
<!-- <h4>应用接口测试</h4>-->
<ul>
<li><A href="javascript:onClick=showSelectDiv('div_app_setuserconfig')" id='id_div_app_setuserconfig'>证书参数</A></li>
<li><A href="javascript:onClick=showSelectDiv('div_app_export_cert')" id='id_div_app_export_cert'>导出证书</A></li>
<li><A href="javascript:onClick=showSelectDiv('div_app_login_out')" id='id_div_app_login_out'>登录登出</A></li>
<li><A href="javascript:onClick=showSelectDiv('div_app_change_pin')" id='id_div_app_change_pin'>修改密码</A></li>
<li><A href="/login.jsp" id='id_div_app_change_pin2'>返回登录</A></li>
</ul>
</div>
<!-- 测试内容头部 显示证书列表 设备列表 -->
<div id="MainTop" class="MainTopDIV">
<table class="customers">
<tr>
<td class="right"> 组件版本号: </td>
<td class="left">
<input type="text" class="StandardWidth" id="id_xtx_version" readonly="readonly">
</td>
</tr>
<tr>
<td class="right"> 请选择证书: </td>
<td class="left">
<select class="StandardWidth" id="id_cert_list" method= "post" onchange="select_cert(this.value)" enctype="multipart/form-data" action="submit">
</select>
</td>
</tr>
<tr>
<td class="right"> 选择的证书ID: </td>
<td class="left">
<input type="text" class="StandardWidth" method= "post" id="id_selected_cert_id" name="certid" enctype="multipart/form-data">
</td>
</tr>
<tr>
<td class="right"> 选择设备序列号: </td>
<td class="left">
<select class="StandardWidth" id="id_device_list" onchange="select_device(this.value)">
</select>
</td>
</tr>
<tr>
<td class="right"> 设备序列号: </td>
<td class="left">
<input type="text" class="StandardWidth" id="id_selected_device_sn">
</td>
</tr>
</table>
</div>
<!-- //////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<div id="div_app_setuserconfig" class="MainContentDIV" style="display:none">
<script>
function clear_div_app_setuserconfig_res() {
form_xtx.id_get_sign_method_res.value = '';
form_xtx.id_get_encrypt_method_res.value = '';
form_xtx.id_set_userconfig_param.value = '';
return;
}
function test_SOF_GetSignMethod() {
SOF_GetSignMethod(function(retObj) {
var algor = Number(retObj.retVal);
form_xtx.id_get_sign_method_res.value = "0x" + algor.toString(16);
});
}
function test_SOF_SetSignMethod() {
var algor = parseInt(form_xtx.id_set_sign_method_algor.value);
SOF_SetSignMethod(algor, function(retObj) {
if (retObj.retVal == 0) {
alert("设置签名算法成功");
} else {
alert("设置签名算法失败,返回值[" + retObj.retVal + "]!!!");
}
});
}
function test_SOF_GetEncryptMethod() {
SOF_GetEncryptMethod(function(retObj) {
var algor = Number(retObj.retVal);
form_xtx.id_get_encrypt_method_res.value = "0x" + algor.toString(16);
//form_xtx.id_get_encrypt_method_res.value = retObj.retVal;
});
}
function test_SOF_SetEncryptMethod() {
var algor = parseInt(form_xtx.id_set_encrypt_method_algor.value);
SOF_SetEncryptMethod(algor, function(retObj) {
if (retObj.retVal == 0) {
alert("设置加密算法成功");
} else {
alert("设置加密算法失败,返回值[" + retObj.retVal + "]!!!");
}
});
}
function test_SetUserConfig() {
var type = parseInt(form_xtx.id_set_userconfig_type.value);
var value = form_xtx.id_set_userconfig_param.value;
SetUserConfig(type, value, function(retObj) {
if (retObj.retVal) {
alert("SetUserConfig成功");
} else {
alert("SetUserConfig失败返回值[" + retObj.retVal + "]!!!");
}
});
}
</script>
<table class="customers">
</table>
</div>
<!-- //////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<div id="div_app_export_cert" class="MainContentDIV" style="display:none">
<script>
function clear_div_app_export_cert_res() {
form_xtx.id_get_user_list_res.value = '';
form_xtx.id_export_user_cert_res.value = '';
form_xtx.id_export_exchange_user_cert_res.value = '';
return;
}
function test_SOF_GetUserList() {
SOF_GetUserList(function(retObj){
form_xtx.id_get_user_list_res.value = retObj.retVal;
});
}
function getSelectCertID() {
if (form_xtx.id_selected_cert_id.value == "") {
alert("请选择证书");
form_xtx.id_selected_cert_id.focus();
return "";
}
return form_xtx.id_selected_cert_id.value;
}
function test_SOF_ExportUserCert() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_ExportUserCert(certId, function(retObj) {
form_xtx.id_export_user_cert_res.value = retObj.retVal;
});
}
function test_SOF_ExportExChangeUserCert() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_ExportExChangeUserCert(certId, function(retObj) {
form_xtx.id_export_exchange_user_cert_res.value = retObj.retVal;
});
}
</script>
<table class="customers">
<tr>
<th colspan="2">导出证书&nbsp;&nbsp;
<input type="button" value="清空数据" onclick="return clear_div_app_export_cert_res()">
</th>
</tr>
<tr>
<td class="right"> 证书ID列表: </td>
<td class="left">
<textarea class="StandardWidth" id="id_get_user_list_res" rows="3"></textarea>&nbsp;&nbsp;
<input type="button" value="获取证书列表" onclick="return test_SOF_GetUserList()">
</td>
</tr>
<tr>
<td class="right"> 签名证书: </td>
<td class="left">
<textarea class="StandardWidth" id="id_export_user_cert_res" rows="5"></textarea>&nbsp;&nbsp;
<input type="button" value="导出签名证书" onclick="return test_SOF_ExportUserCert()">
</td>
</tr>
<tr>
<td class="right"> 加密证书: </td>
<td class="left">
<textarea class="StandardWidth" id="id_export_exchange_user_cert_res" rows="5"></textarea>&nbsp;&nbsp;
<input type="button" value="导出加密证书" onclick="return test_SOF_ExportExChangeUserCert()">
</td>
</tr>
</table>
</div>
<!-- //////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<div id="div_app_login_out" class="MainContentDIV" style="display:none">
<script type="text/javascript">
function clear_div_app_login_out_res() {
form_xtx.id_login_passwd.value = '';
form_xtx.id_login_out_res.value = '';
form_xtx.id_islogin_res.value = '';
form_xtx.id_login_out_retry.value = '';
form_xtx.id_form_login_passwd.value = '';
form_xtx.id_form_login_res.value = '';
}
//异步调用sof_login回调函数
function test_login_callback(retObj) {
var certId = retObj.ctx.certId;
if (retObj.retVal) { //retObj.retVal表示sof_login结果true或false
//form_xtx.id_login_out_res.value = "证书登录成功";
form_xtx.id_login_out_res.value = "证书[" + certId + "]登录成功";
window.location.href = "/index.jsp";
// let value = document.getElementById("id_login_out_res").value;
// // 将值传到后端(这里假设使用Ajax发送请求)
// let xhr = new XMLHttpRequest();
// xhr.open("POST", "/login", true);
// xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// xhr.send("value=" + encodeURIComponent(value));
} else {
form_xtx.id_login_out_res.value = "证书[" + certId + "]登录失败";
//当登录失败时调用SOF_GetLastError取错误码errcode为79时表示pin码复杂度不符合
SOF_GetLastError(function(retObj) {
var err = retObj.retVal;
if (err == 79) {
alert("请核对pin码复杂度是否符合要求!");
}
}, retObj.ctx);
}
var str_waring = "消耗时间" + (new Date() - retObj.ctx.begin) / 1000 + "秒";
alert(str_waring);
// 此处无论登录成功失败都调用了获取重试次数
// 实际情况可能仅在登录失败时获取一下重试次数做个提醒
SOF_GetPinRetryCount(certId, function(retObj) {
var certId = retObj.ctx.certId;
form_xtx.id_login_out_retry.value = "证书[" + certId + "]重试次数剩余:" + retObj.retVal + "次...";
}, retObj.ctx);
}
function test_SOF_Login() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
var passwd = form_xtx.id_login_passwd.value;
if (passwd == "") {
alert("请输入用户密码");
form_xtx.id_login_passwd.focus();
return;
}
var time_begin = new Date();
if (form_xtx.id_login_with_cssupdate.checked) { //当勾选时进行证书更新
SOF_Login(certId, passwd, test_login_callback, {begin:time_begin, certId:certId});
//默认进行证书更新
} else {
var platform = navigator.platform.toLowerCase();
if (platform.indexOf("win") != -1){
//SOF_LoginEx第3个参数:登录成功后是否通过CSS控件进行证书更新操作1表示进行证书更新0表示不进行证书更新。
SOF_LoginEx(certId, passwd, 0, test_login_callback, {begin:time_begin, certId:certId});
}
else {
SOF_Login(certId, passwd, test_login_callback, {begin:time_begin, certId:certId});
}
}
}
function test_SOF_Logout() {
var certId = form_xtx.id_selected_cert_id.value;
if (form_xtx.id_logout_certid_all.checked) {
certId = "";
}
var strMsg;
if (certId != "") {
strMsg = certId;
} else {
strMsg = "全部";
}
SOF_Logout(certId, function(retObj) {
if (retObj.retVal) {
form_xtx.id_login_out_res.value = "证书[" + retObj.ctx.msgCertId + "]登出成功...";
} else {
form_xtx.id_login_out_res.value = "证书[" + retObj.ctx.msgCertId + "]登出失败!!!";
}
}, {msgCertId:strMsg});
}
function logout_all_click(id) {
if (id == 'id_logout_certid_cur') {
form_xtx.id_logout_certid_cur.checked = true;
form_xtx.id_logout_certid_all.checked = false;
} else if (id == 'id_logout_certid_all') {
form_xtx.id_logout_certid_cur.checked = false;
form_xtx.id_logout_certid_all.checked = true;
}
}
function test_SOF_IsLogin() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_IsLogin(certId, function(retObj) {
var certId = retObj.ctx.certId;
if (retObj.retVal) {
form_xtx.id_islogin_res.value = "证书[" + certId + "]已登录...";
} else {
form_xtx.id_islogin_res.value = "证书[" + certId + "]未登录!!!";
}
}, {certId:certId});
}
function test_SOF_GetPinRetryCount() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_GetPinRetryCount(certId, function(retObj) {
form_xtx.id_login_out_retry.value = "证书[" + certId + "]重试次数剩余:" + retObj.retVal + "次...";
});
}
var strServerSignedData = "FUy74vw8FOnzJl4MEKheNqPrOv2U/8/Wgrs2hxsV8AawIu7eKEboBNhLY+uzuYPKRhItrY+UkbRaUB2CVoi87owFn3FhitlTp4YbpBpqxdeddtvC/pMGVND4NQcbEw+qqIRq6L3kI5/ZGicz+DhehQC1oWNMWMe/h1hAPjzZXDE=";
var strServerRan = "CV3w40tGbz/E6xdEy4h2+gjcLXONfBWM";
var strServerCert = "MIIE+DCCA+CgAwIBAgIKGzAAAAAAAFlKWzANBgkqhkiG9w0BAQUFADBSMQswCQYDVQQGEwJDTjENMAsGA1UECgwEQkpDQTEYMBYGA1UECwwPUHVibGljIFRydXN0IENBMRowGAYDVQQDDBFQdWJsaWMgVHJ1c3QgQ0EtMTAeFw0yMDA1MjUxNjAwMDBaFw0yMTA2MjUxNTU5NTlaMEsxCzAJBgNVBAYTAkNOMRIwEAYDVQQDDAnotbXmsLjnnIExKDAmBgkqhkiG9w0BCQEWGXpoYW95b25nc2hlbmdAYmpjYS5vcmcuY24wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALgaT9lsB6duKSsmVbhotgAB2nsTZMKPLPBdLO+Nchvcj7C0ZrePd/m0KzbXWpwk0ZOTa6XsUmGZhHo4FUZr5i9a1GblX3UAY/cu1cIk02IvvoCL/Dh7GAH9eCZAlyXLKhUB1wspBpPkGwIiB5l0f2/ds6C8sR3NOojG3Sx2i9xrAgMBAAGjggJZMIICVTAfBgNVHSMEGDAWgBSsO+yvDKNQDu+vr7RPbDvb0VfSiTAdBgNVHQ4EFgQUWsU79eTB2d2qdLouBzQn7WbBNdowCwYDVR0PBAQDAgbAMIGvBgNVHR8EgacwgaQwbaBroGmkZzBlMQswCQYDVQQGEwJDTjENMAsGA1UECgwEQkpDQTEYMBYGA1UECwwPUHVibGljIFRydXN0IENBMRowGAYDVQQDDBFQdWJsaWMgVHJ1c3QgQ0EtMTERMA8GA1UEAxMIY2EzY3JsMzAwM6AxoC+GLWh0dHA6Ly9sZGFwLmJqY2Eub3JnLmNuL2NybC9wdGNhL2NhM2NybDMwLmNybDAJBgNVHRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIA/zAdBgUqVgsHAQQUU0YzNzI1MjYxOTgyMTIwMjY2NzkwHQYFKlYLBwgEFFNGMzcyNTI2MTk4MjEyMDI2Njc5MCAGCGCGSAGG+EQCBBRTRjM3MjUyNjE5ODIxMjAyNjY3OTAbBggqVoZIAYEwAQQPMTAyMDgwMDA2OTAzMzAwMCUGCiqBHIbvMgIBBAEEFzhDQFNGMzcyNTI2MTk4MjEyMDI2Njc5MCoGC2CGSAFlAwIBMAkKBBtodHRwOi8vYmpjYS5vcmcuY24vYmpjYS5jcnQwDwYFKlYVAQEEBjEwMDA4MDBABgNVHSAEOTA3MDUGCSqBHIbvMgICATAoMCYGCCsGAQUFBwIBFhpodHRwOi8vd3d3LmJqY2Eub3JnLmNuL2NwczATBgoqgRyG7zICAQEeBAUMAzUyMDANBgkqhkiG9w0BAQUFAAOCAQEAaFIE1vKWRqZudqnTPuY/QRYo8R1itRg5OIDcQ51AKBtaxqcMCzXqZwP/zMU36fOT96tCbeIte6jFeJaM3J3Zp5gFZcP4TKxLnQ/FGRMQaKyrJ0Lvi7zNfk48iQzKjKmRAn8XOajA195kX5tJ2YMNamAYVmMgtRrK5YcHg7P9SZC9bqT3IYxAoebQcv666l8nyNQyWnP8pvbPNOvs6xZZzyXMPaHvQK8vV1kSm1VIqazQNvPWRNoE0CETS3g2jwmW4O34/jzrMbG0sXQToDEOkYZVSLCT70RnGrKzJ/F3hsy4G2yPY7B0jRkCzVO1+tSzN7iMDUC/SM7B9Jhl9jCzVQ==";
function test_FormLogin() {
var certId = getSelectCertID();
if (certId == "") {
return;
}
var passwd = form_xtx.id_form_login_passwd.value;
Login("form_xtx", certId, passwd, "", function(ret) {
if (ret) {
form_xtx.id_form_login_res.value = "表单登录成功...";
} else {
form_xtx.id_form_login_res.value = "表单登录失败!";
}
});
}
</script>
<table class="customers">
<tr>
<th colspan="2">登录登出&nbsp;&nbsp;
<input type="button" value="清空数据" onclick="return clear_div_app_login_out_res()">
</th>
</tr>
<tr>
<td class="right"> 密码: </td>
<td class="left">
<input type="password" class="StandardWidth" id="id_login_passwd">&nbsp;&nbsp;
<!-- <input type="button" value="登录" onclick="sendResultToBackend()">-->
<input type="button" value="登录" onclick="return test_SOF_Login()">
<input type="checkbox" id="id_login_with_cssupdate">是否通过CSS更新证书
</td>
</tr>
<tr>
<td class="right"> 登录结果: </td>
<td class="left">
<input type="text" class="StandardWidth" name="id_login_out_res">
<input type="button" value="登出" onclick="return test_SOF_Logout()">
<input type="checkbox" name="name_logout_all" id="id_logout_certid_cur" onclick="logout_all_click('id_logout_certid_cur');" checked=true />登出当前证书
<input type="checkbox" name="name_logout_all" id="id_logout_certid_all" onclick="logout_all_click('id_logout_certid_all');" />登出全部证书
</td>
</tr>
<tr>
<td class="right"> 检查是否登录的结果: </td>
<td class="left">
<input type="text" class="StandardWidth" name="id_islogin_res">&nbsp;&nbsp;
<input type="button" value="检查是否登录" onclick="return test_SOF_IsLogin()">
</td>
</tr>
<tr>
<td class="right"> 密码重试次数: </td>
<td class="left">
<input type="text" class="StandardWidth" name="id_login_out_retry">&nbsp;&nbsp;
<input type="button" value="获取密码重试次数" onclick="return test_SOF_GetPinRetryCount()">
</td>
</tr>
</table>
</div>
<!-- //////////////////////////////////////////////////////////////////////////////////////////////////////// -->
<div id="div_app_change_pin" class="MainContentDIV" style="display:none">
<script>
function clear_div_app_change_pin_res() {
form_xtx.id_change_user_passwd_old.value = '';
form_xtx.id_change_user_passwd_new_1.value = '';
form_xtx.id_change_user_passwd_new_2.value = '';
form_xtx.id_change_user_passwd_res.value = '';
form_xtx.id_change_user_passwd_retry.value = '';
}
function test_SOF_ChangePassWd()
{
var certId = getSelectCertID();
if (certId == "") {
return;
}
var oldpin = form_xtx.id_change_user_passwd_old.value;
var newpin1 = form_xtx.id_change_user_passwd_new_1.value;
var newpin2 = form_xtx.id_change_user_passwd_new_2.value;
if (oldpin == "") {
alert("请输入原密码");
form_xtx.id_change_user_passwd_old.focus();
return;
}
if (newpin1 == "") {
alert("请输入新密码");
form_xtx.id_change_user_passwd_new_1.focus();
return;
}
if (newpin2 == "") {
alert("请输入新密码");
form_xtx.id_change_user_passwd_new_2.focus();
return;
}
if (newpin1 != newpin2) {
alert("两次输入的新密码不一致");
form_xtx.id_change_user_passwd_new_2.focus();
return;
}
SOF_ChangePassWd(certId, oldpin, newpin1, function(retObj) {
if (retObj.retVal) {
form_xtx.id_change_user_passwd_res.value = "修改证书密码成功";
} else {
form_xtx.id_change_user_passwd_res.value = "修改证书密码失败";
}
});
// 此处无论修改密码成功失败都调用了获取重试次数
// 实际情况可能仅在修改失败时获取一下重试次数做个提醒
SOF_GetPinRetryCount(certId, function(retObj) {
form_xtx.id_change_user_passwd_retry.value = "证书[" + certId + "]重试次数剩余:" + retObj.retVal + "次...";
});
}
function test_SOF_GetRetryCount()
{
var certId = getSelectCertID();
if (certId == "") {
return;
}
SOF_GetPinRetryCount(certId, function(retObj) {
form_xtx.id_change_user_passwd_retry.value = "证书[" + certId + "]重试次数剩余:" + retObj.retVal + "次...";
});
}
</script>
<table class="customers">
<tr>
<th colspan="2">修改密码&nbsp;&nbsp;
<input type="button" value="清空数据" onclick="return clear_div_app_change_pin_res()">
</th>
</tr>
<tr>
<td class="right"> 原密码: </td>
<td class="left">
<input type="password" class="StandardWidth" id="id_change_user_passwd_old">
</td>
</tr>
<tr>
<td class="right"> 新密码: </td>
<td class="left">
<input type="password" class="StandardWidth" id="id_change_user_passwd_new_1">
</td>
</tr>
<tr>
<td class="right"> 新密码确认: </td>
<td class="left">
<input type="password" class="StandardWidth" id="id_change_user_passwd_new_2">&nbsp;&nbsp;
<input type="button" value="修改密码" onclick="return test_SOF_ChangePassWd()">
</td>
</tr>
<tr>
<td class="right"> 修改结果: </td>
<td class="left">
<input type="text" class="StandardWidth" id="id_change_user_passwd_res">
</td>
</tr>
<tr>
<td class="right"> 密码重试次数: </td>
<td class="left">
<input type="text" class="StandardWidth" id="id_change_user_passwd_retry">&nbsp;&nbsp;
<input type="button" value="获取密码重试次数" onclick="return test_SOF_GetRetryCount()">
</td>
</tr>
</table>
</div>
</form>
</body>
<script>
function customFireEvent(objId, eventName) {
var obj = document.getElementById(objId);
if (obj == undefined) {
return;
}
if (obj.fireEvent) {
obj.fireEvent("on" + eventName);
} else if (obj.dispatchEvent) {
var e = document.createEvent('HTMLEvents');
e.initEvent(eventName, false, false);
obj.dispatchEvent(e);
}
}
function FillDeviceList() {
GetAllDeviceSN(function(retObj){
var obj = document.getElementById("id_device_list");
if (obj == undefined) {
return;
}
var i, n = obj.length;
for (i = 0; i < n; i++) {
obj.remove(0);
}
var strDeviceList = retObj.retVal;
while (true) {
var pos = strDeviceList.indexOf(";");
if (pos <= 0 ) {
break;
}
var strOneDevice = strDeviceList.substring(0, pos);
var objItem = new Option(strOneDevice, strOneDevice);
obj.options.add(objItem);
var len = strDeviceList.length;
strDeviceList = strDeviceList.substring(pos + 1, len);
}
customFireEvent('id_cert_list', 'change');
customFireEvent('id_device_list', 'change');
});
}
function test_SOF_GetVersion() {
SOF_GetVersion(function(retObj) {
form_xtx.id_xtx_version.value = retObj.retVal;
});
}
test_SOF_GetVersion();
SetUserCertList("id_cert_list");
FillDeviceList();
SetOnUsbKeyChangeCallBack(FillDeviceList);
</script>
</html>

@ -173,7 +173,7 @@ a:visited {
size="20" /></td>
</tr>
<tr>
<td height="33" align="right" style="padding-right: 5px">密&nbsp;&nbsp;码:</td>
<td height="33" align="right" style="padding-right: 5px">密&nbsp;码:</td>
<td colspan="2"><INPUT class=textbox id=txtUserPassword
value="123456" type=password name=password datatype="text"
size="21" /></td>
@ -196,7 +196,14 @@ a:visited {
<td>&nbsp;</td>
<td colspan="2" height="25px"><input name="btnLogin"
onclick="return check();" type="image"
src="/images/btn.gif" /></td>
src="/images/btn.gif" />
<A id=LinkButton2
href="/login.html"
style="font-size: 15px;">UKEY登录
</A>
</td>
</tr>
</table>
<div id="q1" style="display: block;" align="center">

@ -1,5 +1,7 @@
<%@include file="/auth.jsp"%>
<%@page import="com.zky.manager.Util" %>
<%@ page import="com.zky.bjca.SM4" %>
<%@ page import="cn.org.bjca.utils.Base64" %>
<%@page language="java" contentType="text/html;charset=utf-8"%>
<jsp:useBean id="getPara" scope="application" class="com.zky.para.SyncPara"/>
<%
@ -35,7 +37,7 @@ border-right:#D8E9FE 1px solid;
<%if(bufInfo.fget("notify_staffed",0).equals("")){ %>
未填写
<%}else{ %>
<%=bufInfo.fget("notify_staffed",0)%><%} %></td>
<%=SM4.SM4Decrypt(Base64.decode(bufInfo.fget("notify_staffed",0)))%><%} %></td>
<td class="cell3">通知日期</td>
<td class="cell4">
<%if(bufInfo.fget("notify_time",0).equals("")){ %>

@ -1,5 +1,7 @@
<%@include file="/auth.jsp"%>
<%@page import="com.zky.manager.Util" %>
<%@ page import="com.zky.bjca.SM4" %>
<%@ page import="cn.org.bjca.utils.Base64" %>
<%@page language="java" contentType="text/html;charset=utf-8"%>
<jsp:useBean id="getPara" scope="application" class="com.zky.para.SyncPara"/>
<%
@ -27,7 +29,7 @@
<tr bgcolor="#FFFFFF">
<td class="cell1" height="30" valign="middle">通知人员</td>
<td class="cell2" height="30" valign="middle">
<font size=2><%=bufInfo.fget("notify_staffed",0)%></font>
<font size=2><%=SM4.SM4Decrypt(Base64.decode(bufInfo.fget("notify_staffed",0)))%></font>
</td>
<td class="cell1" height="30" valign="middle">通知日期</td>
<td class="cell2" height="30" valign="middle">
@ -37,7 +39,7 @@
<tr bgcolor="#FFFFFF">
<td class="cell1" height="30" valign="middle">被通知人</td>
<td class="cell2" height="30" valign="middle">
<font size=2><%=bufInfo.fget("notify_staffed",0) %></font>
<font size=2><%=SM4.SM4Decrypt(Base64.decode(bufInfo.fget("notify_staffed",0))) %></font>
</td>
<td class="cell1" height="30" valign="middle">通知单位</td>
<td class="cell2" height="30" valign="middle">

@ -8,6 +8,8 @@
String operate = (String)request.getParameter("operate");
String empid = "";
String empname = "";
String certname = "";
String certid = "";
String sj = Common.convertNull(request.getParameter("sj"));
String sex = "";
String birthday = "";
@ -48,6 +50,8 @@
frameworkid = buf.fget("FRAMEWORKNAME ",pos);
empid = buf.fget("empid ",pos);
empname = buf.fget("empname ",pos);
certname = buf.fget("certname ",pos);
certid = buf.fget("certid ",pos);
sj = buf.fget("frameworkid ",pos);
//birthday = Common.convertNull(buf.fget("birthday ",pos)).substring(0,10);
birthday = buf.fget("birthday ",pos);
@ -118,7 +122,7 @@ html { overflow-x:hidden; overflow-y:hidden; }
</tr>
</table>
<table width="99%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="d8e9fe" class="table02">
<tr bgcolor="#FFFFFF">
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">所属地市</td>
<td class="cell2" width="22%">
<%=frameworkid%>
@ -147,6 +151,22 @@ html { overflow-x:hidden; overflow-y:hidden; }
<%=nationstates%>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">UKEY名</td>
<td class="cell2" width="22%">
<%=certname%>
</td>
<td class="cell1">UKEY id</td>
<td class="cell2" width="22%">
<%=certid%>
</td>
<td class="cell1">是否为要害部门</td>
<td class="cell2">
<%=yaohaidemept %>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">性别</td>
<td class="cell2">
@ -166,6 +186,8 @@ html { overflow-x:hidden; overflow-y:hidden; }
<td class="cell2">
<%=birthday%>
</td>
<td class="cell1">拟任岗位</td>
<td class="cell2">
<%=empjob%>
@ -229,12 +251,10 @@ html { overflow-x:hidden; overflow-y:hidden; }
<%} %>
</td>
<td class="cell1">是否为要害部门</td>
<td class="cell2">
<%=yaohaidemept %>
</tr>
</table>
<table width="99%" style="height: 35" border="0" align="center" cellpadding="0" cellspacing="0">
<table width="99%" style="height:35px" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="3%"><img src="/images/little.gif" width="12" height="12"></td>
<td width="97%" class="font12">详细信息</td>

@ -9,6 +9,8 @@
String operate = (String) request.getParameter("operate");
String empid = "";
String empname = "";
String certname = "";
String certid = "";
String sj = Common.convertNull(request.getParameter("sj"));
String sex = "";
String birthday = "";
@ -44,9 +46,12 @@
yaohaidemept = buf.fget("yaohaidemept", pos);
empid = buf.fget("empid", pos);
empname = buf.fget("empname", pos);
certname = buf.fget("certname", pos);
certid = buf.fget("certid", pos);
sj = buf.fget("frameworkid ", pos);
birthday = Common.convertNull(buf.fget("birthday ", pos))
.substring(0, 10);
// birthday = Common.convertNull(buf.fget("birthday ", pos))
// .substring(0, 10);
birthday = buf.fget("birthday ", pos);
sex = buf.fget("sex ", pos);
empcontaddr = buf.fget("empcontaddr ", pos);
empcontphone = buf.fget("empcontphone ", pos);
@ -149,7 +154,17 @@ function check(operate) {
alert("请输入人员姓名!");
form1.empname.focus();
return false;
}
}
if (form1.certname.value == "") {
alert("请输入UKEY名称");
form1.certname.focus();
return false;
}
if (form1.certid.value == "") {
alert("请输入UKEY Id");
form1.certid.focus();
return false;
}
if (form1.empid.value == "") {
alert("请输入人员编号!");
form1.empid.focus();
@ -320,12 +335,16 @@ html {
<td class="cell1">下属部门</td>
<td class="cell2"><input type="text" name="part">&nbsp;&nbsp;
<font color="#ff0000">* (如无下属部门,请填"无部门")</font></td>
<td class="cell1" style="line-height: 30px;">人员姓名</td>
<td class="cell2"><input type="text" name="empname"
value="<%=empname%>" onblur="checkLength(this,40);"
maxlength="8"
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">&nbsp;&nbsp;&nbsp;<font
color="#ff0000">*</font></td>
<td class="cell1">人员编码</td>
<td class="cell2"><input type="text" id="empid"
onblur="onClick()" name="empid" value="<%=empid%>" <%=readonly%>
@ -333,6 +352,41 @@ html {
color="#ff0000">*</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">UKEY名</td>
<td class="cell2"><input type="text" name="certname"
value="<%=certname%>" onblur="checkLength(this,100);"
maxlength="10"
onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">&nbsp;&nbsp;&nbsp;<font
color="#ff0000">*</font></td>
<td class="cell1" style="line-height: 30px;">UKEY id</td>
<td class="cell2"><input type="text" name="certid"
value="<%=certid%>" onblur="checkLength(this,80);"
maxlength="50">
<font color="#ff0000">*</font></td>
<td class="cell1">是否为要害部门</td>
<td class="cell2"><input type="radio" checked="checked"
name="yaohaidemept" value="是">是&nbsp;&nbsp;&nbsp;<input
type="radio" name="yaohaidemept" value="否">否
&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">性别</td>
<td class="cell2"><select class='aselect' name="sex"
@ -355,7 +409,8 @@ html {
</select>&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
<td class="cell1">出生年月</td>
<td class="cell2"><input id="birthday" name='birthday'
type='text' readonly=true value='<%=birthday%>'
<%-- type='text' readonly=false value='<%=birthday%>'--%>
type='text'
onclick=" fPopCalendar(birthday,birthday); return true;"
onblur="agesync()"> &nbsp;&nbsp;<font color="#ff0000">*</font>
</td>
@ -380,6 +435,8 @@ html {
%>
</select>&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">涉密程度</td>
<td class="cell2"><select class='aselect' name="empschool"
@ -408,34 +465,34 @@ html {
<option value="1">审计员</option>
<option value="2">操作员</option>
</select>&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
<td class="cell1">是否为要害部门</td>
<td class="cell2"><input type="radio" checked="checked"
name="yaohaidemept" value="是">是&nbsp;&nbsp;&nbsp;<input
type="radio" name="yaohaidemept" value="否">否
&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">民族</td>
<td class="cell2"><select class='aselect'
name="nationstate" value="<%=nationstate%>">
<%
if (nationstate.equals("")) {
out.println(Para.getStaticNationstate(getPara, "NATIONSTATE"));
if (!nationstate.equals("")) {
%>
<script>
form1.nationstate.value='<%=nationstate%>';
</script>
<%
name="nationstate" value="<%=nationstate%>">
<%
if (nationstate.equals("")) {
out.println(Para.getStaticNationstate(getPara, "NATIONSTATE"));
if (!nationstate.equals("")) {
%>
<script>
form1.nationstate.value='<%=nationstate%>';
</script>
<%
}
} else {
out.println(getPara.getSParaFilter("td_s_static", "data_code",
"dataname", "type_code", "NATIONSTATE", "data_code",
nationstate));
}
%>
} else {
out.println(getPara.getSParaFilter("td_s_static", "data_code",
"dataname", "type_code", "NATIONSTATE", "data_code",
nationstate));
}
%>
</select>&nbsp;&nbsp;&nbsp;<font color="#ff0000">*</font></td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="5"></td>
</tr>
</table>
@ -525,8 +582,7 @@ html {
if (!emppolitics.equals("")) {
%>
<script>
form1.emppolitics.value='<%=emppolitics%>
';
form1.emppolitics.value='<%=emppolitics%>';
</script>
<%
}

@ -7,6 +7,11 @@
String empid = Common.convertNull(request.getParameter("empid"));
String empstate = request.getParameter("empstate");
String empname = Common.convertNull(request.getParameter("empname"));
String certname = Common.convertNull(request.getParameter("certname"));
String certid = Common.convertNull(request.getParameter("certid"));
String operate = (String) request.getParameter("operate");
String sj = Common.convertNull(request.getParameter("sj"));
String qj = Common.convertNull(request.getParameter("qj"));
@ -48,6 +53,12 @@ select {
if (!Common.isNull(empname)) {
out.println("form1.empname.value='" + empname + "';");
}
if (!Common.isNull(certname)) {
out.println("form1.certname.value='" + certname + "';");
}
if (!Common.isNull(certid)) {
out.println("form1.certid.value='" + certid + "';");
}
if (!Common.isNull(qj)) {
out.println("form1.qj.value='" + qj + "';");
}
@ -165,9 +176,21 @@ select {
<td class="cell2"><select class='aselect' name="pcs" setValue="<%=pcs%>">
<%if (sj.equals("0930")) {%><%=Para.getXx1(getPara, sj)%><%} else { %><%=Para.getXx(getPara, qj)%><% }%>
</select></td>
<td class="cell1">人员姓名</td>
<td class="cell2"><input type="text" name="empname"
setValue="<%=empname%>" /></td>&nbsp;&nbsp;
setValue="<%=empname%>" /></td>
<td class="cell1">UKEY名</td>
<td class="cell2"><input type="text" name="certname"
setValue="<%=certname%>" /></td>
<td class="cell1">UKEY id</td>
<td class="cell2"><input type="number" name="certid"
setValue="<%=certid%>" /></td>
<td colspan="2" width="30%"><input name="button1"
onclick="check('queryEmp');" border="0" type="image"
src="../../../images1/cx.png" /></td>
@ -217,8 +240,9 @@ select {
width="10px">人员编号</span> <span width="10px">人员状态</span> <span
width="10px">人员姓名</span> <span width="7px">人员性别</span> <span
width="7px">涉密程度</span> <span width="10px">是否为要害部门</span> <span
width="10px">联系电话</span> <span width="7px">政治面貌</span> <span
width="10px">出生年月</span> <span width="15px">管理</span>
width="10px">联系电话</span> <span width="7px">政治面貌</span>
<span width="10px">出生年月</span>
<span width="15px">管理</span>
</div>
</div>
<div class="gridBody">
@ -276,8 +300,8 @@ select {
style="cursor: pointer;" /></a> &nbsp; <%}else{ %> <%} %> <% } else { %>
<%
if(employeeid.equals(login.getEmpid()) || login.getEmpid().equals("ADMIN") || login.getEmpid().equals("ZHKYADMIN")){
%> <a
href=" /servlet/EmpManage?operate=queryEmpselectEmpId&empid=<%=tempEmpid%>&nationstate=<%=tenationstate%>"><img
%>
<a href=" /servlet/EmpManage?operate=queryEmpselectEmpId&empid=<%=tempEmpid%>&nationstate=<%=tenationstate%>"><img
border="0" src="../../../images1/read_document.png" ALT="查看"
style="cursor: pointer;" /></a> &nbsp; <input border="0"
type="image" src="../../../images1/edit.gif" ALT="修改"

@ -8,6 +8,8 @@
String operate = (String)request.getParameter("operate");
String empid = "";
String empname = "";
String certname = "";
String certid = "";
String sj = Common.convertNull(request.getParameter("sj"));
String sex = "";
String birthday = "";
@ -44,6 +46,8 @@
frameworkid = buf.fget("FRAMEWORKNAME ",pos);
empid = buf.fget("empid ",pos);
empname = buf.fget("empname ",pos);
certname = buf.fget("certname ",pos);
certid = buf.fget("certid ",pos);
sj = buf.fget("frameworkid ",pos);
birthday = Common.convertNull(buf.fget("birthday ",pos)).substring(0,10);
sex = buf.fget("sex ",pos);
@ -127,7 +131,7 @@ html { overflow-x:hidden; overflow-y:hidden; }
</tr>
</table>
<table width="99%" border="0" align="center" cellpadding="2" cellspacing="1" bgcolor="d8e9fe" class="table02">
<tr bgcolor="#FFFFFF">
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">所属地市</td>
<td class="cell2" width="22%">
<%=frameworkid%>
@ -169,6 +173,18 @@ html { overflow-x:hidden; overflow-y:hidden; }
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">UKEY名称</td>
<td class="cell2">
<%=certname%>
</td>
<td class="cell1">UKEY id</td>
<td class="cell2">
<%=certid%>
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td class="cell1" style="line-height: 30px;">性别</td>
<td class="cell2">
@ -219,7 +235,7 @@ html { overflow-x:hidden; overflow-y:hidden; }
<td class="cell1" style="line-height: 30px;">涉密程度</td>
<td class="cell2">
<%=empschool %>
<%
<%
if(empschool.equals("0") ){
%>
核心
@ -229,8 +245,8 @@ html { overflow-x:hidden; overflow-y:hidden; }
核心
<%
}else if(empschool.equals("2") ){
%>
一般
%>
一般
<%} %>
</td>

Loading…
Cancel
Save