function checkNavigator() { var browser = navigator.appName; // var b_version=navigator.appVersion; $("#navigator").val(browser); } function checkParent() { if (self != top) { top.location.reload(); return false; } return true; } function addCookie(objName, objValue, objHours) {// 添加cookie var str = objName + "=" + escape(objValue); if (objHours > 0) {// 为0时不设定过期时间,浏览器关闭时cookie自动消失 var date = new Date(); var ms = objHours * 3600 * 1000; date.setTime(date.getTime() + ms); str += "; expires=" + date.toGMTString(); } document.cookie = str; // alert("添加cookie成功"); } /** * 动态选择域名 */ var domain = null; var username = null; var running = true; function dynamicDomain(userObj) { if (!running) { // alert("域名选择未开放!"); return; } if (domain != null && domain != "" && (username == $(userObj).val())) { return; } $.ajax({ url : yUrl("/domain.do"), dataType : "json", type : "post", async : false, data : { "account.loginName" : function() { return $(userObj).val(); } }, error : function() { domain = null }, success : function(json) { running = json.running; if (json.running) { username = $(userObj).val(); domain = json.domain; } } }); var login_action = $("#hidden_login_url").val(); if (domain != null && domain != "") { // fetch randnumber var rand_domain = domain + yUrl("/randnumber.do"); $.getJSON(rand_domain + "?tagmode=any&format=json&jsoncallback=?", function(json) { if (json.randnumber != null && json.randnumber != "") $('#hidden_randnumber').attr("value", json.randnumber); // change jsessionid if (json.sessionid != null && json.sessionid != "") { // alert(json.sessionid); // $.cookie('JSESSIONID',json.sessionid ); // $.cookie('JSESSIONID', json.sessionid, // {domain: "'"+domain+"'", secure: true}); // $.cookie('REFRESH-HEADER-USERNAME', // $("#username").val(), {domain: // "'"+domain+"'", secure: true}); // $.cookie('REFRESH-HEADER-PARTY', // $("#password").val(), {domain: // "'"+domain+"'", secure: true}); // $("#hidden_login_url").attr("value",$("#hidden_login_url").val()+';jsessionid='+json.sessionid); $("#hidden_sesssionid").val(json.sessionid); $("#domain").val(domain); // +';jsessionid='+json.sessionid /* * $("#login_form").attr("action",domain + * login_action+';jsessionid='+json.sessionid); */ } }); // $("#login_form").attr("action",domain + login_action); } // alert( $("#login_form").attr("action") ); } function enterKey(obj) { if (event.keyCode == 13) { if ($(obj).attr("id") == "username") { $("#password").focus(); } else { login(); } } } /** * 得出今天计算开始,多少天前日期 */ function showdate(n) { var uom = new Date(new Date() - 0 + n * 86400000); uom = uom.getFullYear() + "-" + (uom.getMonth() + 1) + "-" + uom.getDate(); return uom; } /** * 比较两个日期函数 */ function CompareDate(d1, d2) { return ((new Date(d1.replace(/-/g, "\/"))) > (new Date(d2.replace(/-/g, "\/")))); } function checkinput() { checkParent(); if ($("#username").attr('value') == '') { showMessage("'用户名'不能为空!"); $("#username").focus(); return false; } else if ($("#password").attr('value') == '') { showMessage("'密码'不能为空!"); $("#password").focus(); return false; } else if ($("#captcha").attr('value') == '') { showMessage("'验证码'不能为空!"); $("#password").focus(); return false; } setScope(); $("#password") .attr("value", "{SHA}" + $.sha1($("#password").attr("value"))); return true; } //设置密码得分 function setScope(){ $("#scope").val($.getValue($("#password").val())); } /** * 显示提示信息 */ function showMessage(msg) { if ($('.error').html() == null) $('.messages').append("
" + msg + "
"); else $('.error').text(msg); } function refresh() { var img_src = yUrl("/images/kaptcha.jpg"); var src = img_src + "?rnd=" + Math.random(); $("#jcaptcha").attr("src", src); } function login() { if (!checkinput()) return false; try { // 判断浏览器版本,若低于IE8则提示版本过低 var yjsBrowser = navigator.appName var yjsBVersion = navigator.appVersion var yjsVersion = yjsBVersion.split(";"); var yjsTrimVersion = yjsVersion[1].replace(/[ ]/g, ""); // 注意!!! if (yjsBrowser == "Microsoft Internet Explorer") { if (yjsTrimVersion == "MSIE6.0" || yjsTrimVersion == "MSIE7.0") { alert("浏览器检测:请使用版本号为8及以上的IE浏览器或谷歌内核浏览器、火狐浏览器"); // return false; } } else { // alert("浏览器检测:建议您使用版本号大于9的IE浏览器"); // return false; } } catch (e) { // alert("浏览器检测:请使用版本号大于9的IE浏览器、谷歌内核浏览器或者火狐浏览器"); // return false; } startLogin(); } function loginIngImg() { $("#pic1").hide(); $("#pic2").hide(); $("#loading").show(); $("#wait").show(); } function loginImg() { $("#pic1").show(); $("#pic2").show(); $("#loading").hide(); $("#wait").hide(); } function goover(par) { if (par == 1) { document.getElementById("pic1").src = yUrl("/styles/default/images/login-btn-bg_04.png"); } if (par == 2) { document.getElementById("pic2").src = yUrl("/styles/default/images/regedit-btn-bg_04.png"); } else { document.getElementById("pic3").src = yUrl("/styles/default/images/regedit-btn-bg_04.png"); } } function goout(par) { if (par == 1) { document.getElementById("pic1").src = yUrl("/styles/default/images/login-btn-bg_03.png"); } if (par == 2) { document.getElementById("pic2").src = yUrl("/styles/default/images/regedit-btn-bg_03.png"); } else { document.getElementById("pic3").src = yUrl("/styles/default/images/regedit-btn-bg_03.png"); } } var g_ticket; function startLogin() { loginIngImg(); netca_checkServiceOK(SuccessService, FailedServicec); } function SuccessService() { // alert("检测本地证书服务正常"); // isPKIInstalled(); loginByCert(); } var result = true; function FailedServicec() { // alert("连接本地证书服务失败!"); // 检测是否需要短信登录 isMsgLoginOrQrcodeLogin(); if (!result) { // 无CA登录 doLogin(); } } function InsertCallBack(res) { // 当前插入key 可以开始登陆签名 loginByCertEvent(); } function UnInsertCallBack(res) { loginImg(); alert("未找到证书介质,请插入一个数字证书介质KEY"); FailedServicec(); } function loginByCert() { // 检测是否打开客户端 // alert("检测是否打开客户端"); // netca_getCertStringAttribute("", "", "", // "",successCallBack,failedCallBack); // 检测客户端版本 // alert("111"); checkVersion(); // netca_getVersionInfo(SuccessGetVersionInfoCallBack, // FailedGetVersionInfoCallBack); } function FailedGetNetcaVersionInfoCallBack(res) { // 驱动无法使用 // alert("驱动环境异常,请安装最新驱动"); // ProcessNetcaDriverUpdate("您未安装驱动或驱动异常!\n请下载安装驱动程序,是否确认下载"); loginImg(); alert("请先安装网证通相关驱动,进行无ca登录" + res.msg); FailedServicec(); } function SuccessGetNetcaVersionInfoCallBack(res) { // 获取版本 if (checkMustUpdate(res.Version)) { // 版本过低 // ProcessNetcaDriverUpdate("您的驱动版本过低,请安装最新驱动"); if (confirm("您的驱动版本过低,请安装最新驱动,是否继续登录?")) { netca_isInsertKey("", "", "", InsertCallBack, UnInsertCallBack); } return; } else { netca_isInsertKey("", "", "", InsertCallBack, UnInsertCallBack); } } /* * function SuccessGetVersionInfoCallBack(res) { var * versionInfo=res.VersionInfo; var version =res.Version; * //alert("网证通相关驱动已经安装\n版本号为:"+version+"\n版本号信息为:"+versionInfo+"\n版本UID为:"+res.UID); * netca_isInsertKey("", "", "", InsertCallBack, UnInsertCallBack); } * * function FailedGetVersionInfoCallBack(res) { loginImg(); * alert("请先安装网证通相关驱动,进行无ca登录"+res.msg); * $("#login_form").attr("action",""); * $("#login_form").submit(); } */ function SuccessSignedDataSignCallBack(res) { // loginImg(); isMsgLoginOrQrcodeLogin(); if (!result) { var signValue = res.signValue; $("#signdata").val(signValue); $("#j_ca").val("netca"); doLogin(); } } function FailedSignedDataSignCallBack(res) { loginImg(); alert(res.msg); } // 步骤2:前端对随机数进行签名,并把签名结果发送到服务端 function loginByCertEvent() { /* 如果需要后台进行证书+网关验证 */ try { g_ticket = $('#hidden_randnumber').val(); // getRandomByServer(5); var certEncode = ""; var type = "{\"UIFlag\":\"default\", \"InValidity\":true,\"Type\":\"signature\", \"Method\":\"device\",\"Value\":\"any\"}"; var condition = "IssuerCN~'NETCA' && InValidity='True' && CertType='Signature'"; var tbs = utf8_to_b64(g_ticket); var useSubjectKeyId = false; var useQ7 = false; var detached = false; var tsaURL = ""; var includeCertOption = 2; netca_signedDataSign(certEncode, type, condition, tbs, useSubjectKeyId, useQ7, tsaURL, detached, includeCertOption, "", SuccessSignedDataSignCallBack, FailedSignedDataSignCallBack); // 带原文签名 } catch (e) { loginImg(); alert("登录失败!" + e.description); return null; } } function preSql(obj) { /*var dom = $(obj); var re = /select|update|delete|exec|or|like|order\*|count|’|"|=|\*|\+|-|;|>|<|%/i; var rebase64 = /select|update|delete|exec|or|like|order/i; if (re.test(dom.val().toLowerCase())) { alert("请您不要输入特殊字符和SQL关键字!"); $(obj).val(""); } else { // 防[数字base64]注入 var str = dom.val(); var j = 0; for ( var i = 0; i < str.length; i++) { var ts = str[i]; if (ts != '0' && ts != '1' && ts != '2' && ts != '3' && ts != '4' && ts != '5' && ts != '6' && ts != '7' && ts != '8' && ts != '9') { j = i; break; } } str = str.substring(j); try { var result = b64Decode(str); if (rebase64.test(result.toLowerCase())) { alert("请您不要输入Base64编码!"); $(obj).val(""); } } catch (e) { // alert(e); } }*/ } function b64Decode(str) { return decodeURIComponent(escape(window.atob(str))); } function doLogin() { $("#login_form").attr("action", yUrl("/login.do")); $("#login_form").submit(); } function initTrain() { redirectTo(yUrl("/member/register/initTrain.do")); } function initRegister() { $("#init_register_form").attr("action", yUrl("/member/register/init.do")); $("#init_register_form").submit(); } // 是否需要短信登录验证或者二维码验证 function isMsgLoginOrQrcodeLogin() { // 检测该账户是否需要短信验证或者二维码验证 $.ajax({ url : yUrl("/security/account/isMsgLogin.do"), data : { 'account.loginName' : $('#username').val() ,'account.password' : $('#password').val() }, type : "post", dataType : 'json', async : false, cache : false, error : function() { }, success : function(data) { if (data.flag == "1") { popupMsgSend(); } else if (data.flag == "-1") { showMessage("您已开通短信验证功能,请联系管理员设置手机号!"); $('#password').val(""); loginImg(); } else if (data.flag == "2") { //二维码登录验证 doQrcodeLogin(); } else { result = false; } } }); } function popupMsgSend() { $("#popup").attr("title", "短信验证登录"); popup(yUrl("/security/account/popupMsgSend.do"), { 'account.loginName' : $('#username').val() }); } function popup(url, param) { var popup = $("#popup"); $(popup).dialog({ resizable : true, height : 400, width : 500, modal : true, close : function(event, ui) { showMessage("已终止短信验证!"); loginImg(); $('#password').val(""); $(this).dialog('destroy').html(''); }, buttons : { "确认" : function() { checkMobileCaptcha(); }, "关闭" : function() { showMessage("已终止短信验证!"); loginImg(); $('#password').val(""); $(this).dialog('destroy').html(''); } } }); $.post(url, param, function(data) { $(popup).html(data); }); } function checkMobileCaptcha() { if ($("#mobileCaptcha").get(0).value == '') { showMessage("'手机验证码'不能为空!"); return false; } else if ($("#captcha").get(0).value == '') { showMessage("'验证码'不能为空!"); return false; } else { var flag = false; $.ajax({ url : yUrl("/security/account/checkMobileCaptchaLogin.do"), dataType : "json", type : "post", async : false, data : { "account.captcha" : function() { return $("input[name='account.captcha']").val(); }, "account.loginName" : function() { return document.getElementById("username").value; }, "account.mobileCaptcha" : function() { return document.getElementById("mobileCaptcha").value; } }, error : function() { showMessage("页面异常!"); loginImg(); $('#password').val(""); }, success : function(json) { flag = json.sendSms; showMessage(json.message); if (flag == true) { doLogin(); } } }); } }