修改拦截策略的证书信息校验规则:
1. Keyring的下拉列表显示全部已生效的证书; 2. 如选择了实体证书,必须配置域名,或者IP与域名的组合配置; 3. 域名配置,如匹配方式为完全匹配,则域名必须与所选择的实体证书的CN和SAN相同。如匹配方式为后缀匹配,则域名须与所选择的实体证书的CN和SAN后缀相同; 4. 如选择了中间证书或者根证书,则可配置IP,或者域名,或者两者组合; Conflicts: src/main/resources/messages/message_en.properties src/main/resources/messages/message_ru.properties src/main/resources/messages/message_zh_CN.properties
This commit is contained in:
@@ -50,15 +50,25 @@
|
||||
var flag = true;
|
||||
var actionValue=$("input[name=action]:checked").val();
|
||||
|
||||
flag=validDomain(actionValue);
|
||||
if(!flag){
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//代表所有业务都隐藏了,提示必须增加一种业务数据
|
||||
if($(".boxSolid").length ==$(".boxSolid.hidden").length){
|
||||
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
|
||||
return;
|
||||
}else{
|
||||
$(".boxSolid").each(function(){
|
||||
if($(this).hasClass("intercept_domain_div")){
|
||||
var inputObj = $(this).find("input[name$='cfgRegionCode']");
|
||||
flag=validDomain(actionValue,inputObj);
|
||||
if(!flag){
|
||||
return;
|
||||
}
|
||||
}
|
||||
});
|
||||
if(!flag){
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
//代表所有区域都隐藏了,提示必须增加个区域信息
|
||||
@@ -188,20 +198,27 @@
|
||||
$("#certDomain").addClass("hidden");
|
||||
}
|
||||
}
|
||||
var validDomain=function(actionValue){
|
||||
var validDomain=function(actionValue,inputObj){
|
||||
var flag=false;
|
||||
if(actionValue == 1){
|
||||
var serviceType=$(inputObj).attr("serviceType");
|
||||
var prefixName=$(inputObj).attr("name").split("cfgRegionCode")[0];
|
||||
//var matchMethod=$("select[name='"+prefixName+"matchMethod']").val();
|
||||
var cert=$(".monitAction").find("select[name='userRegion1']").val();
|
||||
var keyringType=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("keyringType");
|
||||
|
||||
if(cert != '' && keyringType == 'end-entity'){
|
||||
var domainDiv = $(inputObj).parent(".intercept_domain_div").is(':hidden');
|
||||
if(domainDiv){
|
||||
top.$.jBox.tip("<spring:message code='intercep_domain_required_tip'/>", "<spring:message code='info'/>");
|
||||
return false;
|
||||
}
|
||||
var cn=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("cn");
|
||||
if(cn !='' && cn != null){
|
||||
var cnReg = new RegExp('^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\'+cn.replace("*","")+')+$');
|
||||
var san=$(".monitAction").find("select[name='userRegion1']").find("option[value='"+cert+"']").attr("san");
|
||||
if(san != null && san !=''){
|
||||
$("input[name$='cfgRegionCode'").each(function(){
|
||||
var serviceType=$(this).attr("serviceType");
|
||||
var prefixName=$(this).attr("name").split("cfgRegionCode")[0];
|
||||
//$(".intercept_domain_div").each(function(){
|
||||
if(serviceType == "intercept_domain"){
|
||||
var domain=$("input[name='"+prefixName+"cfgKeywords']").val();
|
||||
var domain=domain.trim();
|
||||
@@ -212,25 +229,26 @@
|
||||
break;
|
||||
}
|
||||
var sanStr=san.split(",")[i].trim();
|
||||
if(sanStr.indexOf("*") >-1){
|
||||
if(sanStr.indexOf("*") >-1){//如证书域名包含*,则用该域名与配置进行后缀匹配
|
||||
var sanReg= new RegExp('^(?=^.{3,255}$)[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\'+sanStr.replace("*","")+')+$');
|
||||
if(sanReg.exec(domain) != null){
|
||||
flag=true;
|
||||
}
|
||||
}else{
|
||||
}else{//证书域名不包含*,则该域名与配置完全匹配
|
||||
if(sanStr == domain){ //完全匹配
|
||||
flag=true;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
if(!flag){
|
||||
if(cn.indexOf("*") > -1){
|
||||
if(cn.indexOf("*") > -1){//如证书域名包含*,则用该域名与配置进行后缀匹配
|
||||
if(cnReg.exec(domain) != null){
|
||||
flag=true;
|
||||
}
|
||||
}else{
|
||||
}else{//证书域名不包含*,则该域名与配置完全匹配
|
||||
if(cn == domain){ //完全匹配
|
||||
flag=true;
|
||||
}
|
||||
@@ -246,12 +264,10 @@
|
||||
}else{
|
||||
$("div[for='"+prefixName+"cfgKeywords']").html("");
|
||||
}
|
||||
});
|
||||
//});
|
||||
}else{
|
||||
flag=false;
|
||||
$("input[name$='cfgRegionCode'").each(function(){
|
||||
var serviceType=$(this).attr("serviceType");
|
||||
var prefixName=$(this).attr("name").split("cfgRegionCode")[0];
|
||||
//$("input[name$='cfgRegionCode'").each(function(){
|
||||
if(serviceType == "intercept_domain"){
|
||||
if(error ==null || error.trim() == ''){
|
||||
$("div[for='"+prefixName+"cfgKeywords']").html("");
|
||||
@@ -259,13 +275,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
//});
|
||||
}
|
||||
}else{
|
||||
flag=false;
|
||||
$("input[name$='cfgRegionCode'").each(function(){
|
||||
var serviceType=$(this).attr("serviceType");
|
||||
var prefixName=$(this).attr("name").split("cfgRegionCode")[0];
|
||||
//$("input[name$='cfgRegionCode'").each(function(){
|
||||
var error=$("div[for='"+prefixName+"cfgKeywords']").html();
|
||||
if(serviceType == "intercept_domain"){
|
||||
if(error ==null || error.trim() == ''){
|
||||
@@ -274,7 +288,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
//});
|
||||
}
|
||||
}else{
|
||||
flag=true;
|
||||
|
||||
Reference in New Issue
Block a user