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();
}
}
});
}
}