//--------------------init.js 开始--------------------------
var AJAX_IS_ALERT = 0;
var err_num_base = -40000;
var lang_xmlHttp = new Object();
var host_url_sv = "https://localhost:7443/";
/*用户名密码自动填充功能 start*/
var powered_up = 'off';
var res_auto_open = 'off';
var keep_line = 'off';
var pro_auto_run = '';
var pro_auto_run_param = '';
var style_color = getCookie("portal_style");
if (style_color == '') {
style_color = '#ad1d21';
}
function proxyCheckSwitch(flag) {
var proxy_addr = getCookie("proxy_server");
var proxy_port = getCookie("proxy_port");
if (proxy_addr && proxy_port) {
$('#' + flag).attr('checked', true);
}
}
function passWordAutoFillLogin() {
var url = host_url_sv + "api/v1/client_system_config";
var addr = window.location.host;
var dataStr = {
method:"client_system_config",
addr:addr
}
$.ajax({
url: url,
type: 'POST',
data: JSON.stringify(dataStr),
success: function (data) {
if (data.auto_login == 'on') {
$('#name_1').val(CryptoJS.enc.Base64.parse(unescape(data.username)).toString(CryptoJS.enc.Utf8));
$('#pwd_1').val(CryptoJS.enc.Base64.parse(unescape(data.password)).toString(CryptoJS.enc.Utf8));
var url = window.location.toString();
if (url.lastIndexOf('??') <= 0 && data.login_way == 'user_pwd') {
setTimeout(function () {
$('#submitLogin').click();
}, 600)
}
}
if (data.login_way_switch == 'on') {
if (data.login_way == 'user_pwd') $('#pwdMethod').click();
else if (data.login_way == 'cert') $('#certMethod').click();
else if (data.login_way == '2FA') $('#twofactorMethod').click();
else if (data.login_way == 'qrcode') $('#qrcode').click();
}
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
console.error('client_system_config request error');
}
});
}
/*用户名密码自动填充功能 end*/
function getXmlHttp() {
var xHttp;
if (window.ActiveXObject) {
try {
xHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xHttp = false;
}
} else {
try {
xHttp = new XMLHttpRequest();
} catch (e) {
xHttp = false;
}
}
return xHttp;
}
//取字符串字节长度
String.prototype.getByteLength = function () {
return this.replace(/[^\x00-\xff]/g, "00").length;
}
//对每个文件都起作用的对象
var eachfile = new Object();
eachfile.log = function (src) {
window.status = src;
}
eachfile.mouse_lock_portal = function () {
//锁定鼠标右键,适用于portal页面
function nocontextmenu() {
return false;
}
document.oncontextmenu = nocontextmenu;
}
eachfile.mouse_lock = function () {
//锁定鼠标右键
if (window.Event) document.captureEvents(Event.MOUSEUP);
function nocontextmenu() {
event.cancelBubble = true;
event.returnValue = false;
return false;
}
function norightclick(e) {
if (window.Event) {
if (e.which == 2 || e.which == 3) return false;
} else
if (event.button == 2 || event.button == 3) {
event.cancelBubble = true;
event.returnValue = false;
return false;
}
}
document.oncontextmenu = nocontextmenu;
document.onmousedown = norightclick;
this.log(MOUSE_LOCK_MSG);
}
//--------------------init.js 结束--------------------------
//------------------------login_err_msg.js 开始 -------------------------------
var VONE_LOGIN_MIN_USERNAME = 1;
var VONE_LOGIN_MAX_USERNAME = 127;
var VONE_LOGIN_MIN_PASSWORD = 1;
var VONE_LOGIN_MAX_PASSWORD = 63;
var Vone_Login_Equ_Validate = 16;
var sv_error = new Object();
sv_error.zh = 0;
sv_error.msg = {
server: {
relogin: ["重复登录", "Repeatedly login "],
hideser: ["SSL VPN正在工作,请不要重复登录", "SSL VPN is working, please do not duplicate login"],
nc: ["独立客户端已启动,此时不允许登录", "SV client started, this time does not allow to login"],
port: ["独立客户端已启动,此时不允许登录", "SV client started, this time does not allow to login "],
init: ["初始化失败", "Initialization defeat"],
vrc: ["VRC客户端正在运行,此时不允许登录", "VRC is working, please do not duplicate login"],
scbk: ["SCB2KEY不存在,禁止登录!", "SCB2KEY does not exist, forbids to register!"]
},
info: {
title: ["公告信息:", "Announcement: "]
},
error: {
title: ["错误提示:", "Error: "],
errproxy: ["代理服务用户名密码错误,请退出后重新设置", "The proxy service user famous password is wrong, after please withdraw, reset"]
},
sso: {
errset: ["SSO 配置错误", "SSO Disposition mistake "],
success: ["更新服务器成功!", "update success!"],
failed: ["请求发送失败!", "the request failed!"],
allow: ["最多只允许添加100条!", "Most only allows to increase 100! "],
spatial: ["所填内容不能为空!", "Fills in the content not to be able for spatial! "],
repeat: ["资源重复配置!", "Duplication of resources allocation! "],
toolong: ["所填内容超出允许长度!", "Fills in the content to surpass the permission length !"],
nochar: ["所填内容含有不允许的字符!", "Fills in the character which the content includes does not permit !"]
},
nc: {
nostart: ["全网接入功能未启用", "netconnect not start"]
},
title: {
errcode: ["错误码:", "Error code:"],
errmsg: ["错误信息:", "Error info:"],
def: ["服务器端出错,请联系管理员", "The server end makes a mistake, please contact with the manager"]
},
plugin: {
err8: ["获取session id cookie出错,请清空浏览器缓存后重新登录!", "get session id cookie error"],
err9: ["由session id获取session出错,请清空浏览器缓存后重新登录! ", "get session by session id error"],
err40: ["获取缺省门户信息出错,请清空浏览器缓存后重新登录!", "get default infomation info error"],
err65: ["获取门户信息失败,请清空浏览器缓存后重新登录!", "get portal infomation error"]
},
auth: {
err1015: ["可信认证检查失败", "Credible authentication inspection defeat"],
err1016: ["唯一识别码检查失败", "Only identification code inspection defeat"],
err1020: ["80端口未启用 禁止使用80端口", "80 ports have not begun using forbid to use 80 ports "]
},
file: {
err1017: ["文件共享分析失败", "File sharing analysis defeat "]
},
acl: {
err1018: ["ACL检查失败", "ACL inspection defeat "]
},
session: {
err1012: ["SESSION超时,请重新登录", "The SESSION overtime, please register"],
err1013: ["SESSION无效或取不到SESSION", "SESSION invalid or does not take SESSION "]
}
};
sv_error.init = function () {
var value;
var mycookies = document.cookie;
var ckname = "topsecsvuilanguage";
var start = mycookies.indexOf(ckname + "=", 0) + ckname.length + 1;
if (start != ckname.length) {
var end = mycookies.indexOf(";", start);
if (end == -1) {
value = unescape(mycookies.substring(start, mycookies.length));
} else {
value = unescape(mycookies.substring(start, end));
}
}
if (value == "english") {
sv_error.zh = 1;
} else {
sv_error.zh = 0;
}
}
//---------------------- login_err_msg.js 结束----------------------------------
//--------------------login.js 开始--------------------------
//登录页面用到的对象
var login = new Object();
login.mlink_isshow = false;
login.cert_isshow = true;
login.user_tag = true;
login.validate_tag = true;
login.cert_mode = 1;
login.first_run = 1;
login.xmlHttp;
login.cert_xmlHttp;
login.init_xmlHttp;
login.err_num = 0;
var twofactor_username_set_default = 0;
var g_switch_html_notice = false;
//获取 Cookies
function setCookie(sName, str) {
document.cookie = sName + "=" + escape(str) + "; expires=Fri, 31 Dec 2100 23:59:59 GMT; path=/;";
}
function getCookie(str) {
var value = "";
var mycookies = document.cookie;
var ckname = str; //下发的cookie名
var start = mycookies.indexOf(ckname + "=", 0) + ckname.length + 1;
if (start == ckname.length) {
value = "";
} else {
var end = mycookies.indexOf(";", start);
if (end == -1) {
value = unescape(mycookies.substring(start, mycookies.length));
} else {
value = unescape(mycookies.substring(start, end));
}
}
return value;
}
function del_cookies(ck_name) {
var sValue = "";
document.cookie = ck_name + "=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
}
function check_cookies() {
if (getCookie("login_err_num") == -1) {
setCookies();
}
}
function proxy_input_disable(tag, cls) {
document.getElementById("proxy_server").disabled = tag;
document.getElementById("proxy_server").className = cls;
document.getElementById("proxy_port").disabled = tag;
document.getElementById("proxy_port").className = cls;
document.getElementById("proxy_user").disabled = tag;
document.getElementById("proxy_user").className = cls;
document.getElementById("proxy_pass").disabled = tag;
document.getElementById("proxy_pass").className = cls;
document.getElementById("proxy_domain").disabled = tag;
document.getElementById("proxy_domain").className = cls;
if (tag) {
document.getElementById("anonymous_opt").style.display = "";
} else {
document.getElementById("anonymous_opt").style.display = "none";
}
}
function show_proxy() {
document.getElementById("div_mask1").style.display = "block";
document.getElementById("proxy").style.display = "block";
document.getElementById("proxy_btn_ok").value = BTN_OK;
document.getElementById("proxy_btn_reset").value = PROXY_RESET;
document.getElementById("proxy_btn_cls").value = BTN_CLOSE;
var proxy_type = getCookie("proxy_type");
if (proxy_type == "1") {
document.getElementById("proxy_type").selected = PROXY_OPTION_SOCKS;
document.getElementById("proxy_type").value = 1;
proxy_input_disable(false, "white_txt_box");
$("#proxy_type option[value='1']").attr("selected", "selected");
} else if (proxy_type == "2") {
document.getElementById("proxy_type").selected = PROXY_OPTION_HTTPS;
proxy_input_disable(false, "white_txt_box");
$("#proxy_type option[value='2']").attr("selected", "selected");
} else if (proxy_type == "3") {
document.getElementById("proxy_type").selected = PROXY_OPTION_SOCKS;
proxy_input_disable(false, "white_txt_box");
$("#proxy_type option[value='3']").attr("selected", "selected");
} else {
document.getElementById("proxy_type").value = PROXY_OPTION_HTTPS;
proxy_input_disable(false, "white_txt_box");
}
document.getElementById("proxy_server").value = getCookie("proxy_server");
document.getElementById("proxy_port").value = getCookie("proxy_port");
document.getElementById("proxy_user").value = getCookie("proxy_user");
document.getElementById("proxy_pass").value = getCookie("proxy_pass");
document.getElementById("proxy_domain").value = getCookie("proxy_domain");
}
function del_value() {
document.getElementById("proxy_server").value = "";
document.getElementById("proxy_port").value = "";
document.getElementById("proxy_user").value = "";
document.getElementById("proxy_pass").value = "";
document.getElementById("proxy_domain").value = "";
}
function proxy_save() {
var proxy_type = document.getElementById("proxy_type").value;
var proxy_server = document.getElementById("proxy_server").value;
var proxy_port = document.getElementById("proxy_port").value;
setCookies("proxy_type", proxy_type);
setCookies("proxy_server", proxy_server);
setCookies("proxy_port", proxy_port);
setCookies("proxy_user", document.getElementById("proxy_user").value);
setCookies("proxy_pass", document.getElementById("proxy_pass").value);
setCookies("proxy_domain", document.getElementById("proxy_domain").value);
document.getElementById("div_mask1").style.display = "none";
document.getElementById("proxy").style.display = "none";
}
function proxy_del(tp, sv, pt, u, p, dm) {
if (tp) {
del_cookies("proxy_type");
}
if (sv) {
del_cookies("proxy_server");
document.getElementById("proxy_server").value = "";
}
if (pt) {
del_cookies("proxy_port");
document.getElementById("proxy_port").value = "";
}
if (u) {
del_cookies("proxy_user");
document.getElementById("proxy_user").value = "";
}
if (p) {
del_cookies("proxy_pass");
document.getElementById("proxy_pass").value = "";
}
if (dm) {
del_cookies("proxy_domain");
document.getElementById("proxy_domain").value = "";
}
}
function proxy_cert_do(tag) {
if (tag) {
document.getElementById("proxy_user").disabled = false;
document.getElementById("proxy_user").className = "white_txt_box";
document.getElementById("proxy_pass").disabled = false;
document.getElementById("proxy_pass").className = "white_txt_box";
document.getElementById("radio_val").value = "yes";
} else {
document.getElementById("proxy_user").disabled = true;
document.getElementById("proxy_user").className = "gray_txt_box";
document.getElementById("proxy_pass").disabled = true;
document.getElementById("proxy_pass").className = "gray_txt_box";
document.getElementById("radio_val").value = "no";
}
}
function proxy_close() {
document.getElementById("div_mask1").style.display = "none";
document.getElementById("proxy").style.display = "none";
}
var custom_help_url = "";
function open_login_help() {
if (custom_help_url != "") {
window.open(custom_help_url, "", "");
return;
}
}
function reset_default_value(id) {
$("#" + id).val('');
}
function show_reset_btn(type, id) {
if (type == 'name') {
$("#name_" + id + "_btn").show();
$("#pwd_" + id + "_btn").hide();
} else {
$("#name_" + id + "_btn").hide();
$("#pwd_" + id + "_btn").show();
}
}
/***** 显示登录输入框 **********/
var auth_protocol = 0; //默认国际类型
var gid; //验证码是否开启
var cert_list = '';
var auth_port;
var data_port;
var data_protocol;
var cert_type;
var gidauto; //定义全局变量记录验证码开启状态
var vpn_version;
var linux_url;
var mac_url;
var android_url;
var ios_url;
var show_mac_client;
var flag_mobile_qrcode;
var webvpn; //webvpn开关
var brower_check_version = 0;
function init_login() {
if (login.init_xmlHttp.readyState == 4) {
if (login.init_xmlHttp.status == 200) {
var return_Value;
try {
return_Value = eval('(' + login.init_xmlHttp.responseText + ')');
} catch (ex) {}
if (return_Value == "undefined") {
showPopMessage('info', "您的浏览器不支持AJAX!");
return false;
}
var show_tab_1 = "yes",
show_tab_2 = "yes",
show_tab_3 = "yes";
cert_list = return_Value.ca_list;
auth_protocol = return_Value.auth_protocol;
auth_port = return_Value.auth_port;
data_port = return_Value.data_port;
data_protocol = return_Value.data_protocol;
android_url = return_Value.android_url;
ios_url = return_Value.ios_url;
mac_url = return_Value.mac_url;
linux_url = return_Value.linux_url;
vpn_version = return_Value.vpn_version;
cert_type = return_Value.cert_type;
webvpn = return_Value.webvpn;
//ip访问用户登录通过客户端认证
if (check_IP(window.location.hostname)) {
setCookie('webvpn_na', 'on');
}
setCookie('webvpn', webvpn);
var webvpn_na = getCookie('webvpn_na');
if (webvpn == 'on') {
if (webvpn_na == 'on') {
brower_check_version = 1;
$("#auth_more").css("display", "none");
$("#login_method").css("display", "block");
$('#qrcode').css('display', 'block');
} else {
brower_check_version = 0;
$("#auth_more").css("display", "block");
$("#login_method").css("display", "none");
$('#qrcode').css('display', 'none');
var session_id = getCookie('topafasfasfassession_id');
setCookie('login_type', 'webvpn');
if (session_id != '') {
var user_name = getCookie("radius_U");
login.webvpnGetSessionId(user_name,session_id);
}
}
} else {
brower_check_version = 1;
$("#auth_more").css("display", "none");
$("#login_method").css("display", "block");
$('#qrcode').css('display', 'block');
}
if (brower_check_version) {
setTimeout(function () {
login_check_after(1);
}, 400);
}
gid = return_Value.gid;
if (return_Value.show_android_client == "off") {
flag_mobile_qrcode = 1;
document.getElementById("android_qrcode").style.display = "none";
} else {
flag_mobile_qrcode = 2;
document.getElementById("android_qrcode").style.display = "block";
}
if (return_Value.show_ios_client == "off") {
flag_mobile_qrcode = 1;
document.getElementById("ios_qrcode").style.display = "none";
} else {
flag_mobile_qrcode = 2;
document.getElementById("ios_qrcode").style.display = "block";
}
if (return_Value.pswd == "off") {
document.getElementById("pwdMethod").style.display = "none";
show_tab_1 = "no";
}
if (return_Value.cert == "off") {
document.getElementById("certMethod").style.display = "none";
show_tab_2 = "no";
}
if (return_Value.twofactor == "off") {
document.getElementById("twofactorMethod").style.display = "none";
show_tab_3 = "no";
}
// 根据网关配置显示匿名登录与否
if (return_Value.anony_switch == "on") {
document.getElementById("submit_anonym").style.display = "";
document.getElementById("submit_anonym").value = LOGIN_SUBMIT_ANONYM;
}
// 只需要用户输入口令,不需要提供用户名信息
if (return_Value.twofactor_hide == "off") {
twofactor_username_set_default = 1;
}
if (show_tab_1 == "no" && show_tab_2 == "yes") {
document.getElementById("login_form").style.display = "none";
document.getElementById("cert_form").style.display = "block";
} else if (show_tab_1 == "no" && show_tab_3 == "yes") {
document.getElementById("login_form").style.display = "none";
document.getElementById("twofactor_form").style.display = "block";
document.getElementById("twofactor_user_input").style.display = "block";
value_show();
}
if (return_Value.gid == "auto") {
var errnum = getCookie("login_err_sum");
if ((errnum == null) || (errnum == "")) //应对cookie被清空的情况
{
document.getElementById("valid").value = "no";
document.getElementById("con_one_1_validate").style.display = "none";
} else if (parseInt(errnum) <= 2) {
document.getElementById("valid").value = "no";
document.getElementById("con_one_1_validate").style.display = "none";
} else {
document.getElementById("valid").value = "yes";
document.getElementById("con_one_1_validate").style.display = "block";
document.getElementById("identifying_code").click();
}
} else if (return_Value.gid == "on") {
document.getElementById("valid").value = "yes";
document.getElementById("con_one_1_validate").style.display = "block";
//只有在GID 开启时才向服务器请求
document.getElementById("identifying_code").click();
}
//链路选择
if (return_Value.mlink == "auto") {
var str_url = window.location.toString();
if (str_url.lastIndexOf("?") > 0 && str_url.lastIndexOf("??") <= 0) {
try {
document.getElementById("speedbyhand_1").style.display = "none";
window.open("vone/mlink/index.html?", "", "height=400,width=500,top=205, left=250,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,status=no,titlebar=no");
} catch (ex) { }
} else {
window.open("vone/mlink/index.html?", "", "height=400,width=500,top=205, left=250,toolbar=no,menubar=no,scrollbars=no,resizable=yes,location=no,status=no,titlebar=no");
}
} else if (return_Value.mlink == "mual") {
login.mlink_isshow = true;
var str_url = window.location.toString();
if (str_url.lastIndexOf("?") > 0 && str_url.lastIndexOf("??") <= 0) {
try {
document.getElementById("speedbyhand_1").style.display = "none";
} catch (ex) { }
} else {
try {
document.getElementById("speedbyhand_1").style.display = "block";
} catch (ex) { }
}
} else if (return_Value.mlink == "off") {
try {
document.getElementById("speedbyhand_1").style.display = "none";
} catch (ex) { }
}
//输出证书按钮
if (return_Value.cert == "off") {
login.cert_isshow = false;
}
//url_usbkey
if (return_Value.url_usbkey == "") {
} else {
document.getElementById('usb_key_d').style.display = 'block';
document.getElementById('usb_key_a').href = return_Value.url_usbkey;
}
if (return_Value.html_notice_switch == "on") {
g_switch_html_notice = true;
login.usepwd_show();
}
try {
custom_help_url = return_Value.help_url;
open_login_help();
} catch (e) { }
if (get_client_type["system"].win) {
check_version1 = return_Value.win_version;
} else {
check_version1 = return_Value.mac_version;
}
//兼容sm2 plus
if (vpn_version == 'sm2plusvone') {
$('#qrcode_phone').css('display', 'none');
$('#android_qrcode').css('display', 'none');
$('#ios_qrcode').css('display', 'none');
}
}
}
} //end init_login
function get_auth_param(obj_id) {
login.init_xmlHttp = getXmlHttp();
login.init_xmlHttp.open("POST", "/vone/login/auth_param", true);
login.init_xmlHttp.onreadystatechange = init_login;
login.init_xmlHttp.send(null);
}
//logo 输出
login.usepwd_show = function () {
var notice = "sv_pronouncement_login.html";
if (g_switch_html_notice) {
if (window.navigator.appName == "Microsoft Internet Explorer") {
try {
showModalDialog(notice, 'newwindow', 'height=600, width=800, top=20, left=20, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no');
} catch (e) { }
} else {
window.open(notice, 'newwindow', 'height=600, width=800, top=20, left=20, toolbar=no, menubar=no, scrollbars=yes, resizable=no,location=no, status=no');
}
}
}
function init_login_qrcode() {
if (login.init_xmlHttp.readyState == 4) {
if (login.init_xmlHttp.status == 200) {
var return_Value;
try {
return_Value = eval('(' + login.init_xmlHttp.responseText + ')');
} catch (ex) { }
if (return_Value == "undefined") {
showPopMessage('info', "您的浏览器不支持AJAX!");
return false;
}
android_url = return_Value.android_url;
ios_url = return_Value.ios_url;
mac_url = return_Value.mac_url;
show_android_client = return_Value.show_android_client;
show_ios_client = return_Value.show_ios_client;
show_mac_client = return_Value.show_mac_client;
if (return_Value.show_android_client == "off") {
flag_mobile_qrcode = 1;
document.getElementById("android_icon").style.display = "none";
} else {
flag_mobile_qrcode = 2;
document.getElementById("android_icon").style.display = "block";
}
if (return_Value.show_ios_client == "off") {
flag_mobile_qrcode = 1;
document.getElementById("ios_icon").style.display = "none";
} else {
flag_mobile_qrcode = 2;
document.getElementById("ios_icon").style.display = "block";
}
try {
custom_help_url = return_Value.help_url;
} catch (e) { }
}
}
}
function get_auth_param_qrcode(obj_id) {
login.init_xmlHttp = getXmlHttp();
login.init_xmlHttp.open("POST", "/vone/login/auth_param", true);
login.init_xmlHttp.onreadystatechange = init_login_qrcode;
login.init_xmlHttp.send(null);
}
function undisabled() {
$("#name_" + id + "_btn").show();
$("#pwd_" + id + "_btn").hide();
var nm_3 = document.getElementById("name_3");
nm_3.className = "txt_black";
}
function value_show(id) {
var nm_3 = document.getElementById("name_3");
var s = nm_3.value;
s = s.replace(/(^\s*)/g, "");
if (s.length == 0) {
nm_3.value = LOGIN_VALUE_MSG;
} else if (s == LOGIN_VALUE_MSG) {
}
//如果要隐藏用户名输入.
if (1 == twofactor_username_set_default) {
try {
document.getElementById("tr_user_3").style.display = "none";
} catch (e) { }
try {
document.getElementById("td_txt_user_3").style.display = "none";
document.getElementById("td_lable_user_3").style.display = "none";
} catch (e) { }
} else {
try {
document.getElementById("tr_user_3").style.display = "";
} catch (e) { }
try {
document.getElementById("td_txt_user_3").style.display = "";
document.getElementById("td_lable_user_3").style.display = "";
} catch (e) { }
}
}
/******************* WEBVPN认证处理 开始*************************/
login.webvpnGetSessionId = function (userName,sessionId) {
var session_id = 'UNAME=' + escape(userName) + '&PSESS=' + escape(sessionId);
xmlHttp_n.onreadystatechange = login.webvpnSetSessionIdAfter;
xmlHttp_n.open("POST", "/vone/portal/user_op_param_sessionid", false);
xmlHttp_n.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;charset=UTF-8;');
xmlHttp_n.send(session_id);
}
login.webvpnSetSessionIdAfter = function(){
if (xmlHttp_n.readyState == 4 && xmlHttp_n.status == 200) {
window.location.href = "./vone/portal/index.html";
}
}
/******************* WEBVPN认证处理 结束*************************/
/******************* 短信认证 处理开始 *************************/
var xmlHttp_n = getXmlHttp();
var IEver = IEVersion();
var timer = null;
login.getSession_id = function () {
login_btn_click_control = false;
var na_switch = 'off';
function client_na_switch_info() {
$.ajax({
url: host_url_sv + 'api/v1/get_config_info',
type: 'POST',
async: false,
data: JSON.stringify({ method: "get_config_info" }),
dataType: 'json',
success: function (data) {
na_switch = data.user_param.netacc;
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
console.error(xmlHttpRequest);
}
})
}
client_na_switch_info();
if (na_switch == 'off') {
window.location.href = "./vone/portal/index.html";
} else {
if (IEver > 9 || IEver == -1) {
timer = setInterval(function () {
if (login.checkNaStatus()) {
clearInterval(timer);
window.location.href = "./vone/portal/index.html";
}
}, 800);
} else {
window.location.href = "./vone/portal/index.html";
}
}
}
var myTime = "";
var topsec_error_times = 1; //下发认证错误次数,从cookie中获取
login.submit_sugges = function () {
//根据协议获取端口信息
var auth_port_url = window.location.port;
var data_port_url = window.location.port;
if (auth_protocol == 0) {
if (auth_port_url == '' || auth_port_url == null) {
auth_port_url = '443';
data_port_url = '443';
}
} else {
auth_port_url = auth_port;
data_port_url = data_port;
}
var d = new Date();
var sms_time = 0;
sms_time = Math.ceil((d.getTime() - myTime) / 1000);
topsec_error_times--;
var sms = document.getElementById("sms_txt").value;
if (!sms.trim()) {
document.getElementById("div_mask1").style.display = "none";
$("#sugges").css('display', 'none');
showPopMessage('info', '请输入短信验证码');
return false;
}else{
$("#sugges").css('display', 'none');
login_msg_win('on')//显示登陆等待框
var chk_sms_url = host_url_sv + "api/v1/chk_sms";
var proxy_type = getCookie("proxy_type");
var proxy_addr = getCookie("proxy_server");
var proxy_port = getCookie("proxy_port");
var proxy_user = getCookie("proxy_user");
var proxy_pwd = getCookie("proxy_pass");
var proxy_domain = getCookie("proxy_domain");
var pf_host = window.location.hostname;
var pf_port = window.location.port;
if (pf_port == "") {
pf_port = "443";
}
var chkSmsData = {
method:"chk_sms",
ctx_id:"",
Challenge_state:"",
topsecsvaaa:"",
topsecsvccc:"",
topsecsvddd:"",
sms:sms,
vpn_version:vpn_version,
auth_protocol:auth_protocol,
auth_port:auth_port_url,
data_port:data_port_url,
data_protocol:data_protocol,
cert_type:cert_type
};
$.ajax({
url: chk_sms_url,
type: 'POST',
data: JSON.stringify(chkSmsData),
dataType: 'json',
success: function (data) {
if (data.err_code == 0) {
login.getSession_id();
} else if (data.err_code == (err_num_base - 45)) {
login_msg_win('off')//隐藏登陆等待框
$("#cert_list").css('display', 'none');
$('#cert_list_gm').css('display', 'none');
showPopMessage('error', data.err_code);
} else if (data.err_code == (err_num_base - 44)) {
login_msg_win('off')//隐藏登陆等待框
$("#cert_list").css('display', 'none');
$('#cert_list_gm').css('display', 'none');
if (login_con_type == 'con_one_3') {
showPopMessage('error', SV_AUTH_SMS_TIMEOUT);
} else if (login_con_type == 'con_one_2') {
showPopMessage('error', SV_AUTH_SMS_TIMEOUT);
} else {
showPopMessage('error', SV_AUTH_SMS_TIMEOUT);
}
} else if (data.err_code == (err_num_base - 77)) { //增加功能:同一个用户设置了单地点登录,第一次登录后异常退出,第二次登录时候允许用户自己踢出前一个会话。
//点击确定按钮踢出
var username;
var passwd;
setTimeout(function () {
login_msg_win('off')//隐藏登陆等待框
showPopMessage('infoBtn', ('用户已登录,' + '\n踢出上一次会话,继续登录请按“好”按钮,' + '\n返回登录页面请按“取消”按钮'), function (j) {
if (j) {
login_msg_win('on')//显示登陆等待框
var kickUserDataSms = {
method:"kick_user",
vone:{
addr:pf_host,
port:pf_port,
user:escape(username),
pwd:escape(passwd)
},
proxy:{
type:proxy_type,
addr:proxy_addr,
port:proxy_port,
user:proxy_user,
pwd:proxy_pwd,
domain:proxy_domain
},
vpn_version:vpn_version,
auth_protocol:auth_protocol,
auth_port:auth_port_url,
data_port:data_port_url,
data_protocol:data_protocol,
cert_type:cert_type
};
var kick_user_url = host_url_sv + "api/v1/kick_user";
$.ajax({
url: kick_user_url,
type: 'POST',
data: JSON.stringify(kickUserDataSms),
dataType: 'json',
success: function (data) {
var ret_data = eval(data);
if (ret_data.err_code == 0) {
login.getSession_id();
} else {
login_msg_win('off')//隐藏登陆等待框
showPopMessage('error', ret_data.err_code);
}
}
});
} else {
login.submit_close();
}
}, true);
}, 1000);
} else {
login.submit_close();
login_msg_win('off')//隐藏登陆等待框
showPopMessage('error', data.err_code);
}
}
});
}
}
//关闭
login.submit_close = function () {
login.close_b_body();
}
/******************* 短信认证 处理结束 *************************/
/******************* 忘记密码 处理开始 *************************/
login.send_mail = function () {
document.getElementById("div_mask1").style.display = "block";
document.getElementById("forget_pwd").style.display = "block";
document.getElementById("forget_pwd_msg").innerHTML = FORGET_PWD_MSG;
document.getElementById("forget_pwd_submit").value = BTN_OK;
document.getElementById("forget_pwd_close").value = BTN_CLOSE;
set_identifying_code('forget_img');
img.onerror = function () {
console.error('验证码加载失败');
}
document.getElementById("forget_pwd_txt").value = "";
document.getElementById("forget_pwd_img").value = "";
}
login.close_forget_pwd = function () {
document.getElementById("div_mask1").style.display = "none";
document.getElementById("forget_pwd").style.display = "none";
var u_name = document.getElementById("name");
if ((u_name != "undefined") && (u_name != null)) {
u_name.focus(); //输入框获得焦点
}
}
login.pwd_After = function (objValue,objBgColor) {
var rt_val;
if (login.getpwd_Http.readyState == 4) {
if (login.getpwd_Http.status == 200) {
find_pwd_request = 1;
clearInterval(find_pwd_timer);
$("#forget_pwd_submit").css('background-color',objBgColor);
$("#forget_pwd_submit").val(objValue);
if (login.getpwd_Http.responseText == "") {
return false;
}
rt_val = eval('(' + login.getpwd_Http.responseText + ')');
if (rt_val.Ret == 0) {
var str = (rt_val.Mail == "" ? ("Mobile:" + rt_val.Phone) : ("E-mail:" + rt_val.Mail));
login.close_forget_pwd();
set_identifying_code('forget_img');
showPopMessage('info', SV_AUTH_SEND_PSWD_SUCCESS + " " + str);
} else if (rt_val.Ret == -40142) {
var reset_left_time = getCookie('reset_left_time');
var lock_time = eval('(' + reset_left_time + ')');
login.close_forget_pwd();
showPopMessage('info', '距离下次重置密码剩余时间' + lock_time.lifetime + '秒');
setInterval(function () {
lock_time.lifetime--;
if (lock_time.lifetime >= 0) {
$("#showMsgCountent").text('距离下次重置密码剩余时间' + lock_time.lifetime + '秒')
} else {
$(".closeWin").click();
clearInterval();
}
}, 1000);
} else {
login.close_forget_pwd();
set_identifying_code('forget_img');
showPopMessage('error', rt_val.Ret);
}
}
}
}
var find_pwd_request = 1;
var find_pwd_timer;
login.submit_forget_pwd = function () {
var u_name = document.getElementById("forget_pwd_txt").value;
var gid = document.getElementById("forget_pwd_img").value;
var forget_pwd_url = '';
if (webvpn == 'on') {
if (getCookie('webvpn_na') == "on") {
var str = {
method: 'find_pwd',
U: escape(u_name),
P: escape(gid)
}
str = JSON.stringify(str);
forget_pwd_url = host_url_sv + 'api/v1/find_pwd';
} else {
var str = 'U=' + escape(u_name) + '&GID=' + escape(gid);
forget_pwd_url = '/vone/find_pswd';
}
} else {
var str = {
method: 'find_pwd',
U: escape(u_name),
P: escape(gid)
}
str = JSON.stringify(str);
forget_pwd_url = host_url_sv + 'api/v1/find_pwd';
}
var objValue = $("#forget_pwd_submit").val();
var objBgColor = $("#forget_pwd_submit").css("background-color");
if(find_pwd_request == 1){
find_pwd_request = 0;
$("#forget_pwd_submit").css('background-color','#ccc');
login.getpwd_Http = getXmlHttp();
login.getpwd_Http.open("POST", forget_pwd_url, true);
login.getpwd_Http.setRequestHeader('Content-type','application/x-www-form-urlencoded;');
login.getpwd_Http.onreadystatechange = function () {
login.pwd_After(objValue,objBgColor);
}
login.getpwd_Http.send(str);
var countDown = 60;
$("#forget_pwd_submit").val(countDown+'s');
find_pwd_timer = setInterval(function(){
if(countDown >= 0){
countDown--;
$("#forget_pwd_submit").val(countDown+'s');
}else{
$("#forget_pwd_submit").css('background-color',objBgColor);
$("#forget_pwd_submit").val(objValue);
clearInterval(find_pwd_timer);
find_pwd_request = 1;
}
},1000)
}
}
/******************* 忘记密码 处理结束 *************************/
login.close_b_body = function () {
document.getElementById("div_mask1").style.display = "none";
document.getElementById("first_modify_pwd").style.display = "none";
document.getElementById("sugges").style.display = "none";
}
var sms_type = 0; //1-->口令认证;2-->证书认证;3-->双因子认证;
// 用户名 check
login.check_name = function (str, tab) {
var mystr;
mystr = str.getByteLength();
if (mystr < VONE_LOGIN_MIN_USERNAME || mystr > VONE_LOGIN_MAX_USERNAME) {
showPopMessage('error', VONE_LOGIN_USERNAME_ERROR_LENGTH);
return false;
}
var pattern = /^([\u4E00-\u9FA5]|[0-9]|[a-z]|[A-Z]|[_]|[+]|[@]|[.]|[ ]|[-]|[&])*$/;
if (!pattern.test(str)) {
showPopMessage('error', VONE_LOGIN_USERNAME_ERROR_RESTRICT);
return false;
}
return true;
}
// 密码 check
login.check_passwd = function (str, tab) {
var mystr;
mystr = str.length;
if (mystr == 0) { //密码为空时
return false;
}
return true;
}
// 验证码 check
login.check_validate = function (str, tab) {
var pattern = /^([0-9]|[a-z]|[A-Z])*$/;
if (pattern.test(str)) {
return true;
} else {
showPopMessage('error', VONE_LOGIN_VALIDATE_ERROR_RESTRICT);
return false;
}
}
/******************* 用户名密码认证 开始 *************************/
//在短信认证界面添加倒计时
var msg = "";
var mytimer = "";
var maxtime = "";
function CountDown() {
if (maxtime > 0 && topsec_error_times > 0) {
minutes = Math.floor(maxtime / 60);
seconds = Math.floor(maxtime % 60);
msg = "您还有" + topsec_error_times + "次提交动态密码的机会;
" + "距离提交动态密码结束还有" + minutes + "分" + seconds + "秒;";
document.getElementById("sms_timer").innerHTML = msg;
--maxtime;
} else {
clearInterval(mytimer);
login.close_b_body();
}
}
function sms_time_show(sms_time) {
document.getElementById("sms_timer").innerHTML = "";
clearInterval(mytimer);
maxtime = sms_time //下发短信认证时间(单位s)
mytimer = setInterval("CountDown()", 1000);
}
set_identifying_code = function (eid) {
var proxy_type = getCookie("proxy_type");
var proxy_addr = getCookie("proxy_server");
var proxy_port = getCookie("proxy_port");
var proxy_user = getCookie("proxy_user");
var proxy_pwd = getCookie("proxy_pass");
var proxy_domain = getCookie("proxy_domain");
var host = window.location.hostname;
var serverPort = window.location.port || "443";
//根据协议获取端口信息
var auth_port_url = window.location.port;
var data_port_url = window.location.port;
if (auth_protocol == 0) {
if (auth_port_url == '' || auth_port_url == null) {
auth_port_url = '443';
data_port_url = '443';
}
} else {
auth_port_url = auth_port;
data_port_url = data_port;
}
if (webvpn == 'on') {
if (getCookie('webvpn_na') == "on") {
document.getElementById(eid).src = host_url_sv + "api/v1/get_gid" + "?serverAddr=" + host + "&serverPort=" + serverPort + "&vpn_version=" + vpn_version + "&auth_protocol=" + auth_protocol + "&auth_port=" + auth_port_url + "&data_port=" + data_port_url + "&data_protocol=" + data_protocol + "&cert_type=" + cert_type + "&proxyType=" + proxy_type + "&proxyAddr=" + proxy_addr + "&proxyPort=" + proxy_port + "&proxyUser=" + proxy_user + "&proxyPwd=" + proxy_pwd + "&proxyDomain=" + proxy_domain + "&rnd=" + Math.random();
} else {
document.getElementById(eid).src = "/vone/login/gid" + "?rnd=" + Math.random();
}
} else {
document.getElementById(eid).src = host_url_sv + "api/v1/get_gid" + "?serverAddr=" + host + "&serverPort=" + serverPort + "&vpn_version=" + vpn_version + "&auth_protocol=" + auth_protocol + "&auth_port=" + auth_port_url + "&data_port=" + data_port_url + "&data_protocol=" + data_protocol + "&cert_type=" + cert_type + "&proxyType=" + proxy_type + "&proxyAddr=" + proxy_addr + "&proxyPort=" + proxy_port + "&proxyUser=" + proxy_user + "&proxyPwd=" + proxy_pwd + "&proxyDomain=" + proxy_domain + "&rnd=" + Math.random();
}
}
get_identifying_code = function (eid) {
login.xmlHttp = getXmlHttp();
login.xmlHttp.open("GET", "/vone/login/gid", true);
login.xmlHttp.onreadystatechange = set_identifying_code(eid);
login.xmlHttp.send();
}
//匿名登录flag
var login_anonym_flag = 0;
// 防止重复点击登录
var login_btn_click_control = true;
var login_err_sum; //认证错误次数
var remember_pwd = 'off';
login.check_form = function (tab) {
var oThis = this;
var username;
var passwd;
var valid = document.getElementById("valid").value;//图形码是否已显示
var result = false;
var proxy_type = getCookie("proxy_type");
var proxy_addr = getCookie("proxy_server");
var proxy_port = getCookie("proxy_port");
var proxy_user = getCookie("proxy_user");
var proxy_pwd = getCookie("proxy_pass");
var proxy_domain = getCookie("proxy_domain");
//根据协议获取端口信息
var auth_port_url = window.location.port;
var data_port_url = window.location.port;
if (auth_protocol == 0) {
if (auth_port_url == '' || auth_port_url == null) {
auth_port_url = '443';
data_port_url = '443';
}
} else {
auth_port_url = auth_port;
data_port_url = data_port;
}
if ($('#remember_pwd').is(':checked')) {
remember_pwd = 'on';
} else {
remember_pwd = 'off';
}
if (login_anonym_flag) {
//登录页面匿名登录
username = "anonymous";
passwd = "111111";
} else {
username = document.getElementById("name_1").value;
passwd = document.getElementById("pwd_1").value;
}
setCookies("radius_U", username);
//密码不能为空的处理
if (username.length == 0 || passwd.length == 0) {
$("#submit_1").val(LOGIN_SUBMIT_1);
showPopMessage('info', LOGIN_VALUE_PWD_MSG);
return false;
}
setCookies("va_passwd", passwd);
if (valid == "yes") {
var validate = document.getElementById("validate_1").value;
//验证码不能为空
if (validate == null || validate == "") {
$("#submit_1").val(LOGIN_SUBMIT_1);
showPopMessage('error', LOGIN_VALIDATE_NULL);
return false;
}
result = this.check_name(username, tab) && this.check_passwd(passwd, tab) && this.check_validate(validate, tab);
} else {
result = this.check_name(username, tab) && this.check_passwd(passwd, tab);
}
username = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(username));
passwd = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(passwd));
if (result && login_btn_click_control) {
login_btn_click_control = false;
login_msg_win('on')//显示登陆等待框
var server_host = window.location.hostname;
var server_port = window.location.port;
if (server_port == "") {
server_port = "443";
}
var login_by_pwd_url = host_url_sv + "api/v1/login_by_pwd";
var sendData = {
method:"login_by_pwd",
vone:{
addr:server_host,
port:server_port,
user:escape(username),
pwd:escape(passwd),
},
proxy:{
type:proxy_type,
addr:proxy_addr,
port:proxy_port,
user:proxy_user,
pwd:proxy_pwd,
domain:proxy_domain
},
vpn_version:vpn_version,
auth_protocol:auth_protocol,
auth_port:auth_port_url,
data_port:data_port_url,
data_protocol:data_protocol,
cert_type:cert_type,
remember_pwd:remember_pwd
};
oThis.kickUserDataPwd = sendData;
if (valid == "yes") {
sendData.gid = {
cgid:"",
'gid':validate
}
}
if (webvpn == 'on') {
if (getCookie('webvpn_na') == "on") {
setCookie('login_type', 'client');
} else {
setCookie('login_type', 'webvpn');
login_by_pwd_url = "/vone/login/user_pswd";
if (valid == "yes") {
sendData = 'U=' + escape(username) + '&P=' + escape(passwd) + '&Base64_U=' + escape(username) + '&Base64_P=' + escape(passwd) + '&cgid1=""' + '&gid=' + validate +'&is_wv=yes';
} else {
sendData = 'U=' + escape(username) + '&P=' + escape(passwd) + '&Base64_U=' + escape(username) + '&Base64_P=' + escape(passwd)+'&is_wv=yes';
}
}
} else {
setCookie('login_type', 'client');
}
sendData = JSON.stringify(sendData)
if (sendData.indexOf("+") != -1) {
sendData = sendData.replace(/\+/g, "%2B");
}
$.support.cors = true;
$.ajax({
url: login_by_pwd_url,
type: 'POST',
data: sendData,
dataType:'json',
success: function (data) {
var ret_value = data;
var username = oThis.kickUserDataPwd.vone.user;
var passwd = oThis.kickUserDataPwd.vone.pwd;
if (webvpn == 'on') {
if (getCookie('webvpn_na') != "on") {
ret_value.err_code = ret_value.Ret;
ret_value.session_id = ret_value.topafasfasfassession_id;
if (ret_value.remember_url && ret_value.topafasfasfassession_id) {
window.location.href = ret_value.remember_url;
return false;
}
}
}
if (ret_value.err_code != 0) {
login_btn_click_control = true;
setCookie('login_err_sum', ret_value.login_err_num);
login_msg_win('off')//隐藏登陆等待框
}
if (ret_value.err_code == 0) {
setCookie('login_err_sum', 0);
setCookies("login_way", 'user_pwd');
var expire = "";
if (ret_value.account_end != 0) expire = "您的账号将于" + ret_value.account_end + "到期!\n";
if (ret_value.pwd_remind != 0) expire += "您的密码将在" + ret_value.pwd_remind + "天后过期,请及时修改!\n";
if (expire) setCookie('expire',expire);
if (webvpn == 'on' && getCookie('webvpn_na') != "on") {
// webvpn需要将session_id直接发送至网关
login.webvpnGetSessionId(username,ret_value.session_id);
} else {
login.getSession_id();
}
} else if (ret_value.err_code == 10011) {
window.location.href = './client_scan.html';
} else if (ret_value.err_code == (err_num_base - 16)) {
$("#con_one_1_validate").show();
} else if (ret_value.err_code == (err_num_base - 20)) {
var lock_time;
if (getCookie('login_type') == 'webvpn') {
lock_time = ret_value.locktime;
} else {
var tmpd = eval('(' + ret_value.err_msg + ')');
lock_time = tmpd.locktime
}
showPopMessage('info', AUTH_USER_PAUSE_LOCK + '剩余时间' + lock_time + '秒');
setInterval(function () {
lock_time--;
if (lock_time >= 0) {
$("#showMsgCountent").text(AUTH_USER_PAUSE_LOCK + '剩余时间' + lock_time + '秒')
} else {
$(".closeWin").click();
clearInterval();
}
}, 1000);
} else if (ret_value.err_code == (err_num_base - 22)) {
document.getElementById("div_mask1").style.display = "block";
document.getElementById("first_modify_pwd").style.display = "block";
document.getElementById("first_msg").innerHTML = AUTH_USER_NEED_CHG_PWD_FOR_TIMEOUT;
document.getElementById("old_pwd").innerHTML = OLD_PWD;
document.getElementById("first_pwd").innerHTML = NEW_PWD;
document.getElementById("first_pwd_again").innerHTML = NEW_PWD_AGAIN;
document.getElementById("u_name").value = ret_value.user_name;
document.getElementById("first_pwd_btn").value = BTN_OK;
document.getElementById("first_pwd_close").value = BTN_CLOSE;
} else if (ret_value.err_code == (err_num_base - 23)) {
document.getElementById("div_mask1").style.display = "block";
document.getElementById("first_modify_pwd").style.display = "block";
document.getElementById("first_msg").innerHTML = AUTH_USER_NEED_CHG_PWD_SIMPLE;
document.getElementById("old_pwd").innerHTML = OLD_PWD;
document.getElementById("first_pwd").innerHTML = NEW_PWD;
document.getElementById("first_pwd_again").innerHTML = NEW_PWD_AGAIN;
document.getElementById("u_name").value = ret_value.user_name;
document.getElementById("first_pwd_btn").value = BTN_OK;
document.getElementById("first_pwd_close").value = BTN_CLOSE
} else if (ret_value.err_code == (err_num_base - 24)) {
//第一次登录,请修改初始密码
document.getElementById("div_mask1").style.display = "block";
document.getElementById("first_modify_pwd").style.display = "block";
document.getElementById("first_msg").innerHTML = AUTH_USER_NEED_CHG_PWD_FOR_FIRST;
document.getElementById("old_pwd").innerHTML = OLD_PWD;
document.getElementById("first_pwd").innerHTML = NEW_PWD;
document.getElementById("first_pwd_again").innerHTML = NEW_PWD_AGAIN;
document.getElementById("u_name").value = ret_value.user_name;
document.getElementById("first_pwd_btn").value = BTN_OK;
document.getElementById("first_pwd_close").value = BTN_CLOSE
} else if (ret_value.err_code == (err_num_base - 26)) {
document.getElementById("valid").value = "yes";
$("#con_one_1_validate").show();
showPopMessage('error', AUTH_PSW_ERR_MORE_AND_NO_GID);
} else if (ret_value.err_code == (err_num_base - 39)) {
//口令短信认证或RADIUS认证
sms_type = 1;
myTime = 0;
var myDate = new Date();
myTime = myDate.getTime();
topsec_error_times = getCookie("topsecsvfff"); //从网关得到可以输入短信次数
var sms_time = getCookie("topsecsveee"); //从网关得到短信认证时间
if (sms_time) {
sms_time_show(sms_time);
}
document.getElementById("div_mask1").style.display = "block";
document.getElementById("sugges").style.display = "block";
document.getElementById("sugges_tab").innerHTML = SUGGES_MSG;
document.getElementById("sugges_submit").value = BTN_OK;
document.getElementById("sugges_close").value = BTN_CLOSE;
document.getElementById("sms_txt").value = "";
} else if (ret_value.err_code == (err_num_base - 77)) { //增加功能:同一个用户设置了单地点登录,第一次登录后异常退出,第二次登录时候允许用户自己踢出前一个会话。
//点击确定按钮踢出
setTimeout(function () {
showPopMessage('infoBtn', '用户【' + CryptoJS.enc.Base64.parse(unescape(username)).toString(CryptoJS.enc.Utf8) + '】已登录,' + '\n踢出上一次会话,继续登录请按“确定”按钮,' + '\n返回登录页面请按“取消”按钮', function (f) {
if (f) {
login_msg_win('on')//显示登陆等待框
delete oThis.kickUserDataPwd.gid;
oThis.kickUserDataPwd.method = "kick_user";
var kickUserDataPwd = JSON.stringify(oThis.kickUserDataPwd);
var kick_user_by_pwd = host_url_sv + "api/v1/kick_user";
if (webvpn == 'on') {
if (getCookie('webvpn_na') == "on") {
setCookie('login_type', 'client');
} else {
setCookie('login_type', 'webvpn');
kick_user_by_pwd = "/vone/login/user_pswd_r";
kickUserDataPwd = 'U=' + username + '&P=' + passwd + '&Base64_U=' + username + '&Base64_P=' + passwd;
}
} else {
setCookie('login_type', 'client');
}
$.ajax({
url: kick_user_by_pwd,
type: 'POST',
data: kickUserDataPwd,
dataType: 'json',
success: function (data) {
var ret_data = eval(data);
if (webvpn == 'on') {
if (getCookie('webvpn_na') == "on") {
if (ret_data.err_code == 0) {
login.getSession_id();
} else {
login_msg_win('off')//隐藏登陆等待框
showPopMessage('error', ret_data.err_code);
}
} else {
if (ret_data.Ret == 0) {
if (webvpn == 'on' && getCookie('webvpn_na') != "on") {
// webvpn需要将session_id直接发送至网关
login.webvpnGetSessionId(username,ret_data.topafasfasfassession_id);
} else {
login.getSession_id();
}
} else {
login_msg_win('off')//隐藏登陆等待框
showPopMessage('error', ret_data.Ret);
}
}
} else {
if (ret_data.err_code == 0) {
login.getSession_id();
} else {
login_msg_win('off')//隐藏登陆等待框
showPopMessage('error', ret_data.err_code);
}
}
}
});
} else {
document.getElementById("identifying_code").click();
}
}, true);
}, 1000);
} else {
document.getElementById("identifying_code").click();
showPopMessage('error', ret_value.err_code);
}
}
});
}
}
var flag_login = false;
login.checkNaStatus = function () {
var url = host_url_sv + "api/v1/query_statistics";
var str = '{"method": "query_statistics"}';
$.ajax({
url: url,
type: 'post',
data: str,
dataType: 'json',
success: function (data) {
if (data.terr_code == 0) {
if (data.tstate_id == 6) {
flag_login = true;
} else {
flag_login = false;
}
} else {
flag_login = false;
clearInterval(timer);
login_msg_win('off')//隐藏登陆等待框
showPopMessage('error', data.terr_code);
checkErrorLogout();
}
}
});
return flag_login;
}
login.anonym = function () {
login_anonym_flag = 1;
$("#submit_1").val(LOGINING_SUBMIT);
login.check_form();
}
function checkErrorLogout() {
var url = host_url_sv + "api/v1/logout";
var str = '{"method":"logout"}';
try {
$.support.cors = true;
$.ajax({
url: url,
type: 'POST',
data: str,
dataType: 'json',
success: function (data) {
window.location.href = "./index.html??";
},
error: function (data) {
window.location.href = "./index.html??";
}
});
} catch (e) { }
}
/******************* 用户名密码认证 结束 *************************/
// 2次密码是否相同 check
login.check_dif = function (ft, ft_ag) {
if (ft != ft_ag) {
showPopMessage('error', LOGIN_FIRST_PWD_DIF_WARNIG);
return false;
}
return true;
}
/******************* 首次登录修改密码 开始 *************************/
login.pwdAfter = function () {
var ret_value;
if (login.pwdXmlHttp.readyState == 4) {
if (login.pwdXmlHttp.status == 200) {
ret_value = eval('(' + login.pwdXmlHttp.responseText + ')');
if (ret_value.Ret == 0) {
document.getElementById("pwd_1").value = "";
$("#first_modify_pwd").hide();
$("#div_mask1").hide();
showPopMessage('info', MOD_PWD_SUCCESS);
} else {
showPopMessage('error', ret_value.Ret);
}
}
}
}
login.check_first_pwd = function () {
var old_pwd = document.getElementById("old_pwd_txt").value;
var ft_pwd = document.getElementById("first_pwd_txt").value;
var ft_pwd_ag = document.getElementById("first_pwd_again_txt").value;
var u_name = document.getElementById("u_name").value;
if (login.check_passwd(old_pwd) && (login.check_dif(ft_pwd, ft_pwd_ag)) && (login.check_passwd(ft_pwd))) {
u_name = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(u_name));
old_pwd = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(old_pwd));
ft_pwd = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(ft_pwd));
login.pwdXmlHttp = getXmlHttp();
if (getCookie('login_type') == 'webvpn') {
var str_p = "U=" + escape(u_name) + "&P1=" + escape(old_pwd) + "&P2=" + escape(ft_pwd);
login.pwdXmlHttp.open("POST", "/vone/chg_pwd", false);
} else {
var str_p = { method: 'chg_pwd', U: escape(u_name), P1: old_pwd, P2: ft_pwd }
str_p = JSON.stringify(str_p);
login.pwdXmlHttp.open("POST", host_url_sv + 'api/v1/chg_pwd', false);
}
login.pwdXmlHttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded;');
login.pwdXmlHttp.onreadystatechange = login.pwdAfter;
login.pwdXmlHttp.send(str_p);
}
}
/******************* 修改密码 结束 *************************/
//----------------------login.js结束 -------------------------------------------
function get_browser_type() {
if (navigator.userAgent.indexOf("MSIE") > 0) {
return "IE";
}
if (navigator.userAgent.indexOf("Firefox") > 0) {
return "Mozilla";
}
if (navigator.userAgent.indexOf("Chrome") > 0) {
return "Chrome";
}
}
//------------------login_style.html页面中的脚本 begin----------------------
function setCookies(set_name, set_value) {
document.cookie = set_name + "=" + escape(set_value) + "; expires=Fri, 31 Dec 2100 23:59:59 GMT;";
}
function setloginCookie(str) {
document.cookie = "topsecsvportalstyle=" + escape(str) + "; expires=Fri, 31 Dec 2100 23:59:59 GMT; path=/;";
}
function setportalCookie(str) {
document.cookie = "portal_style=" + escape(str) + "; expires=Fri, 31 Dec 2100 23:59:59 GMT; path=/;";
}
function setCookiesNoescape(set_name, set_value) {
document.cookie = set_name + "=" + set_value + "; expires=Fri, 31 Dec 2100 23:59:59 GMT;";
}
//------------------login_style.html页面中的脚本 end----------------------
function IEVersion() {
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if (isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if (fIEVersion == 7) {
return 7;
} else if (fIEVersion == 8) {
return 8;
} else if (fIEVersion == 9) {
return 9;
} else if (fIEVersion == 10) {
return 10;
} else {
return 6; //IE版本<=7
}
} else if (isEdge) {
return 'edge'; //edge
} else if (isIE11) {
return 11; //IE11
} else {
return -1; //不是ie浏览器
}
}
// 动态加载css文件
function loadStyles(url) {
var link = document.createElement("link");
link.type = "text/css";
link.rel = "stylesheet";
link.href = url;
document.getElementsByTagName("head")[0].appendChild(link);
}
function login_msg_win(status) {
if(status == 'on'){
document.getElementById("div_mask1").style.display = "block";
$('.login_information').css('display', 'block');
}else{
document.getElementById("div_mask1").style.display = "none";
$('.login_information').css('display', 'none');
}
}
function check_IP(str) {
var ipv4 = /^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$/;
var ipv6 = /^\[|\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*|\]$/;
if (ipv4.test(str) || ipv6.test(str)) {
return true;
}else{
return false;
}
}
/*
* jQuery placeholder, fix for IE6,7,8,9
*
*/
var JPlaceHolder = {
//检测 浏览器是否支持placehoder
_check : function(){
return 'placeholder' in document.createElement('input');
},
//初始化
init : function(){
if(!this._check()){
this.fix();
}
},
//修复
fix : function(){
// 使用jquery 获取页面所有设置了placehoder的input
jQuery(':input[placeholder]').each(function(index, element) {
// 获取placeholder的文字
var self = $(this), txt = self.attr('placeholder');
// 在input外包裹一个相对定位用的div
self.wrap($('