51 Commits

Author SHA1 Message Date
段冬梅
bb7197f098 20190610之前部署的sql记录 2019-07-03 15:01:25 +08:00
duandongmei
de1eb563a3 时间间隔默认5分钟,日志导出最大条数修改为2万 2019-06-03 17:07:53 +08:00
wangwei
af28efc76d 修复审核通过配置修改成功提示信息bug
Conflicts:
	src/main/java/com/nis/web/controller/configuration/proxy/FileStrategyController.java
2019-05-29 14:01:14 +08:00
wangxin
973f071897 删除无必要的判断 2019-05-28 19:51:46 +08:00
wangxin
e8e948ce7d 修复packet ip address asn切换到ip配置时,没有正确获取到配置属性的bug 2019-05-28 19:51:01 +08:00
wangwei
df9665376f 完善修改配置数据时提示信息问题 2019-05-27 10:17:42 +08:00
wangwei
2858e643ac 修复文件摘要修改功能请求服务接口失败 2019-05-27 10:15:59 +08:00
wangxin
8d2e30b952 Steam三个菜单的form表单当action 为monit的时候ip和账号必选一个 2019-05-23 10:22:24 +08:00
duandongmei
19c8492cc8 热修改功能打开 2019-05-20 15:57:52 +08:00
段冬梅
328f266046 Update README.md 2019-05-20 15:48:57 +08:00
duandongmei
a9a15f4c0a 610上线内容回复UPDATE_ACTION 2019-05-20 15:46:21 +08:00
duandongmei
025873ce76 综合服务修改接口未上线前,修改恢复为INSERT_ACTION动作 2019-05-19 11:23:22 +08:00
duandongmei
28771355cc http client增加错误信息打印 2019-05-17 15:30:18 +08:00
duandongmei
0629e8b1de 修改HTTP client的超时时间为500秒 2019-05-17 15:28:59 +08:00
duandongmei
8d7a6c69b6 流媒体协议修改权限标识 2019-05-17 09:45:22 +08:00
wangxin
fe3f632046 IP范围的起始IP必须小于终止IP验证修复 2019-05-15 11:26:54 +08:00
duandongmei
9527b41592 样例文件界面,当level非空时,也需根据动作来隐藏和打开level属性 2019-05-15 09:46:24 +08:00
李皓宸
6312a65351 修改 导入时源IP/目的IP为默认值时提示语 2019-05-14 19:25:58 +08:00
李皓宸
f6c37c7bda 修改 导入时源IP/目的IP为默认值时的提示语 2019-05-14 18:39:40 +08:00
李皓宸
c81dd92aca 修复 导入时只有源IP或目的IP的配置 不能为0.0.0.0
同时有源IP和目的IP两个IP不能一样,仅有一个可为0.0.0.0
2019-05-14 16:57:13 +08:00
李皓宸
9f4264d878 1.修改 导入时只有源IP或目的IP的配置 不能为0.0.0.0
同时有源IP和目的IP两个IP不能一样,仅有一个可为0.0.0.0
2.修复 新增功能和导入功能的IP校验不一致问题
2019-05-13 19:24:07 +08:00
duandongmei
d4e153533a APP相关模块统一使用appCode作为检索条件 2019-05-13 19:10:21 +08:00
李皓宸
35ca1636ef 导出功能IP Spoofing Spoofing内容显示不一致 2019-05-13 14:50:15 +08:00
duandongmei
44486b98cb APP特征模块增加app非空判断 2019-05-13 10:32:42 +08:00
duandongmei
ea456f83d0 HTTPS重定向,导入增加httpsURL提示;
解决批量删除会删除审核未通过的配置BUG
2019-05-10 18:31:27 +08:00
李皓宸
b4f9eac0d3 删除通过或未通过配置时 删除提示更改为"只能删除未审核的配置与取消审核通过的配置" 2019-05-10 16:47:05 +08:00
李皓宸
54333afe0b 修复新增、导入按钮class属性 2019-05-10 15:57:56 +08:00
李皓宸
48806bd775 解决配置导入时 目的端口未能正确校验 2019-05-10 15:01:31 +08:00
duandongmei
23ae0f08d3 批量增加isValid和isAudit检索条件 2019-05-09 17:31:40 +08:00
duandongmei
21ca3bc804 定时任务daily的过期时间调整 2019-05-09 17:26:13 +08:00
李皓宸
d9110dfa14 业务配置->流 和 日志检索->流内的模块 "阻断"显示更改为"封堵(丢弃)" 2019-05-09 16:36:06 +08:00
duandongmei
fd2d285b92 批量操作条件取反 2019-05-09 11:25:00 +08:00
duandongmei
8a27636007 批量操作增加限制条件 2019-05-09 09:52:54 +08:00
zhangwenqing
89336a3677 未审核与取消的配置可批量删除. 2019-05-08 18:23:34 +08:00
wangxin
144900d6df 拦截策略列表doLog列注释 2019-05-08 15:35:49 +08:00
李皓宸
ba758cab58 修改中文国际化文件中部分英文翻译 2019-05-08 11:27:21 +08:00
wangwei
10fb06f5bf 修改blacklist国际化配置 2019-05-08 10:42:43 +08:00
wangwei
dd37178cfc 修复ip地址监测blacklist显示bug 2019-05-08 10:29:36 +08:00
wangwei
46fff54557 删除多余新增按钮的class属性 2019-05-07 15:26:44 +08:00
李皓宸
f1fc6ee9aa VOIP业务配置审核通过,没有审核人的问题解决 2019-05-07 14:51:30 +08:00
wangwei
dde951fe4a 所有新增、导入按钮分别增加class属性 2019-05-07 14:02:06 +08:00
李皓宸
33fd4df21d 1.菜单中的中文语言下,部分菜单不是中文的问题解决
2.VOIP业务审核通过,没有审核时间的问题解决
2019-05-07 13:52:44 +08:00
zhangwenqing
1882d011cb 清空配置并失效所有定时任务 2019-05-07 10:41:17 +08:00
duandongmei
cd977ed81a 此版本暂时隐藏生效状态可修改的功能 2019-05-07 09:42:59 +08:00
wangxin
e8a5c506e9 修改IPV6错误提示 2019-05-06 18:51:05 +08:00
zhangwenqing
f8e1b8f093 清空配置功能增加调用相应服务接口步骤 2019-05-06 16:28:37 +08:00
wangwei
c30ab53f00 修复网页关键字定时器界面显示不完整BUG 2019-05-06 14:09:35 +08:00
wangwei
ea33bae40f ASN IP配置重置按钮重置不全BUG 2019-05-06 13:55:07 +08:00
wangwei
d1082f539e 修复网页关键字定时器界面显示不完整BUG 2019-05-06 13:52:05 +08:00
duandongmei
c1188539b5 SSL配置取消失败BUG; 2019-05-06 10:13:15 +08:00
wangwei
269f4e0644 更新俄文国际化配置文件 2019-05-05 19:46:39 +08:00
141 changed files with 3274 additions and 1071 deletions

View File

@@ -1 +1,3 @@
在公共分组功能逻辑完善之前此分支为ntc界面系统的全集上线升级分支合并版。
610功能升级
系统需要支持对 生效中的配置 进行修改的功能;
统计的时间修改为一个月,性能是否可以;

View File

@@ -63,6 +63,10 @@ public class BaseCfg<T> extends BaseEntity<T> implements Cloneable{
protected String hColumns;//导出隐藏列
protected String compileIdNew;// 查询 配置ID 范围
//批量操作时记录isAudit和isValid检索条件
protected String batchAuditValue;
protected String batchValidValue;
/**
* 定时任务信息
@@ -1004,6 +1008,17 @@ public class BaseCfg<T> extends BaseEntity<T> implements Cloneable{
public void setSchedule(ScheduleCfg schedule) {
this.schedule = schedule;
}
public String getBatchAuditValue() {
return batchAuditValue;
}
public String getBatchValidValue() {
return batchValidValue;
}
public void setBatchAuditValue(String batchAuditValue) {
this.batchAuditValue = batchAuditValue;
}
public void setBatchValidValue(String batchValidValue) {
this.batchValidValue = batchValidValue;
}
}

View File

@@ -330,7 +330,7 @@ public class ScheduleCfgJob implements Job {
Calendar invalidCal=Calendar.getInstance();
invalidCal.setTime(invalidTime);
invalidCal.add(Calendar.MINUTE, 2);
long invalidTimes=validStartCal.getTime().getTime();
long invalidTimes=invalidCal.getTime().getTime();
long currentTimes=new Date().getTime();
//开始时间设置为今天已过时,则将开始时间加上周期
if((currentTimes-validStartTimes) > 0) {

View File

@@ -190,6 +190,7 @@ public class ConfigServiceUtil {
result=response.readEntity(String.class);
}
} catch (Exception e) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
if(response != null && response.getStatus() == 200){
@@ -235,6 +236,7 @@ public class ConfigServiceUtil {
result=response.readEntity(String.class);
}
} catch (Exception e) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
if(response != null && response.getStatus() == 200){
@@ -244,6 +246,7 @@ public class ConfigServiceUtil {
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+result);
}
} catch (Exception e) {
e.printStackTrace();
logger.error("postCallbackCfg()",e);
throw e;
}finally {
@@ -279,6 +282,7 @@ public class ConfigServiceUtil {
result=response.readEntity(String.class);
}
} catch (Exception e) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
if(response != null && response.getStatus() == 200){
@@ -326,6 +330,7 @@ public class ConfigServiceUtil {
result=response.readEntity(String.class);
}
} catch (Exception e) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
if(response != null && response.getStatus() == 200){
@@ -375,6 +380,7 @@ public class ConfigServiceUtil {
result=response.readEntity(String.class);
}
} catch (Exception e) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
if(response !=null && response.getStatus() == 200){
@@ -418,6 +424,7 @@ public class ConfigServiceUtil {
// bean = (ToMaatResult) JSONObject.toBean(resObject,ToMaatResult.class);
//获取响应结果
} catch (Exception e) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>:"+result);
}
} catch (Exception e) {
@@ -452,6 +459,7 @@ public class ConfigServiceUtil {
result=response.readEntity(String.class);
}
} catch (Exception e) {
e.printStackTrace();
throw new MaatConvertException("<spring:message code=\"request_service_failed\"/>");
}
if(response !=null && response.getStatus() == 200){

View File

@@ -363,6 +363,7 @@ public final class Constants {
public static final String FILE_UPLOAD_CFG = Configurations.getStringProperty("fileUploadCfg","fileUploadSources");
public static final String FILE_DIGEST_CFG=Configurations.getStringProperty("fileDigestCfg","fileDigestSources");
public static final String CONFIG_ID_SOURCES=Configurations.getStringProperty("configIdSources","configPzIdSources");
public static final String DEL_ALL_CFG=Configurations.getStringProperty("delAllCfg","delAllConfig");
//日志查询接口URL
public static final String LOG_BASE_URL = Configurations.getStringProperty("logBaseUrl","");
public static final String NTC_SERVICE_REPORT=Configurations.getStringProperty("ntcServiceReport","ntcServiceReport");

View File

@@ -306,6 +306,13 @@ public class ExcelCsv {
dict="block_drop";
val = msgProp.getProperty(dict,dict);
}
if ("action".equals(ef.title()) && dict.equals("action_reject")
&& (Reflections.invokeGetter(e, "service").toString().equals("35")
|| Reflections.invokeGetter(e, "service").toString().equals("33")
|| Reflections.invokeGetter(e, "service").toString().equals("36"))) {
dict="block_drop";
val = msgProp.getProperty(dict,dict);
}
//ip spoofing redirect动作修改为Spoofing
if(ef.title().equals("block_type")
&& (Reflections.invokeGetter(e, "serviceId").toString().equals("518"))) {

View File

@@ -266,6 +266,9 @@ public class ExportExcel {
commentStr=commentStr+msgProp.getProperty("rule_desc_tip")+":\n";
index++;
//1、非空
commentStr=commentStr+""+msgProp.getProperty("https_url_format_tip")+"\n";
index++;
//1、非空
commentStr=commentStr+""+msgProp.getProperty("required")+"\n";
index++;
}
@@ -2308,6 +2311,13 @@ public class ExportExcel {
dict="block_drop";
val = msgProp.getProperty(dict,dict);
}
if ("action".equals(ef.title()) && dict.equals("action_reject")
&& (Reflections.invokeGetter(e, "service").toString().equals("35")
|| Reflections.invokeGetter(e, "service").toString().equals("33")
|| Reflections.invokeGetter(e, "service").toString().equals("36"))) {
dict="block_drop";
val = msgProp.getProperty(dict,dict);
}
//ip spoofing redirect动作修改为Spoofing
if(ef.title().equals("block_type")
&& (Reflections.invokeGetter(e, "serviceId").toString().equals("518"))) {

View File

@@ -488,11 +488,11 @@ public class ImportBigExcel extends XLSXCovertCSVReader{
if (valType == String.class){
String s = String.valueOf(val.toString().trim());
//0.0.0.0表示任意IP的含义
if(StringUtils.endsWith(s, ".0") && !s.endsWith("0.0.0.0")){
val = StringUtils.substringBefore(s, ".0");
}else{
val=val == null ? "" : StringEscapeUtils.escapeHtml4(val.toString().trim());
}
// if(StringUtils.endsWith(s, ".0") && !s.endsWith("0.0.0.0")){
// val = StringUtils.substringBefore(s, ".0");
// }else{
val=val == null ? "" : StringEscapeUtils.escapeHtml4(val.toString().trim());
// }
}else if (valType == Integer.class){
val = Double.valueOf(val.toString().trim()).intValue();
}else if (valType == Long.class){

View File

@@ -138,6 +138,7 @@ public class CheckIpFormatThread implements Callable<String>{
// doLog属性检验
this.validDoLog(baseIpCfg,errInfo);
// 特殊字段验证
// packet ip ratelimit
if (serviceDict!=null && serviceDict.getAction().intValue() == 64 && (serviceDict.getFunctionId().intValue() == 5
@@ -594,6 +595,23 @@ public class CheckIpFormatThread implements Callable<String>{
String subfix=baseIpCfg.getSrcIpAddress().split("-")[1];
baseIpCfg.setSrcIpAddress(prefix+"-"+prefix.substring(0, prefix.lastIndexOf(".")+1)+subfix);
}
//Tip:判断业务是否只展示源IP列,如果是,判断源IP是否是默认值,如果是默认值,提示源IP不能是默认值
if (configIpPortShow.indexOf("1") > -1 && configIpPortShow.indexOf("3") == -1) {// 源IP必填
String srcIpAddress = baseIpCfg.getSrcIpAddress();
Pattern ip4 = Constants.IPV4_IP_PATTERN;
Pattern ip6 = Constants.IPV6_IP_PATTERN;
Matcher ip4Matcher = ip4.matcher(srcIpAddress);
Matcher ip6Matcher = ip6.matcher(srcIpAddress);
if (ip4Matcher.matches() && srcIpAddress.startsWith("0.0.0.0")) {
errInfo.append(prop.getProperty("client_ip")+" "
+ String.format(prop.getProperty("can_not_be"), Constants.IPV4_DEFAULT_IP_VALUE)
+ ";");
} else if (ip6Matcher.matches() && srcIpAddress.startsWith("::")) {
errInfo.append(prop.getProperty("client_ip")+" "
+ String.format(prop.getProperty("can_not_be"), Constants.IPV6_DEFAULT_IP_VALUE)
+ ";");
}
}
}
if (StringUtils.isBlank(baseIpCfg.getDestIpAddress())) {
destIpEmpty = true;
@@ -605,6 +623,23 @@ public class CheckIpFormatThread implements Callable<String>{
String subfix=baseIpCfg.getDestIpAddress().split("-")[1];
baseIpCfg.setDestIpAddress(prefix+"-"+prefix.substring(0, prefix.lastIndexOf(".")+1)+subfix);
}
//Tip:判断业务是否只展示目的IP列,如果是,判断目的IP是否是默认值,如果是默认值,提示目的IP不能是默认值
if (configIpPortShow.indexOf("3") > -1 && configIpPortShow.indexOf("1") == -1) {// 目的IP必填
String destIpAddress = baseIpCfg.getDestIpAddress();
Pattern ip4 = Constants.IPV4_IP_PATTERN;
Pattern ip6 = Constants.IPV6_IP_PATTERN;
Matcher ip4Matcher = ip4.matcher(destIpAddress);
Matcher ip6Matcher = ip6.matcher(destIpAddress);
if (ip4Matcher.matches() && destIpAddress.startsWith("0.0.0.0")) {
errInfo.append(prop.getProperty("server_ip")+" "
+ String.format(prop.getProperty("can_not_be"), Constants.IPV4_DEFAULT_IP_VALUE)
+ ";");
} else if (ip6Matcher.matches() && destIpAddress.startsWith("::")) {
errInfo.append(prop.getProperty("server_ip")+" "
+ String.format(prop.getProperty("can_not_be"), Constants.IPV6_DEFAULT_IP_VALUE)
+ ";");
}
}
}
if (StringUtils.isBlank(baseIpCfg.getSrcPort())) {
srcPortEmpty = true;
@@ -666,6 +701,12 @@ public class CheckIpFormatThread implements Callable<String>{
}
baseIpCfg.setIpType(4);
}
//Tip:增加源IP和目的IP是否相等,如果相等,提示目的IP不能为空
if ((configIpPortShow.indexOf("3") > -1 && configIpPortShow.indexOf("1") > -1)
&& (baseIpCfg.getDestIpAddress().equals(baseIpCfg.getSrcIpAddress()))) {
errInfo.append(String.format(prop.getProperty("can_not_null"),
prop.getProperty("server_ip", "Server IP")) + ";");
}
}
} else if (srcIpEmpty) {// 源IP为空
@@ -707,6 +748,12 @@ public class CheckIpFormatThread implements Callable<String>{
}
baseIpCfg.setIpType(4);
}
//Tip:增加源IP和目的IP是否相等,如果相等,提示源的IP不能为空
if ((configIpPortShow.indexOf("3") > -1 && configIpPortShow.indexOf("1") > -1)
&& (baseIpCfg.getSrcIpAddress().equals(baseIpCfg.getDestIpAddress()))) {
errInfo.append(String.format(prop.getProperty("can_not_null"),
prop.getProperty("client_ip", "Client IP")) + ";");
}
}
} else {// 全不为空
String srcMatchType = this.validIPAddress("client_ip", errInfo, baseIpCfg.getSrcIpAddress(), ipType,
@@ -834,7 +881,7 @@ public class CheckIpFormatThread implements Callable<String>{
baseIpCfg.setDestPortPattern(1);
}
baseIpCfg.setDestPort(baseIpCfg.getDestPort().trim());
boolean validDestPort = this.validPort(errInfo, baseIpCfg.getSrcPort(),
boolean validDestPort = this.validPort(errInfo, baseIpCfg.getDestPort(),
srcPortPattern,"server_port");
if (baseIpCfg.getProtocol()==null) {
@@ -901,6 +948,10 @@ public class CheckIpFormatThread implements Callable<String>{
// TODO 判断Direction的值
this.validDirection(errInfo, baseIpCfg.getDirection(), direction);
}
//IP校验
// this.validSrcAndDescIp(baseIpCfg.getSrcIpAddress(), baseIpCfg.getDestIpAddress(), configIpPortShow,errInfo);
if (errInfo.toString().length() > 0) {//
errTip.append(String.format(prop.getProperty("line"), baseIpCfg.getIndex()) + ",");
errTip.append(errInfo);

View File

@@ -2749,45 +2749,6 @@ public class BaseController {
//全部审核通过,只查询当前条件下的所有未审核的配置 -批量审核通过/不通过
if(auditType.equals(1) || auditType.equals(2)) {
searchCfg.setIsValid(0);
searchCfg.setIsAudit(0);
searchAppCfg.setIsValid(0);
searchAppCfg.setIsAudit(0);
searchDigestCfg.setIsValid(0);
searchDigestCfg.setIsAudit(0);
searchFileSampleCfg.setIsValid(0);
searchFileSampleCfg.setIsAudit(0);
searchObjKeyringCfg.setIsValid(0);
searchObjKeyringCfg.setIsAudit(0);
searchTrustedCaCertCfg.setIsValid(0);
searchTrustedCaCertCfg.setIsAudit(0);
searchTrustedCaCrlCfg.setIsValid(0);
searchTrustedCaCrlCfg.setIsAudit(0);
searchDnsResStrategy.setIsValid(0);
searchDnsResStrategy.setIsAudit(0);
searchDnsIpCfg.setIsValid(0);
searchDnsIpCfg.setIsAudit(0);
searchIpPortCfg.setIsValid(0);
searchIpPortCfg.setIsAudit(0);
searchSignSampleCfg.setIsValid(0);
searchSignSampleCfg.setIsAudit(0);
searchDdosIpCfg.setIsValid(0);
searchDdosIpCfg.setIsAudit(0);
searchAppIpCfg.setIsValid(0);
searchAppIpCfg.setIsAudit(0);
searchAppHttpCfg.setIsValid(0);
searchAppHttpCfg.setIsAudit(0);
searchAppDomainCfg.setIsValid(0);
searchAppDomainCfg.setIsAudit(0);
searchAppTopicCfg.setIsValid(0);
searchAppTopicCfg.setIsAudit(0);
searchAppFeatureIndex.setIsValid(0);
searchAppFeatureIndex.setIsAudit(0);
searchAppSslCertCfg.setIsValid(0);
searchAppSslCertCfg.setIsAudit(0);
searchAsnIpCfg.setIsValid(0);
searchAsnIpCfg.setIsAudit(0);
if(auditType.equals(1)) {
auditBatchCfg.setIsAudit(1);
auditBatchCfg.setIsValid(1);
@@ -2798,45 +2759,6 @@ public class BaseController {
auditBatchCfg.setAuditTime(new Date());
auditBatchCfg.setAuditorId(UserUtils.getUser().getId());
}else {
//全部取消通过,只查询当前条件下的所有审核通过的配置
searchCfg.setIsValid(1);
searchCfg.setIsAudit(1);
searchAppCfg.setIsValid(1);
searchAppCfg.setIsAudit(1);
searchDigestCfg.setIsValid(1);
searchDigestCfg.setIsAudit(1);
searchFileSampleCfg.setIsValid(1);
searchFileSampleCfg.setIsAudit(1);
searchObjKeyringCfg.setIsValid(1);
searchObjKeyringCfg.setIsAudit(1);
searchTrustedCaCertCfg.setIsValid(1);
searchTrustedCaCertCfg.setIsAudit(1);
searchTrustedCaCrlCfg.setIsValid(1);
searchTrustedCaCrlCfg.setIsAudit(1);
searchDnsResStrategy.setIsValid(1);
searchDnsResStrategy.setIsAudit(1);
searchDnsIpCfg.setIsValid(1);
searchDnsIpCfg.setIsAudit(1);
searchIpPortCfg.setIsValid(1);
searchIpPortCfg.setIsAudit(1);
searchSignSampleCfg.setIsValid(1);
searchSignSampleCfg.setIsAudit(1);
searchDdosIpCfg.setIsValid(1);
searchDdosIpCfg.setIsAudit(1);
searchAppIpCfg.setIsValid(1);
searchAppIpCfg.setIsAudit(1);
searchAppHttpCfg.setIsValid(1);
searchAppHttpCfg.setIsAudit(1);
searchAppDomainCfg.setIsValid(1);
searchAppDomainCfg.setIsAudit(1);
searchAppTopicCfg.setIsValid(1);
searchAppTopicCfg.setIsAudit(1);
searchAppFeatureIndex.setIsValid(1);
searchAppFeatureIndex.setIsAudit(1);
searchAppSslCertCfg.setIsValid(1);
searchAppSslCertCfg.setIsAudit(1);
searchAsnIpCfg.setIsValid(1);
searchAsnIpCfg.setIsAudit(1);
auditBatchCfg.setIsAudit(3);
auditBatchCfg.setIsValid(0);
@@ -3296,11 +3218,42 @@ public class BaseController {
//批量审核通过时如果没有携带isValid检索条件返回界面需要将isValid置为null
if(!StringUtil.isEmpty(entity)) {
BaseCfg base=(BaseCfg)entity ;
if(!StringUtil.isEmpty(base.getSeltype()) && !base.getSeltype().equals("isValid")) {
base.setIsValid(null);
BeanUtils.copyProperties(base, entity);
base.setBatchAuditValue("");
base.setBatchValidValue("");
//配置目标状态1 1 生效,isAudit条件置为1有selType条件,且不是isValid不改没有sel改为isValid并且为1
if(base.getIsAudit()==1 && base.getIsValid()==1){
base.setIsAudit(1);
if(!StringUtil.isEmpty(base.getSeltype()) && !base.getSeltype().equals("isValid")) {
base.setIsValid(null);
}else{
base.setIsValid(1);
base.setSeltype("isValid");
}
}
//配置目标状态2 0 不通过,isAudit条件置为2有selType条件,且不是isValid不改没有sel改为isValid并且为0
if(base.getIsAudit()==2 && base.getIsValid()==0){
base.setIsAudit(2);
if(!StringUtil.isEmpty(base.getSeltype()) && !base.getSeltype().equals("isValid")) {
base.setIsValid(null);
}else{
base.setIsValid(0);
base.setSeltype("isValid");
}
}
//配置目标状态3 0 取消
if(base.getIsAudit()==3 && base.getIsValid()==0){
base.setIsAudit(3);
if(!StringUtil.isEmpty(base.getSeltype()) && !base.getSeltype().equals("isValid")) {
base.setIsValid(null);
}else{
base.setIsValid(0);
base.setSeltype("isValid");
}
}
BeanUtils.copyProperties(base, entity);
}
long end=System.currentTimeMillis();
logger.warn("配置批量生效/失效耗时:"+(end-start));
}
@@ -3319,7 +3272,6 @@ public class BaseController {
page.setPageNo(1);
page.setLastPage(false);
// 只有未审核的配置可删除
CfgIndexInfo searchCfg = new CfgIndexInfo();
AppPolicyCfg searchAppCfg=new AppPolicyCfg();
FileDigestCfg searchDigestCfg=new FileDigestCfg();
@@ -3342,104 +3294,70 @@ public class BaseController {
// 传递检索条件
if(entity != null && (entity instanceof CfgIndexInfo)) {
BeanUtils.copyProperties(entity, searchCfg);
searchCfg.setIsValid(0);
searchCfg.setIsAudit(0);
searchCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AppPolicyCfg)) {
BeanUtils.copyProperties(entity, searchAppCfg);
searchAppCfg.setIsValid(0);
searchAppCfg.setIsAudit(0);
searchAppCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof FileDigestCfg)) {
BeanUtils.copyProperties(entity, searchDigestCfg);
searchDigestCfg.setIsValid(0);
searchDigestCfg.setIsAudit(0);
searchDigestCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AvFileSampleCfg)) {
BeanUtils.copyProperties(entity, searchFileSampleCfg);
searchFileSampleCfg.setIsValid(0);
searchFileSampleCfg.setIsAudit(0);
searchFileSampleCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof DdosIpCfg)) {
BeanUtils.copyProperties(entity, searchDdosIpCfg);
searchDdosIpCfg.setIsValid(0);
searchDdosIpCfg.setIsAudit(0);
searchDdosIpCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AppHttpCfg)) {
BeanUtils.copyProperties(entity, searchAppHttpCfg);
searchAppHttpCfg.setIsValid(0);
searchAppHttpCfg.setIsAudit(0);
searchAppHttpCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AppHttpCfg)) {
BeanUtils.copyProperties(entity, searchAppHttpCfg);
searchAppHttpCfg.setIsValid(0);
searchAppHttpCfg.setIsAudit(0);
searchAppHttpCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AppDomainCfg)) {
BeanUtils.copyProperties(entity, searchAppDomainCfg);
searchAppDomainCfg.setIsValid(0);
searchAppDomainCfg.setIsAudit(0);
searchAppDomainCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AppTopicDomainCfg)) {
BeanUtils.copyProperties(entity, searchAppTopicCfg);
searchAppTopicCfg.setIsValid(0);
searchAppTopicCfg.setIsAudit(0);
searchAppTopicCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AppSslCertCfg)) {
BeanUtils.copyProperties(entity, searchAppSslCertCfg);
searchAppSslCertCfg.setIsValid(0);
searchAppSslCertCfg.setIsAudit(0);
searchAppSslCertCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AppIpCfg)) {
BeanUtils.copyProperties(entity, searchAppIpCfg);
searchAppIpCfg.setIsValid(0);
searchAppIpCfg.setIsAudit(0);
searchAppIpCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AppFeatureIndex)) {
BeanUtils.copyProperties(entity, searchAppFeatureIndex);
searchAppFeatureIndex.setIsValid(0);
searchAppFeatureIndex.setIsAudit(0);
searchAppFeatureIndex.setFunctionId(functionId);
}
if(entity != null && (entity instanceof DnsResStrategy)) {
BeanUtils.copyProperties(entity, searchDnsResStrategy);
searchDnsResStrategy.setIsValid(0);
searchDnsResStrategy.setIsAudit(0);
searchDnsResStrategy.setFunctionId(functionId);
}
if(entity != null && (entity instanceof DnsIpCfg)) {
BeanUtils.copyProperties(entity, searchDnsIpCfg);
searchDnsIpCfg.setIsValid(0);
searchDnsIpCfg.setIsAudit(0);
searchDnsIpCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof PxyObjKeyring)) {
BeanUtils.copyProperties(entity, searchObjKeyringCfg);
searchObjKeyringCfg.setIsValid(0);
searchObjKeyringCfg.setIsAudit(0);
searchObjKeyringCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof PxyObjTrustedCaCert)) {
BeanUtils.copyProperties(entity, searchTrustedCaCertCfg);
searchTrustedCaCertCfg.setIsValid(0);
searchTrustedCaCertCfg.setIsAudit(0);
searchTrustedCaCertCfg.setFunctionId(functionId);
}
if(entity != null && (entity instanceof AsnIpCfg)) {
BeanUtils.copyProperties(entity, searchAsnIpCfg);
searchAsnIpCfg.setIsValid(0);
searchAsnIpCfg.setIsAudit(0);
searchAsnIpCfg.setFunctionId(functionId);
}

View File

@@ -209,8 +209,6 @@ public class SystemController extends BaseController{
public boolean clearPolicies(HttpServletRequest request, HttpServletResponse response) {
try {
systemService.clearPolicies();
/*ArrayList<Object> list = Lists.newArrayList();
System.out.println(list.get(6));*/
return true;
} catch (Exception e) {
logger.error("Clear Policies Error",e);

View File

@@ -126,9 +126,9 @@ public class AppCfgController extends BaseController {
*/
@RequestMapping(value = "ajaxAppName", method = RequestMethod.POST)
@ResponseBody
public List<Map<String, String>> ajaxAppName(Model model, String ids) {
public List<Map<String, String>> ajaxAppName(Model model, String ids,Integer cfgType) {
List<Map<String, String>> dataList = new ArrayList<>();
List<SpecificServiceCfg> serviceList = specificServiceCfgService.getBySpecServiceCodes(ids);
List<SpecificServiceCfg> serviceList = specificServiceCfgService.getBySpecServiceCodes(ids,cfgType);
Map<String, String> appMap = new HashMap<>();
Map<String, String> behavMap = new HashMap<>();
for (SpecificServiceCfg cfg : serviceList) {
@@ -192,6 +192,24 @@ public class AppCfgController extends BaseController {
public String policyCfgForm(Model model, String ids, AppPolicyCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppPolicyCfg(Long.parseLong(ids), null);
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -356,8 +374,22 @@ public class AppCfgController extends BaseController {
Page<AppIpCfg> searchPage = new Page<AppIpCfg>(request, response, "r");
Page<AppIpCfg> page = appCfgService.findAppIpList(searchPage, cfg);
for (AppIpCfg entity : page.getList()) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
entity.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppName(app.getSpecServiceName());
}
}
model.addAttribute("page", page);
initPageCondition(model, cfg);
@@ -377,6 +409,24 @@ public class AppCfgController extends BaseController {
public String ipCfgForm(Model model, String ids, AppIpCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppIpCfg(Long.parseLong(ids));
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -551,8 +601,22 @@ public class AppCfgController extends BaseController {
Page<AppHttpCfg> searchPage = new Page<AppHttpCfg>(request, response, "r");
Page<AppHttpCfg> page = appCfgService.findAppHttpList(searchPage, cfg);
for (AppHttpCfg entity : page.getList()) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
entity.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppName(app.getSpecServiceName());
}
// entity.setCfgKeywords(entity.getCfgKeywords().replace(Constants.KEYWORD_EXPR,
// "&"));
}
@@ -574,6 +638,24 @@ public class AppCfgController extends BaseController {
public String httpCfgForm(Model model, String ids, AppHttpCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppHttpCfg(Long.parseLong(ids));
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -714,8 +796,22 @@ public class AppCfgController extends BaseController {
Page<AppDomainCfg> searchPage = new Page<AppDomainCfg>(request, response, "r");
Page<AppDomainCfg> page = appCfgService.findAppDomainList(searchPage, cfg);
for (AppDomainCfg entity : page.getList()) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
entity.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppName(app.getSpecServiceName());
}
}
model.addAttribute("page", page);
initPageCondition(model, cfg);
@@ -735,6 +831,24 @@ public class AppCfgController extends BaseController {
public String domainCfgForm(Model model, String ids, AppDomainCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppDomainCfg(Long.parseLong(ids));
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -897,8 +1011,22 @@ public class AppCfgController extends BaseController {
Page<AppByteCfg> searchPage = new Page<AppByteCfg>(request, response, "r");
Page<AppByteCfg> page = appCfgService.findAppByteList(searchPage, cfg);
for (AppByteCfg entity : page.getList()) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
entity.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppName(app.getSpecServiceName());
}
}
model.addAttribute("page", page);
initPageCondition(model, cfg);
@@ -918,6 +1046,24 @@ public class AppCfgController extends BaseController {
public String byteCfgForm(Model model, String ids, AppByteCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppByteCfg(Long.parseLong(ids));
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -1034,8 +1180,22 @@ public class AppCfgController extends BaseController {
Page<AppSslCertCfg> searchPage = new Page<AppSslCertCfg>(request, response, "r");
Page<AppSslCertCfg> page = appCfgService.findAppSslList(searchPage, cfg);
for (AppSslCertCfg entity : page.getList()) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
entity.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppName(app.getSpecServiceName());
}
}
model.addAttribute("page", page);
initPageCondition(model, cfg);
@@ -1055,6 +1215,24 @@ public class AppCfgController extends BaseController {
public String sslCfgForm(Model model, String ids, AppSslCertCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppSslCfg(Long.parseLong(ids));
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -1084,7 +1262,13 @@ public class AppCfgController extends BaseController {
entity.setAppCode(specificService.getSpecServiceCode());
}
appCfgService.saveOrUpdateAppSslCfg(entity);
addMessage(redirectAttributes, "success", "save_success");
//配置仅保存
if(StringUtil.isEmpty(entity.getIsValid()) || entity.getIsValid()!=1) {
addMessage(redirectAttributes, "success", "save_success");
}else {
//配置直接生效
addMessage(redirectAttributes, "success", "audit_success");
}
} catch (Exception e) {
e.printStackTrace();
logger.error("saveAppSslCfg failed", e);
@@ -1196,7 +1380,9 @@ public class AppCfgController extends BaseController {
Page<AppTcpCfg> page = appCfgService.findAppTcpList(searchPage, cfg);
for (AppTcpCfg entity : page.getList()) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
entity.setAppName(app.getSpecServiceName());
if(app!=null){
entity.setAppName(app.getSpecServiceName());
}
}
model.addAttribute("page", page);
initPageCondition(model, cfg);
@@ -1216,6 +1402,24 @@ public class AppCfgController extends BaseController {
public String tcpCfgForm(Model model, String ids, AppTcpCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppTcpCfg(Long.parseLong(ids));
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -1331,8 +1535,22 @@ public class AppCfgController extends BaseController {
Page<AppHeaderCfg> searchPage = new Page<AppHeaderCfg>(request, response, "r");
Page<AppHeaderCfg> page = appCfgService.findAppHeaderList(searchPage, cfg);
for (AppHeaderCfg entity : page.getList()) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
entity.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppName(app.getSpecServiceName());
}
}
model.addAttribute("page", page);
initPageCondition(model, cfg);
@@ -1352,6 +1570,24 @@ public class AppCfgController extends BaseController {
public String headerCfgForm(Model model, String ids, AppHeaderCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppHeaderCfg(Long.parseLong(ids));
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -1848,8 +2084,20 @@ public class AppCfgController extends BaseController {
logTotal.put("sum",0L);
logTotals.add(logTotal);
}
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(policy.getSpecServiceId());
if (app != null) {
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(policy.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
policy.setSocialName(app.getSpecServiceName());
}
}
@@ -2059,7 +2307,9 @@ public class AppCfgController extends BaseController {
for (AppIpCfg appIp : ipLists) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(appIp.getSpecServiceId());
appIp.setAppName(app.getSpecServiceName());
if(app!=null){
appIp.setAppName(app.getSpecServiceName());
}
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AppIpCfg.class);
@@ -2132,8 +2382,22 @@ public class AppCfgController extends BaseController {
http.setIsCaseInsenstive(0);
}
http.setCfgKeywords(Functions.replace(http.getCfgKeywords(), "***and***", " "));
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(http.getSpecServiceId());
http.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(http.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
http.setAppName(app.getSpecServiceName());
}
}
titleList.add(entity.getMenuNameCode());
@@ -2205,8 +2469,22 @@ public class AppCfgController extends BaseController {
}else{
domain.setIsCaseInsenstive(0);
}
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(domain.getSpecServiceId());
domain.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(domain.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
domain.setAppName(app.getSpecServiceName());
}
}
titleList.add(entity.getMenuNameCode());
@@ -2280,8 +2558,22 @@ public class AppCfgController extends BaseController {
ssl.setIsCaseInsenstive(0);
}
ssl.setCfgKeywords(Functions.replace(ssl.getCfgKeywords(), "***and***", " "));
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(ssl.getSpecServiceId());
ssl.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(ssl.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
ssl.setAppName(app.getSpecServiceName());
}
}
titleList.add(entity.getMenuNameCode());
classMap.put(entity.getMenuNameCode(), AppSslCertCfg.class);

View File

@@ -87,8 +87,22 @@ public class AppFeatureCfgController extends BaseController {
Page<AppFeatureIndex> searchPage = new Page<AppFeatureIndex>(request, response, "r");
Page<AppFeatureIndex> page = appMultiFeatureCfgService.findAppFeatureIndexList(searchPage, cfg);
for (AppFeatureIndex entity : page.getList()) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(entity.getSpecServiceId());
entity.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppName(app.getSpecServiceName());
}
}
model.addAttribute("page", page);
initPageCondition(model, cfg);
@@ -115,6 +129,24 @@ public class AppFeatureCfgController extends BaseController {
entity.getFunctionId(), null));
entity.setNumCfgList(
appMultiFeatureCfgService.getAppTcpCfg(entity.getCompileId(), entity.getFunctionId(), null));
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -351,8 +383,22 @@ public class AppFeatureCfgController extends BaseController {
}
for (AppFeatureIndex feature : ipLists) {
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(feature.getSpecServiceId());
feature.setAppName(app.getSpecServiceName());
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(feature.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
feature.setAppName(app.getSpecServiceName());
}
}
String cfgIndexInfoNoExport = ",letter,whether_area_block,classification,attribute,label,do_log,block_type,client_port,ir_type,group_name,userregion1,userregion2,userregion3,userregion4,userregion5,";
String appComplexNoExport = ",do_log,block_type,config_describe,valid_identifier,is_audit,creator,creator"

View File

@@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.configuration.AppPolicyCfg;
import com.nis.domain.configuration.BaseStringCfg;
import com.nis.domain.configuration.CfgIndexInfo;
@@ -36,6 +37,7 @@ import com.nis.exceptions.CallExternalProceduresException;
import com.nis.exceptions.MaatConvertException;
import com.nis.util.ConfigServiceUtil;
import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.LogUtils;
import com.nis.util.StringUtil;
import com.nis.web.controller.BaseController;
@@ -130,6 +132,25 @@ public class BasicProtocolController extends BaseController {
public String policyCfgForm(Model model, String ids, AppPolicyCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppPolicyCfg(Long.parseLong(ids), null);
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_BASIC_PROTOCOL.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -323,8 +344,20 @@ public class BasicProtocolController extends BaseController {
logTotal.put("sum",0L);
logTotals.add(logTotal);
}
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(policy.getSpecServiceId());
if (app != null) {
// 查找社交应用的所有有效一级特定服务 TODO
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_BASIC_PROTOCOL.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(policy.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
policy.setAppName(app.getSpecServiceName());
}

View File

@@ -151,6 +151,24 @@ public class EncryptedTunnelBehaviorController extends BaseController {
public String policyCfgForm(Model model, String ids, AppPolicyCfg entity) {
if (StringUtils.isNotBlank(ids)) {
entity = appCfgService.getAppPolicyCfg(Long.parseLong(ids), null);
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_ENCRYPTED_TUNNEL_BEHAVIOR.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(entity.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setSpecServiceId(app.getSpecServiceId());
}
initUpdateFormCondition(model, entity);
} else {
initFormCondition(model, entity);
@@ -347,8 +365,20 @@ public class EncryptedTunnelBehaviorController extends BaseController {
logTotal.put("sum",0L);
logTotals.add(logTotal);
}
SpecificServiceCfg app = specificServiceCfgService.getBySpecServiceId(policy.getSpecServiceId());
if (app != null) {
// 查找社交应用的所有有效一级特定服务 TODO
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_ENCRYPTED_TUNNEL_BEHAVIOR.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceCode(policy.getAppCode());
List<SpecificServiceCfg> appList = specificServiceCfgService.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
policy.setBehaviorName(app.getSpecServiceName());
}
}

View File

@@ -311,7 +311,13 @@ public class AvController extends BaseController {
}
avCfgService.saveOrUpdateAvFileSample(entity, srcFile);
addMessage(redirectAttributes, "success", "save_success");
//配置仅保存
if(StringUtil.isEmpty(entity.getIsValid()) || entity.getIsValid()!=1) {
addMessage(redirectAttributes, "success", "save_success");
}else {
//配置直接生效
addMessage(redirectAttributes, "success", "audit_success");
}
} catch (Exception e) {
logger.error("文件上传失败", e);
e.printStackTrace();
@@ -339,7 +345,13 @@ public class AvController extends BaseController {
RedirectAttributes redirectAttributes, String ids, AvSignSampleCfg entity) {
try {
avCfgService.saveOrUpdateAvSignSample(entity);
addMessage(redirectAttributes, "success", "save_success");
//配置仅保存
if(StringUtil.isEmpty(entity.getIsValid()) || entity.getIsValid()!=1) {
addMessage(redirectAttributes, "success", "save_success");
}else {
//配置直接生效
addMessage(redirectAttributes, "success", "audit_success");
}
} catch (Exception e) {
logger.error("saveAudioSignSample failed", e);
e.printStackTrace();
@@ -591,7 +603,13 @@ public class AvController extends BaseController {
// if(!avSignSampleCfg.getAction().equals(avSignSampleCfg.getActionOld())||!avSignSampleCfg.getIsValid().equals(avSignSampleCfg.getIsValidOld())){
try {
avCfgService.auditAvSignSample(avSignSampleCfg);
addMessage(redirectAttributes, "success", "save_success");
//配置仅保存
if(StringUtil.isEmpty(avSignSampleCfg.getIsValid()) || avSignSampleCfg.getIsValid()!=1) {
addMessage(redirectAttributes, "success", "save_success");
}else {
//配置直接生效
addMessage(redirectAttributes, "success", "audit_success");
}
} catch (Exception e) {
e.printStackTrace();
if (e instanceof MaatConvertException) {

View File

@@ -157,7 +157,13 @@ public class ControlPolicyController extends BaseController{
,RedirectAttributes redirectAttributes){
try{
controlPolicyService.saveOrUpdate(cfg,areaCfgIds);
addMessage(redirectAttributes,"success","save_success");
//配置仅保存
if(StringUtil.isEmpty(cfg.getIsValid()) || cfg.getIsValid()!=1) {
addMessage(redirectAttributes, "success", "save_success");
}else {
//配置直接生效
addMessage(redirectAttributes, "success", "audit_success");
}
}catch(Exception e){
logger.error("信息保存失败",e);
if(e instanceof MaatConvertException) {

View File

@@ -118,7 +118,13 @@ public class FileStrategyController extends CommonController {
cfg.setContentLength(file.length());//文件长度
}
proxyFileStrategyService.saveOrUpdate(cfg);
addMessage(redirectAttributes,"success","save_success");
//配置仅保存
if(StringUtil.isEmpty(cfg.getIsValid()) || cfg.getIsValid()!=1) {
addMessage(redirectAttributes, "success", "save_success");
}else {
//配置直接生效
addMessage(redirectAttributes, "success", "audit_success");
}
}catch(Exception e){
logger.error("信息保存失败",e);
if(e instanceof MaatConvertException) {

View File

@@ -399,6 +399,15 @@ public class InterceptController extends CommonController {
}
}
}
if (214==entity.getFunctionId()) {
for (CfgIndexInfo cfg : ipLists) {
if (!StringUtil.isBlank(cfg.getUserRegion1())) {
cfg.setUserRegion1(DictUtils.getDictLabels("SPOOFING_IP_TYPE", cfg.getUserRegion1(),cfg.getUserRegion1()));
}
}
}
pktBinList = BaseStringCfg.replaceBaseKeyList(pktBinList);
httpUrlList = BaseStringCfg.baseHexList(httpUrlList);
dataMap.put(entity.getMenuNameCode(), ipLists);

View File

@@ -79,4 +79,8 @@ public interface SchedulerDao extends CrudDao<ScheduleCfg> {
*/
int updateScheduleExceNew(ScheduleExceInfo exceInfo);
/**
* 失效所有定时任务
*/
void inValidAllSchedule();
}

View File

@@ -364,6 +364,12 @@
compile_Id = #{compileId} and issue_status = #{issueStatus}
</update>
<update id="inValidAllSchedule">
update schedule_cfg
<set>
del_flag = 0
</set>
WHERE del_flag =1
</update>
</mapper>

View File

@@ -128,15 +128,32 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName !=''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -620,8 +620,13 @@
<if test="cfgDesc != null and cfgDesc != ''">
AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%')
</if>
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
<if test="appCode != null">
AND r.app_code=#{appCode,jdbcType=INTEGER}
</if>
<if test="appCode == null">
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
</if>
</if>
<if test="cfgType != null and cfgType != ''">
AND r.CFG_TYPE like concat(concat('%',#{cfgType,jdbcType=VARCHAR}),'%')
@@ -721,21 +726,42 @@
<if test="cfgDesc != null and cfgDesc != ''">
AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%')
</if>
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
<if test="appCode != null">
AND r.app_code=#{appCode,jdbcType=INTEGER}
</if>
<if test="appCode == null">
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
</if>
</if>
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>
@@ -880,8 +906,13 @@
<if test="cfgDesc != null and cfgDesc != ''">
AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%')
</if>
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
<if test="appCode != null">
AND r.app_code=#{appCode,jdbcType=INTEGER}
</if>
<if test="appCode == null">
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
</if>
</if>
<if test="cfgType != null and cfgType != ''">
AND r.CFG_TYPE like concat(concat('%',#{CFG_TYPE,jdbcType=VARCHAR}),'%')
@@ -922,15 +953,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>
@@ -1035,8 +1082,13 @@
<if test="cfgDesc != null and cfgDesc != ''">
AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%')
</if>
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
<if test="appCode != null">
AND r.app_code=#{appCode,jdbcType=INTEGER}
</if>
<if test="appCode == null">
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
</if>
</if>
<if test="cfgType != null and cfgType != ''">
AND r.CFG_TYPE like concat(concat('%',#{cfgType,jdbcType=VARCHAR}),'%')
@@ -1050,15 +1102,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>
@@ -1138,8 +1206,13 @@
<if test="cfgDesc != null and cfgDesc != ''">
AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%')
</if>
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
<if test="appCode != null">
AND r.app_code=#{appCode,jdbcType=INTEGER}
</if>
<if test="appCode == null">
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
</if>
</if>
<if test="cfgType != null and cfgType != ''">
AND r.CFG_TYPE like concat(concat('%',#{cfgType,jdbcType=VARCHAR}),'%')
@@ -1150,15 +1223,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>
@@ -1270,15 +1359,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>
@@ -1377,8 +1482,13 @@
<if test="cfgDesc != null and cfgDesc != ''">
AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%')
</if>
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
<if test="appCode != null">
AND r.app_code=#{appCode,jdbcType=INTEGER}
</if>
<if test="appCode == null">
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
</if>
</if>
<if test="cfgType != null and cfgType != ''">
AND r.CFG_TYPE like concat(concat('%',#{cfgType,jdbcType=VARCHAR}),'%')
@@ -1572,8 +1682,13 @@
<if test="cfgDesc != null and cfgDesc != ''">
AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%')
</if>
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
<if test="appCode != null">
AND r.app_code=#{appCode,jdbcType=INTEGER}
</if>
<if test="appCode == null">
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
</if>
</if>
<if test="cfgType != null and cfgType != ''">
AND r.CFG_TYPE like concat(concat('%',#{cfgType,jdbcType=VARCHAR}),'%')
@@ -1587,15 +1702,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -267,21 +267,42 @@
<if test="cfgDesc != null and cfgDesc != ''">
AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%')
</if>
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
<if test="appCode != null">
AND r.app_code=#{appCode,jdbcType=INTEGER}
</if>
<if test="appCode == null">
<if test="specServiceId != null">
AND r.spec_service_id=#{specServiceId,jdbcType=INTEGER}
</if>
</if>
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -128,15 +128,31 @@
<if test="action != null">
AND a.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND a.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND a.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -310,15 +310,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>
@@ -2128,6 +2144,12 @@
update ${tableName} set is_valid = #{isValid,jdbcType=INTEGER},
<if test="isAudit != null">
is_audit = #{isAudit,jdbcType=INTEGER},
</if>
<if test="auditTime !=null ">
audit_time = #{auditTime,jdbcType=TIMESTAMP},
</if>
<if test="auditorId != null" >
AUDITOR_ID = #{auditorId,jdbcType=INTEGER},
</if>
editor_id = #{editorId,jdbcType=INTEGER} ,
edit_time = #{editTime,jdbcType=TIMESTAMP}

View File

@@ -208,15 +208,31 @@
<if test="action != null">
AND a.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND a.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND a.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -219,15 +219,31 @@
<if test="action != null">
AND a.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND a.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND a.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -117,15 +117,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName !=''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -120,15 +120,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName !=''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -85,15 +85,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -232,9 +232,31 @@
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND a.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND a.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>
@@ -1140,15 +1162,31 @@
<if test="action != null">
AND a.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND a.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND a.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -1098,15 +1098,31 @@
<if test="action != null">
AND a.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND a.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND a.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -171,15 +171,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>
@@ -254,15 +270,31 @@
<if test="action != null">
AND r.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND r.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND r.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND r.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND r.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND r.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -189,15 +189,31 @@
<if test="action != null">
AND a.ACTION=#{action,jdbcType=INTEGER}
</if>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchValidValue != null and batchValidValue != ''">
AND a.IS_VALID in (${batchValidValue})
</when>
<otherwise>
<if test="isValid != null">
AND a.IS_VALID=#{isValid,jdbcType=INTEGER}
</if>
<if test="isValid == null">
AND a.IS_VALID != -1
</if>
</otherwise>
</choose>
<choose>
<!-- 判断是否批量操作 -->
<when test="batchAuditValue != null and batchAuditValue != ''">
AND a.IS_AUDIT in(${batchAuditValue})
</when>
<otherwise>
<if test="isAudit != null">
AND a.IS_AUDIT=#{isAudit,jdbcType=INTEGER}
</if>
</otherwise>
</choose>
<if test="creatorName != null and creatorName != ''">
AND CREATOR_NAME like concat(concat('%',#{creatorName,jdbcType=VARCHAR}),'%')
</if>

View File

@@ -20,7 +20,7 @@ public interface SpecificServiceCfgDao extends CrudDao<SpecificServiceCfg> {
* @return
*/
SpecificServiceCfg getBySpecServiceId(Integer specServiceId);
List<SpecificServiceCfg> getBySpecServiceCodes(@Param("ids")String ids);
List<SpecificServiceCfg> getBySpecServiceCodes(@Param("ids")String ids,@Param("cfgType")Integer cfgType);
/**
* 查询所有符合条件顶层分页列表
* @param specificServiceCfg

View File

@@ -39,11 +39,11 @@
<!-- 根据id查出对象 -->
<select id="getBySpecServiceId" resultType="com.nis.domain.specific.SpecificServiceCfg" parameterType="java.lang.Integer">
select <include refid="specificServiceCfgColumns" />
from specific_service_cfg s where s.spec_service_id = #{specServiceId}
from specific_service_cfg s where s.spec_service_id = #{specServiceId} and s.is_valid=1
</select>
<select id="getBySpecServiceCodes" resultType="com.nis.domain.specific.SpecificServiceCfg" parameterType="java.lang.String">
<select id="getBySpecServiceCodes" resultType="com.nis.domain.specific.SpecificServiceCfg">
select <include refid="specificServiceCfgColumns" />
from specific_service_cfg s where s.spec_service_code in(${ids})
from specific_service_cfg s where s.spec_service_code in(${ids}) and s.is_valid=1 and s.cfg_type=#{cfgType}
</select>
<select id="getRepeat" resultType="com.nis.domain.specific.SpecificServiceCfg" >
select <include refid="specificServiceCfgColumns" />
@@ -54,11 +54,11 @@
</select>
<select id="getParentType" resultType="java.lang.Integer" parameterType="java.lang.Integer">
select cfg_type
from specific_service_cfg s where s.spec_service_id = #{specServiceId}
from specific_service_cfg s where s.spec_service_id = #{specServiceId} and s.is_valid=1
</select>
<select id="getParentCode" resultType="java.lang.Integer" parameterType="java.lang.Integer">
select spec_service_code
from specific_service_cfg s where s.spec_service_id = #{specServiceId}
from specific_service_cfg s where s.spec_service_id = #{specServiceId} and s.is_valid=1
</select>
<!-- 查出所有符合条件的顶层数据 -->

View File

@@ -7,6 +7,11 @@ import java.util.Date;
import java.util.List;
import java.util.Set;
import javax.ws.rs.client.Invocation.Builder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
@@ -24,10 +29,13 @@ import com.nis.domain.SrcIp;
import com.nis.domain.SysRole;
import com.nis.domain.SysUser;
import com.nis.util.Configurations;
import com.nis.util.Constants;
import com.nis.util.DateUtils;
import com.nis.util.IpUtil;
import com.nis.util.ServiceConfigTemplateUtil;
import com.nis.util.TimeConstants;
import com.nis.util.httpclient.ClientUtil;
import com.nis.web.dao.SchedulerDao;
import com.nis.web.dao.SrcIpDao;
import com.nis.web.dao.SysOfficeDao;
import com.nis.web.dao.UserDao;
@@ -56,6 +64,9 @@ public class SystemService extends BaseService{
@Autowired
private CommonPolicyDao commonPolicyDao;
@Autowired
private SchedulerDao schedulerDao;
@Autowired
private SrcIpDao srcIpDao;
private RedisSerializer keySerializer = new StringSerializer();
@@ -173,16 +184,27 @@ public class SystemService extends BaseService{
}
public void clearPolicies() throws Exception {
// TODO 调用服务接口 告知flushAll
/*String destUrl = Constants.SERVICE_URL;
HttpClientUtil.get(destUrl);*/
Set<String> tableNameSet = ServiceConfigTemplateUtil.getAllTableName();
tableNameSet.add("pxy_obj_spoofing_ip_pool");
for (String tableName : tableNameSet) {
commonPolicyDao.clearPolicies(tableName);
// 调用服务接口 告知flushAll
String url = Constants.SERVICE_URL + Constants.DEL_ALL_CFG;
// 创建连接
WebTarget wt = ClientUtil.getWebTarger(url);
// 获取响应结果
Builder header = wt.request(MediaType.APPLICATION_JSON).header("Content-Type", MediaType.APPLICATION_JSON);
Response response = header.delete();
if(response.getStatus() == 200){
//String result= response.readEntity(String.class);
Set<String> tableNameSet = ServiceConfigTemplateUtil.getAllTableName();
tableNameSet.add("pxy_obj_spoofing_ip_pool");
for (String tableName : tableNameSet) {
commonPolicyDao.clearPolicies(tableName);
}
// 初始化分组
asnGroupInfoService.reLoadGroupInfo();
// 失效定时任务
schedulerDao.inValidAllSchedule();
}else {
throw new RuntimeException();
}
// 初始化分组
asnGroupInfoService.reLoadGroupInfo();
}
}

View File

@@ -16,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
import com.google.common.collect.Lists;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.basics.AsnIpCfg;
import com.nis.domain.basics.Varibles;
import com.nis.domain.configuration.AppByteCfg;
@@ -90,6 +91,32 @@ public class AppCfgService extends BaseService {
public Page<AppPolicyCfg> findAppPolicyList(Page<AppPolicyCfg> page, AppPolicyCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (entity.getFunctionId() == 63 && Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
if (entity.getFunctionId() == 407 && Constants.SPECIFIC_SERVICE_CFG_TYPE_BASIC_PROTOCOL.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
if (entity.getFunctionId() == 408 && Constants.SPECIFIC_SERVICE_CFG_TYPE_ENCRYPTED_TUNNEL_BEHAVIOR.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppPolicyCfg> list = appCfgDao.findAppPolicyList(entity);
page.setList(list);
return page;
@@ -104,11 +131,59 @@ public class AppCfgService extends BaseService {
public Page<AppIpCfg> findAppIpList(Page<AppIpCfg> page, AppIpCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppIpCfg> list = appCfgDao.findAppIpList(entity);
page.setList(list);
return page;
}
public List<AppIpCfg> findAppIpList(AppIpCfg entity) {
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (entity.getFunctionId() == 63 && Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
if (entity.getFunctionId() == 407 && Constants.SPECIFIC_SERVICE_CFG_TYPE_BASIC_PROTOCOL.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
if (entity.getFunctionId() == 408 && Constants.SPECIFIC_SERVICE_CFG_TYPE_ENCRYPTED_TUNNEL_BEHAVIOR.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppIpCfg> list = appCfgDao.findAppIpList(entity);
return list;
}
@@ -121,6 +196,26 @@ public class AppCfgService extends BaseService {
public Page<AppHttpCfg> findAppHttpList(Page<AppHttpCfg> page, AppHttpCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppHttpCfg> list = appCfgDao.findAppHttpList(entity);
page.setList(list);
return page;
@@ -134,6 +229,26 @@ public class AppCfgService extends BaseService {
public Page<AppDomainCfg> findAppDomainList(Page<AppDomainCfg> page, AppDomainCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppDomainCfg> list = appCfgDao.findAppDomainList(entity);
page.setList(list);
return page;
@@ -174,6 +289,26 @@ public class AppCfgService extends BaseService {
public Page<AppByteCfg> findAppByteList(Page<AppByteCfg> page, AppByteCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppByteCfg> list = appCfgDao.findAppByteList(entity);
page.setList(list);
return page;
@@ -182,6 +317,26 @@ public class AppCfgService extends BaseService {
public Page<AppSslCertCfg> findAppSslList(Page<AppSslCertCfg> page, AppSslCertCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppSslCertCfg> list = appCfgDao.findAppSslList(entity);
page.setList(list);
return page;
@@ -195,6 +350,26 @@ public class AppCfgService extends BaseService {
public Page<AppTcpCfg> findAppTcpList(Page<AppTcpCfg> page, AppTcpCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppTcpCfg> list = appCfgDao.findAppTcpList(entity);
page.setList(list);
return page;
@@ -785,6 +960,10 @@ public class AppCfgService extends BaseService {
public void saveOrUpdateAppSslCfg(AppSslCertCfg entity) throws Exception {
// 设置区域运营商信息
setAreaEffectiveIds(entity);
int isValid=0;
if(!StringUtil.isEmpty(entity.getIsValid()) && entity.getIsValid()==1) {
isValid=1;
}
if (entity.getCfgId() == null) {
Integer compileId = 0;
try {
@@ -836,6 +1015,12 @@ public class AppCfgService extends BaseService {
}
}
if(isValid==1) {
entity.setIsAudit(1);
entity.setIsValid(1);
entity.setAuditTime(new Date());
auditAppSslCfg(entity, entity.getIsAudit());
}
}
@@ -2061,6 +2246,26 @@ public class AppCfgService extends BaseService {
public Page<AppHeaderCfg> findAppHeaderList(Page<AppHeaderCfg> page, AppHeaderCfg entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppHeaderCfg> list = appCfgDao.findAppHeaderList(entity);
page.setList(list);
return page;
@@ -2230,4 +2435,5 @@ public class AppCfgService extends BaseService {
}
}

View File

@@ -15,6 +15,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.nis.domain.Page;
import com.nis.domain.SysDataDictionaryItem;
import com.nis.domain.configuration.AppComplexFeatureCfg;
import com.nis.domain.configuration.AppFeatureIndex;
import com.nis.domain.configuration.AppHttpCfg;
@@ -34,6 +35,7 @@ import com.nis.domain.maat.MaatCfg.GroupCfg;
import com.nis.domain.maat.MaatCfg.IpCfg;
import com.nis.domain.maat.MaatCfg.NumBoundaryCfg;
import com.nis.domain.maat.MaatCfg.StringCfg;
import com.nis.domain.specific.SpecificServiceCfg;
import com.nis.domain.maat.ToMaatBean;
import com.nis.domain.maat.ToMaatResult;
import com.nis.exceptions.MaatConvertException;
@@ -42,6 +44,7 @@ import com.nis.util.Constants;
import com.nis.util.DictUtils;
import com.nis.util.StringUtil;
import com.nis.web.dao.configuration.AppMultiFeatureCfgDao;
import com.nis.web.dao.specific.SpecificServiceCfgDao;
import com.nis.web.security.UserUtils;
import com.nis.web.service.BaseService;
@@ -55,11 +58,33 @@ import com.nis.web.service.BaseService;
public class AppMultiFeatureCfgService extends BaseService {
@Autowired
protected AppMultiFeatureCfgDao appMultiFeatureCfgDao;
@Autowired
protected SpecificServiceCfgDao specificServiceCfgDao;
//分页查询
public Page<AppFeatureIndex> findAppFeatureIndexList(Page<AppFeatureIndex> page, AppFeatureIndex entity) {
entity.getSqlMap().put("dsf", configScopeFilter(entity.getCurrentUser(), "r"));
entity.setPage(page);
if(!StringUtil.isEmpty(entity.getSpecServiceId())){
// 查找社交应用的所有有效一级特定服务
SpecificServiceCfg appSpec = new SpecificServiceCfg();
for (SysDataDictionaryItem dict : DictUtils.getDictList("SPECIFIC_SERVICE_CFG_TYPE")) {
if (Constants.SPECIFIC_SERVICE_CFG_TYPE_APP.equals(dict.getItemValue())) {
appSpec.setCfgType(Integer.parseInt(dict.getItemCode()));
break;
}
}
appSpec.setIsValid(Constants.VALID_YES);
appSpec.setIsLeaf(0);
appSpec.setSpecServiceId(entity.getSpecServiceId());
List<SpecificServiceCfg> appList = specificServiceCfgDao.findAllSpecificServiceCfg(appSpec, null);
if (!StringUtil.isEmpty(appList)) {
SpecificServiceCfg app = appList.get(0);
entity.setAppCode(app.getSpecServiceCode());
}
}
List<AppFeatureIndex> list = appMultiFeatureCfgDao.findAppFeatureIndexList(entity);
page.setList(list);
return page;

View File

@@ -1554,7 +1554,7 @@ public class AvContentCfgService extends BaseService{
if(isValid==1) {
entity.setIsAudit(1);
entity.setIsValid(1);
auditContUrl(entity,entity.getIsAudit(), Constants.INSERT_ACTION);
auditContUrl(entity,entity.getIsAudit(), Constants.UPDATE_ACTION);
}
}
}

View File

@@ -987,7 +987,7 @@ public class WebsiteCfgService extends CrudService<WebsiteCfgDao,CfgIndexInfo> {
maatBean.setAuditTime(entity.getAuditTime());
maatBean.setCreatorName(entity.getCurrentUser().getName());
maatBean.setVersion(Constants.MAAT_VERSION);
maatBean.setOpAction(Constants.INSERT_ACTION);
maatBean.setOpAction(Constants.UPDATE_ACTION);
//调用服务接口取消配置
String json=gsonToJson(maatBean);
logger.info("ssl配置下发配置参数"+json);

View File

@@ -33,11 +33,11 @@ public class SpecificServiceCfgService extends BaseService{
public SpecificServiceCfg getBySpecServiceId(Integer specServiceId) {
return specificServiceCfgDao.getBySpecServiceId(specServiceId);
}
public List<SpecificServiceCfg> getBySpecServiceCodes(String specServiceCodes) {
public List<SpecificServiceCfg> getBySpecServiceCodes(String specServiceCodes,Integer cfgType) {
for(String specServiceId:specServiceCodes.split(",")) {
Integer.parseInt(specServiceId);
}
return specificServiceCfgDao.getBySpecServiceCodes(specServiceCodes);
return specificServiceCfgDao.getBySpecServiceCodes(specServiceCodes,cfgType);
}
/**
* 查询所有符合条件的顶层分页

View File

@@ -547,7 +547,7 @@ ftp_ip=FTP IP Configuration
dns_ip=DNS IP Configuration
dns_domain=DNS Domain Configuration
action=Action
has_prohibit_delete=Only unconfirmed configuration can be deleted
has_prohibit_delete=Only unaudited and cancel configurations can be deleted
has_prohibit_nopass=Only unconfirmed configuration can be confirmed
has_prohibit_pass=Only unconfirmed configuration can be confirmed
multiple_keywords_tip=Multiple keyword can be input,Please separate it with the return key.
@@ -1527,3 +1527,4 @@ url_group_manage=URL Group Manage
range_cross=Found intersections between Server IP address and Client IP address
app_ip_correlation=APP IP Correlation
public_private_file_error=Public-private key mismatch
https_url_format_tip=URL(http[s]://xxx.xx)

View File

@@ -547,7 +547,7 @@ ftp_ip=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f
dns_ip=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f DNS IP
dns_domain=\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u0434\u043e\u043c\u0435\u043d\u0430 DNS
action=\u0414\u0435\u0439\u0441\u0442\u0432\u0438\u0435
has_prohibit_delete=\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0443\u0434\u0430\u043b\u0435\u043d\u0430
has_prohibit_delete= только удаляет незаконченные настройки и отменяет проверку конфигурации
has_prohibit_nopass=\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0430
has_prohibit_pass=\u0422\u043e\u043b\u044c\u043a\u043e \u043d\u0435\u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u043d\u0430\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0430
multiple_keywords_tip=\u041c\u043e\u0436\u043d\u043e \u0432\u0432\u0435\u0441\u0442\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0441\u043b\u043e\u0432,\u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u0435 \u0438\u0445 \u043a\u043b\u0430\u0432\u0438\u0448\u0435\u0439 "Enter".
@@ -1490,34 +1490,34 @@ GByte=GByte
interval=\u041f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043e\u043a
month=\u041c\u0435\u0441\u044f\u0446\u044b
day=\u0414\u043d\u0438
week=weeks
week=\u043d\u0435\u0434\u0435\u043b\u044c
startTime=\u041d\u0430\u0447\u0430\u0442\u044c
endTime=\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u044c
single=\u041e\u0434\u043d\u043e\u043a\u0440\u0430\u0442\u043d\u043e
everyDay=\u0415\u0436\u0435\u0434\u043d\u0435\u0432\u043d\u043e
everyWeek=\u0415\u0436\u0435\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u043e
everyMonth=\u0415\u0436\u0435\u043c\u0435\u0441\u044f\u0447\u043d\u043e
on=On
is_schduler=Scheduler
validate_error=Unexpected error occurred while validating
v4_num=IPv4 Number
v6_num=IPv6 Number
on=\u041e\u0442\u043a\u0440\u044b\u0442\u044c
is_schduler=\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a
validate_error=\u041d\u0435\u043f\u0440\u0435\u0434\u0432\u0438\u0434\u0435\u043d\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430 \u043f\u0440\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435
v4_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e ipv4
v6_num=\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e ipv6
always=\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e
schedule=Scheduler
cancel_all=Cancel all configurations!
pre_version=Previous Version
approved_all=Approve all configurations!
protection_list_manage=Protection List Manage
effective=Effective
admin_user_warn=Admin User Warn
interface_total=Interface Total
service_total=Service Total
none_file_tip=Please Choose File!
schedule=\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a
cancel_all=\u041e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438%21
pre_version=\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0430\u044f \u0412\u0435\u0440\u0441\u0438\u044f
approved_all=\u0423\u0442\u0432\u0440\u0435\u0434\u0438\u0442\u044c \u0432\u0441\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438%21
protection_list_manage=\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0421\u043f\u0438\u0441\u043a\u043e\u043c \u0417\u0430\u0449\u0438\u0442\u044b%21
effective=\u0410\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435
admin_user_warn=\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0410\u0434\u043c\u0438\u043d
interface_total=\u041e\u0431\u0449\u0435\u0435 \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0418\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430
service_total=\u041e\u0431\u0449\u0435\u0435 \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0421\u0435\u0440\u0432\u0438\u0441\u0430
none_file_tip=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0444\u0430\u0439\u043b%21
the_same_ip_type=IP-\u0430\u0434\u0440\u0435\u0441 \u043A\u043B\u0438\u0435\u043D\u0442\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0434\u043E\u043B\u0436\u043D\u044B \u0438\u043C\u0435\u0442\u044C \u043E\u0434\u0438\u043D \u0438 \u0442\u043E\u0442 \u0436\u0435 \u0442\u0438\u043F.
src_ip_pattern=Client IP Pattern
dest_ip_pattern=Server IP Pattern
src_port_pattern=Client Port Pattern
dest_port_pattern=Server Port Pattern
src_ip_pattern=\u0424\u043e\u0440\u043c\u0430\u0442 ip \u041a\u043b\u0438\u0435\u043d\u0442\u0430
dest_ip_pattern=\u0424\u043e\u0440\u043c\u0430\u0442 ip \u0421\u0435\u0440\u0432\u0435\u0440\u0430
src_port_pattern=\u0424\u043e\u0440\u043c\u0430\u0442 \u041f\u043e\u0440\u0442\u0430 \u041a\u043b\u0438\u0435\u043d\u0442\u0430
dest_port_pattern=\u0424\u043e\u0440\u043c\u0430\u0442 \u041f\u043e\u0440\u0442\u0430 \u0421\u0435\u0440\u0432\u0435\u0440\u0430
url_group_configuration=URL Group Configuration
dns_keyword_group_configuration=DNS Keyword Group Configuration
app_ip_correlation=APP IP Correlation
@@ -1527,6 +1527,7 @@ common_group=Common Group
dns_keyword_group_manage=DNS Keyword Group Manage
old_asn_group_manage=ASN Group
url_group_manage=URL Group Manage
range_cross=Found intersections between Server IP address and Client IP address
app_ip_correlation=APP IP Correlation
public_private_file_error=Public-private key mismatch
range_cross=\u041d\u0430\u0439\u0434\u0435\u043d\u044b \u043f\u0435\u0440\u0435\u0441\u0435\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 ip-\u0430\u0434\u0440\u0435\u0441\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0438 ip-\u0430\u0434\u0440\u0435\u0441\u043e\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430
app_ip_correlation=\u041a\u043e\u0440\u0440\u0435\u043b\u044f\u0446\u0438\u044f ip-\u0430\u0434\u0440\u0435\u0441\u043e\u0432 \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439
public_private_file_error=\u041d\u0435\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u043e-\u043f\u0440\u0438\u0432\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043b\u044e\u0447\u0430.
https_url_format_tip=URL(http[s]://xxx.xx)

View File

@@ -546,7 +546,7 @@ ftp_ip=FTP IP\u914d\u7f6e
dns_ip=DNS IP\u914d\u7f6e
dns_domain=DNS\u57df\u540d\u914d\u7f6e
action=\u52a8\u4f5c
has_prohibit_delete=\u53ea\u6709\u672a\u5ba1\u6838\u7684\u914d\u7f6e\u53ef\u5220\u9664
has_prohibit_delete=\u53ea\u80fd\u5220\u9664\u672a\u5ba1\u6838\u7684\u914d\u7f6e\u4e0e\u53d6\u6d88\u5ba1\u6838\u901a\u8fc7\u7684\u914d\u7f6e
has_prohibit_nopass=\u53ea\u6709\u672a\u5ba1\u6838\u7684\u914d\u7f6e\u53ef\u672a\u901a\u8fc7\u5ba1\u6838
has_prohibit_pass=\u53ea\u6709\u672a\u5ba1\u6838\u7684\u914d\u7f6e\u53ef\u4ee5\u5ba1\u6838\u901a\u8fc7
multiple_keywords_tip=\u53ef\u540c\u65f6\u8f93\u5165\u591a\u6761\u5173\u952e\u5b57\uff0c\u8bf7\u4ee5\u56de\u8f66\u952e\u9694\u5f00\u3002
@@ -1116,11 +1116,11 @@ access_policy=\u8bbf\u95ee\u7b56\u7565
nat_policy=\u5730\u5740\u8f6c\u6362\u7b56\u7565
dns_policy_object=DNS\u7b56\u7565\u5bf9\u8c61
proxy_policy_object=Proxy\u7b56\u7565\u5bf9\u8c61
APP_PAYLOAD_ADMIN=APP Payload Admin
APP_HTTP_ADMIN=APP HTTP Admin
APP_DNS_ADMIN=APP DNS Admin
APP_SSL_ADMIN=APP SSL Admin
APP_DK_GL=APP Correlation Feature
APP_PAYLOAD_ADMIN=APP Payload \u7279\u5f81
APP_HTTP_ADMIN=APP HTTP \u7279\u5f81
APP_DNS_ADMIN=APP DNS \u7279\u5f81
APP_SSL_ADMIN=APP SSL \u7279\u5f81
APP_DK_GL=APP \u5173\u8054\u7279\u5f81
dnat_complex_loop=DNAT IP\u590d\u7528\u56de\u6d41
snat_policy=SNAT\u590d\u7528\u7b56\u7565
dnat_policy=DNAT\u590d\u7528\u7b56\u7565
@@ -1141,7 +1141,7 @@ protocol_identify=\u57FA\u7840\u534F\u8BAE
MM_FILE_DIGEST=\u6587\u4ef6\u6458\u8981
NTC_ASN_IP=ASN
NTC_STREAMING_MEDIA_URL=URL
NTC_VOIP_ACCOUNT=VoIP Account
NTC_VOIP_ACCOUNT=VoIP \u8d26\u6237
export_failed=\u5bfc\u51fa\u5931\u8d25
user_manage=\u5ba2\u6237\u7aef\u8d26\u53f7\u7ba1\u7406
ip_reuse_policy_object=IP\u590d\u7528\u7b56\u7565\u5bf9\u8c61
@@ -1163,7 +1163,7 @@ log_user=\u64cd\u4f5c\u7528\u6237
log_submission=\u8bf7\u6c42\u65b9\u6cd5
log_ip=\u64cd\u4f5c\u8005IP
log_exception_info=\u5f02\u5e38\u4fe1\u606f
system_log=Log Management
system_log=Log \u7ba1\u7406
protected_ddos=\u4fdd\u62a4DDOS\u653b\u51fb
usual_ddos=\u5e38\u7528DDOS\u653b\u51fb
mail_address=\u90ae\u4ef6\u5730\u5740
@@ -1194,17 +1194,17 @@ certificate_error=\u516c\u94a5\u3001\u79c1\u94a5\u6587\u4ef6\u683c\u5f0f\u9519\u
public_file_error=\u516c\u94a5\u6587\u4ef6\u683c\u5f0f\u9519\u8bef
keyframe_pic_required=\u5c1a\u672a\u9009\u62e9\u5173\u952e\u5e27\u56fe\u7247
private_file_error=\u79c1\u94a5\u6587\u4ef6\u683c\u5f0f\u9519\u8bef
ipv4_range_tip=IPv4 Range
ipv4_subnet_tip=IPv4/Subnet Mask
ipv6_range_tip=IPv6 Range
ipv6_subnet_tip=IPv6/Subnet Mask
example_tip=For Example
rule_desc_tip=Rule description
port_comment_tip=Port must between 0 and 65535
port_mask_comment_tip=Port and port mask must between 0 and 65535
multi_keywords_tip=Allow multiple keywords to be entered and multiple keywords to be replaced by line breaks.
visible_keyword_tip=Single keyword is not allowed to enter invisible characters.
single_keyword_tip=Only single key input is allowed.
ipv4_range_tip=IPv4 \u8303\u56f4
ipv4_subnet_tip=IPv4/\u5b50\u7f51\u63a9\u7801
ipv6_range_tip=IPv6 \u8303\u56f4
ipv6_subnet_tip=IPv6/\u5b50\u7f51\u63a9\u7801
example_tip=\u4f8b\u5982
rule_desc_tip=\u89c4\u5219\u63cf\u8ff0
port_comment_tip=Port\u5fc5\u987b\u5728 0 \u548c 65535 \u4e4b\u95f4
port_mask_comment_tip=Port \u548c port \u63a9\u7801 \u5fc5\u987b\u5728 0 \u548c 65535 \u4e4b\u95f4
multi_keywords_tip=\u5141\u8bb8\u8f93\u5165\u591a\u4e2a\u5173\u952e\u5b57\uff0c\u5e76\u7528\u6362\u884c\u7b26\u66ff\u6362\u591a\u4e2a\u5173\u952e\u5b57
visible_keyword_tip=\u5355\u4e2a\u5173\u952e\u5b57\u4e0d\u5141\u8bb8\u8f93\u5165\u4e0d\u53ef\u89c1\u7684\u5b57\u7b26
single_keyword_tip=\u53ea\u5141\u8bb8\u8f93\u5165\u4e00\u4e2a\u952e
ipv4_mask_range_tip=IP\u63a9\u7801\u5fc5\u987b\u4ecb\u4e8e16\u548c32\u4e4b\u95f4
ipv6_mask_range_tip=IP\u63a9\u7801\u5fc5\u987b\u4ecb\u4e8e2\u548c128\u4e4b\u95f4
letter_cancel_info=\u53d6\u6d88\u5ba1\u6838\u6765\u51fd
@@ -1216,7 +1216,7 @@ has_invisible_char=%s\u5305\u542b\u4e0d\u53ef\u89c1\u5b57\u7b26
not_multiple=%s\u4e0d\u652f\u6301\u591a\u4e2a\u5173\u952e\u5b57
template_error=\u5bfc\u5165\u6a21\u677f\u9519\u8bef.
asn_no=ASN
query=Query
query=\u67e5\u8be2
cfg_operation_log=\u914d\u7f6e\u64cd\u4f5c\u65e5\u5fd7
function_name=\u64cd\u4f5c\u6a21\u5757
config_service_statistics=\u914d\u7f6e\u7edf\u8ba1
@@ -1232,7 +1232,7 @@ default_value=\u9ed8\u8ba4\u503c
intercept=\u62e6\u622a
unkown_error=\u672a\u77e5\u9519\u8bef\u4fe1\u606f
exception_info=\u5f02\u5e38\u4fe1\u606f
no_tc_udp_port_comment_tip=Port must be 0
no_tc_udp_port_comment_tip=Port \u5fc5\u987b\u4e3a 0
website_advanced_reject=HTTP Advanced\u963b\u65ad
website_advanced_monit=HTTP Advanced\u76d1\u6d4b
snat_ip_reuse_adress_pool_loop=SNAT\u5730\u5740\u6c60\u7ba1\u7406\u56de\u6d41
@@ -1322,10 +1322,10 @@ transfer_bytes=\u4f20\u8f93\u6570\u636e\u5b57\u8282
user_info=\u7528\u6237\u4fe1\u606f
user_list=\u7528\u6237\u5217\u8868
equal_password=\u5bc6\u7801\u4e0d\u4e00\u81f4\uff01
outgoing_unicast_packets=Upload Packets
outgoing_unicast_total_size=Upload Byte
incoming_unicast_packets=Download Packets
incoming_unicast_total_size=Download Byte
outgoing_unicast_packets=\u4e0a\u4f20\u6570\u636e\u5305\u6570
outgoing_unicast_total_size=\u4e0a\u4f20\u6570\u636e\u5b57\u8282\u6570
incoming_unicast_packets=\u4e0b\u8f7d\u6570\u636e\u5305\u6570
incoming_unicast_total_size=\u4e0b\u8f7d\u6570\u636e\u5b57\u8282\u6570
address_pool=\u5730\u5740\u6c60\u540d\u79f0
ip_total=IP\u603b\u6570
available_ip_total=\u53ef\u7528IP\u6570
@@ -1358,17 +1358,17 @@ website_keyword_monit=\u5173\u952e\u5b57\u76d1\u6d4b
website_keyword_reject=\u5173\u952e\u5b57\u963b\u65ad
radius_log=Radius \u65e5\u5fd7
message_type=Code
nas_ip=NAS IP Address
framed_ip=Framed IP Address
log_user_name=User Name
nas_ip=NAS IP \u5730\u5740
framed_ip=Framed IP \u5730\u5740
log_user_name=\u7528\u6237\u540d
av_tips=\u5bf9\u4e8e\u97f3\u89c6\u9891\u7f16\u7801\u7684\u7d22\u5f15\u4fe1\u606f\u5728\u97f3\u89c6\u9891\u6587\u4ef6\u5c3e\u90e8\u7684\u60c5\u51b5\uff0c\u672c\u7cfb\u7edf\u4e0d\u4e88\u652f\u6301\uff0c\u5bf9\u4e8e\u5206\u8fa8\u7387\u5927\u4e8e4\u5146\u7684\u89c6\u9891\uff0c\u672c\u7cfb\u7edf\u4e0d\u4e88\u652f\u6301
asn_ip_group_delete=(\u8be5ASN\u7ec4\u4e0b\u7684IP\u914d\u7f6e\u4e5f\u4f1a\u88ab\u5220\u9664)
keyword_log_tips=\u6e05\u6d17\u540e\u7f51\u9875\u5173\u952e\u5b57\u65e5\u5fd7\uff0c\u7f51\u9875\u5173\u952e\u5b57\u7ba1\u63a7\u72b6\u51b5\u4e0d\u7406\u60f3\u65f6\uff0c\u53ef\u5c06\u6e05\u6d17\u540e\u5efa\u8bae\u7ed9\u51fa\u7684\u547d\u4e2d\u5173\u952e\u5b57\u7f51\u9875\u914d\u7f6e\u4e3aURL\u7ba1\u63a7
conn_record=\u901a\u8054\u5173\u7cfb
bps=Gbps
bps_percent=Bps Percent
bps_percent=Bps \u767e\u5206\u6bd4
pps=PPS
pps_percent=pps Percent
pps_percent=pps \u767e\u5206\u6bd4
spoofing_ip_object=Spoofing IP Pool
spoofing_ip_policy=IP Spoofing
action_spoofing=Spoofing
@@ -1376,32 +1376,32 @@ spoofing=spoofing
service=Service
s_asn=SASN
d_asn=DASN
asn_conn_report=ASN Statistics
https_url_report=Http(s) URL Statistics
asn_conn_report=ASN\u7edf\u8ba1
https_url_report=Http(s) URL\u7edf\u8ba1
url=URL
sum=SUM
url_count=URL Count
ip_range_report=IN/EX Host Identity
sum=\u603b\u91cf
url_count=URL \u6570\u91cf
ip_range_report=IP\u8303\u56f4\u7edf\u8ba1
ip_start=Start IP
ip_end=End IP
ip_start_num=IP Start Num
ip_end_num=IP End Num
ip_start_num=IP Start \u6570\u91cf
ip_end_num=IP End \u6570\u91cf
ip_sub=IP Subnet
start_ip=Start IP
end_ip=End IP
start_ip=\u6e90 IP
end_ip=\u76ee\u7684 IP
action_detail=\u52a8\u4f5c\u8be6\u60c5
pass=Pass
live_link=Live
area_type=Area Type
area_type=\u5730\u57df\u7c7b\u578b
dns_group_manage=DNS\u5206\u7ec4\u7ba1\u7406
asn_group_manage=ASN\u5206\u7ec4\u7ba1\u7406
ip_group_manage=IP\u5206\u7ec4\u7ba1\u7406
ip_spoofing_group_manage=IP Spoofing\u5206\u7ec4\u7ba1\u7406
min_tcp=Min
max_tcp=Max
min_tcp=\u6700\u5c0f
max_tcp=\u6700\u5927
APP_TCP_SESSION_BYTE=Session
ip_count=Unique IP Count
counnection_count=Connection Count
ip_count=Unique IP \u6570\u91cf
counnection_count=Connection \u6570\u91cf
asn=ASN
Unique_num=Unique
ip=IP
@@ -1410,8 +1410,8 @@ unique_num=Unique
import_limit_is=\u5bfc\u5165\u9650\u5236\u6700\u5927\u6761\u6570
upload_limit_is=\u6587\u4ef6\u4e0a\u4f20\u4e2a\u6570\u9650\u5236
count=\u6570\u91cf
do_blacklist=Blacklist Option
l3_header_error=Only four attribute values are allowed to be entered at most
do_blacklist=\u672c\u5730\u9ed1\u540d\u5355
l3_header_error=\u6700\u591a\u53ea\u5141\u8bb8\u8f93\u5165\u56db\u4e2a\u5c5e\u6027\u503c
IP_HEADER=IP Header
ICMP_HEADER=ICMP Header
offset_expression=Offset Expression
@@ -1486,7 +1486,7 @@ GByte=GByte
interval=\u95f4\u9694
month=\u6708
day=\u65e5
week=weeks
week=\u5468
startTime=\u5f00\u59cb\u65f6\u95f4
endTime=\u7ed3\u675f\u65f6\u95f4
single=\u5355\u6b21
@@ -1496,8 +1496,8 @@ everyMonth=\u6bcf\u6708
on=On
validate_error=\u9a8c\u8bc1\u65f6\u53d1\u751f\u610f\u5916\u9519\u8bef
is_schduler=\u5b9a\u65f6\u5668
v4_num=IPv4 Number
v6_num=IPv6 Number
v4_num=IPv4 \u6570\u91cf
v6_num=IPv6 \u6570\u91cf
always=\u957f\u671f
schedule=Scheduler
cancel_all=\u53d6\u6d88\u6240\u6709\u914d\u7f6e!
@@ -1516,15 +1516,16 @@ src_ip_pattern=\u6E90IP\u683C\u5F0F
dest_ip_pattern=\u76EE\u7684IP\u683C\u5F0F
src_port_pattern=\u6E90\u7AEF\u53E3\u683C\u5F0F
dest_port_pattern=\u76EE\u7684\u7AEF\u53E3\u683C\u5F0F
url_group_configuration=URL Group Configuration
dns_keyword_group_configuration=DNS Keyword Group Configuration
app_ip_correlation=APP IP Correlation
ip_group=IP Group
common_ip_config=Common IP Config
common_group=Common Group
dns_keyword_group_manage=DNS Keyword Group Manage
old_asn_group_manage=ASN Group
url_group_manage=URL Group Manage
url_group_configuration=URL \u5206\u7ec4\u914d\u7f6e
dns_keyword_group_configuration=DNS \u5173\u952e\u5b57\u5206\u7ec4\u914d\u7f6e
app_ip_correlation=APP IP \u901a\u8054
ip_group=IP \u5206\u7ec4
common_ip_config=Common IP \u914d\u7f6e
common_group=Common \u5206\u7ec4
dns_keyword_group_manage=DNS \u5173\u952e\u5b57\u5206\u7ec4\u7ba1\u7406
old_asn_group_manage=ASN \u5206\u7ec4
url_group_manage=URL \u5206\u7ec4 \u7ba1\u7406
range_cross=\u6E90IP\u4E0E\u76EE\u7684IP\u8303\u56F4\u6709\u4EA4\u53C9
app_ip_correlation=APP\u5173\u8054\u7279\u5F81IP\u914D\u7F6E
public_private_file_error=\u516C\u79C1\u94A5\u8BC1\u4E66\u4E0D\u5339\u914D
public_private_file_error=\u516C\u79C1\u94A5\u8BC1\u4E66\u4E0D\u5339\u914D
https_url_format_tip=URL(http[s]://xxx.xx)

View File

@@ -182,8 +182,8 @@ ntcTotalReport=v1/ntcTotalReport
trafficIpActiveFiveMinute=v1/trafficIpActiveFiveMinute
trafficIpActiveOneHour=v1/trafficIpActiveOneHour
client_connect_timeout=300000
client_read_timeout=300000
client_connect_timeout=500000
client_read_timeout=500000
log_time_interval=300000
logsearch_menu_id=152
#use elasticsearch or not#
@@ -485,7 +485,7 @@ ntcCollectRadiusLog=v1/ntcCollectRadiusLogs
ntcConnRecordLog=v1/ntcConnRecordLogs
ntcConnRecordPercent=v1/ntcConnRecordPercent
#\u5bfc\u51fa\u6700\u5927\u6761\u6570
maxLogExportSize=2000
maxLogExportSize=20000
pxy_crtl_subscribe_id_region=PXY_CTRL_SUBSCRIBE_ID
ntc_subscribe_id_region=NTC_SUBSCRIBE_ID
ntcAsnRecord=v1/ntcAsnRecord
@@ -519,4 +519,5 @@ trafficAppBpsTrend=v1/trafficAppBpsTrend
#vpn cgi error info
cgiError=cannot connect to vpnserver,Connection to the server has failed,Specified object can not be found,Too many users,User already exists,Too many created users,The destination server is not a VPN server,The connection has been interrupted,
#\u83b7\u53d6\u670d\u52a1\u914d\u7f6e\u603b\u91cf\u63a5\u53e3
getConfigByService=v1/getConfigByService
getConfigByService=v1/getConfigByService
delAllCfg=v1/delAllConfig

View File

@@ -0,0 +1,612 @@
-- ----------------------------
-- Table structure for help_document
-- ----------------------------
DROP TABLE IF EXISTS `help_document`;
CREATE TABLE `help_document` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`file_name` varchar(100) DEFAULT '',
`file_comment` text DEFAULT NULL,
`back_file_comment` text DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `INDEX_FILE_NAME` (`file_name`)
) ENGINE=InnoDB AUTO_INCREMENT=45 DEFAULT CHARSET=utf8mb4;
-- ----------------------------
-- Records of help_document
-- ----------------------------
INSERT INTO `help_document` VALUES ('1', 'cache_policy.md', 'Cache Policy
On National Proxy System, Individual Cache policy rules determine
whether to cache or not based on traffic attributes, such as URL and
Cookies. For cache action, the optimization parameters are:
*A Cache key* - is a unique string that lets the National Proxy System
look for web content when requests hit them. It<49><74>s made up of a hostname,
path, and cookie parts. By default, the Proxy use the entire URL as the
cache key. Selecting the correct cache key will ensure maximum cache
footprint and increase cache hits.
*Ignore Query String in URL* - in case the query strings doesn<73><6E>t
actually indicate that the object need to be different then you could
EXCLUDE them from the cache key. For example, after ignoring <20><>sqp<71><70> and
<EFBFBD><EFBFBD>rs<EFBFBD><EFBFBD> of URL: <20><>https://example.com/pic.jpg?~~sqp=UAAI&rs=AOn4~~<7E><>.
*Include Cookie Values* - in case the server send different content for
the same URL based on the cookie value, you can include that cookie
value as a part of cache key. For example, the server may set a cookie
at the client called "prefLang=ru" to record user preferred language,
you could add "prefLang" to distinguish different web content.
*Disable Revalidate* - is an ON-OFF switch. The pragma-no-cache header
in a client<6E><74>s request causes the proxy to re-fetch the entire object
from the original server, even if the cached copy of the object is
fresh. By default this option is switch OFF, which means a client<6E><74>s
non-conditional request results in a conditional GET request sent to the
original server if the object is already in cache. The conditional
request allows the original server to return the 304 Not Modified
response, if the content in cache is still fresh. Thereby, the
server-side bandwidth and latency consumed are lesser as the full
content is not retrieved again from the original server.
*Cache Dynamic Content* - is an ON-OFF switch. A URL is considered
dynamic if it ends in <20><>.asp(x)<29><> or contains a question mark (?), a
semicolon (;), or <20><>cgi<67><69>. *Ignore Query String* overrides this option
(switch on).
*Cache Cookied Content* - is an ON-OFF switch. By default, the Proxy
does NOT cache cookied content of any type. If this option is switch on,
the system cache all cookied content except HTML.
*Ignore Request no-cache Headers* - is an ON-OFF switch. By default, the
proxy strictly observes client Cache-Control: no-cache directives. As
known as:
i. Authorization
ii. WWW-Authenticate
iii. Cache-Control: no-store
iv. Cache-Control: no-cache
If a requested object contains a no-cache header, then proxy forwards
the request to the origin server even if it has a fresh copy in cache.
You can configure proxy to ignore client no-cache directives such that
it ignores no-cache headers from client requests and serves the object
from its cache.
*Ignore Response no-cache Headers* - is an ON-OFF switch. By default, a
response from an origin server with a no-cache header is not stored in
the cache. As known as:
i. Cache-Control: no-store
ii. Cache-Control: private
iii. Set-Cookie
iv. Cache-Control: no-cache
v. WWW-Authenticate
vi. Expires header with a value of 0 (zero) or a past date.
If you configure proxy to ignore no-cache headers, then proxy also
ignores no-store headers. The default behavior of observing no-cache
directives is appropriate in most cases.
*Forcing Object Caching* - is an ON-OFF switch. You can force Proxy to
cache specific URLs (including dynamic URLs) for a specified duration,
regardless of Cache-Control response headers.
*Minimum Use* - sets the number of times an item must be requested by
clients before Proxy caches it. This is useful if the cache is
constantly filling up, as it ensures that only the most frequently
accessed items are added to the cache. By default, Proxy cache object at
its first appearance. The counter resets in every 30 minutes. Note that
the requests is counted independently on each processing unit.
*Max Cache Object Size* - sets the upper limit of an object size, larger
object will not be cached. By default, Proxy does not cache object
larger than 1 GB.
*Cache Pinning Time* - configures Proxy to keep certain objects in the
cache for a specified time. You can use this option to ensure that the
most popular objects are in cache when needed and to prevent cache
manager from deleting important objects. Proxy observes Cache-Control
headers and pins an object in the cache only if it is indeed cacheable.
*Max Cache Size* - sets the upper limit of the size of storage for a
policy. By default, Proxy uses all available disk space. When the cache
size reaches the limit, the cache manager removes the files that were
least recently used to bring the cache size back under the limit.
*Inactive Time* - specifies how long an item can remain in the cache
without being accessed. A file that has not been requested for this time
is automatically deleted from the cache by the cache manager, regardless
of whether or not it has expired.
', null);
INSERT INTO `help_document` VALUES ('2', 'control_policy.md', 'Control Policy
On National Proxy System, Individual Control policy rules determine
whether to allow, block, redirect or replace a session based on traffic
attributes, such as URL, request header fields, request body keywords,
response header fields, response body keywords, IP address, Subscribe ID
and their combination. You could specify these attributes in the submenu
of *Control Policy*.
The attributes are detailed in following context:
*URL* - From proxy<78><79>s perspective, a HTTP URL consists of a hierarchical
sequence of three components: URL = hostname/path[?query] . The URL path
name can also be specified by the user in the local writing system. If
not already encoded, it is converted to UTF-8, and any characters not
part of the basic URL character set are escaped as hexadecimal using
percent-encoding; for example, search keywords <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܧڧۡ<DAA7> in Google
produces URL<52><4C>
https://www.google.com/search?q=%D1%80%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9
To perform policy action on above URL, you could input the whole URL in
the input box. Or, you could input original keywords and let the Proxy
do the decoding, e.g. <20><>google.com/search<63><68> & <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܧڧۡ<DAA7>. Note that the
scheme string MUST be excluded from the URL, it<69><74>s <20><>https://<2F><> in this
case.
NOTE Maximum HTTP/HTTPS URL length is 1023 characters
*Request Header* - is used to set conditions on request header fields.
Header fields are colon-separated key-value pairs in clear-text string
format, terminated by a carriage return (CR) and line feed (LF)
character sequence. For example, <20><>user-agent: Mozilla/5.0 (Windows NT
10.0; Win64; x64)<29><> is a header filed in request header. The *Matching
District* is used to configure the field<6C><64>s key, if the key was
presented, the Proxy will search in the value for *Keywords*.
*Response Header* - is used to set conditions on response header fields.
Its configuration is similar to *Request Header*.
*Request Body* - is used to set conditions on request<73><74>s body message.
The Proxy searches the pre-configured *Keywords* in it. You can
configure non-ASCII or non-utf8 keywords by turn on HEX.
*Response Body* - is used to set conditions on response<73><65>s body message.
Its configuration is similar to *Request Body*.
You could select one of the five actions for above attributes, as known
as:
*Monitor* - the Proxy produce a log to record matched HTTP session
information.
*Block* - the Proxy terminate matched HTTP session with an error page
and produce a log. You MUST specify a *Response Code* and a *Response
Content* to generate an error page.
*Redirect*<2A><>the Proxy redirect matched HTTP session to a predefined URL.
Since redirection need to be performed before delivering response to
client, condition of response body is not applicable in this action. You
MUST configure the redirect response via *Response Code* and *Response
URL*. The Response URL MUST start with a scheme (http:// or https://).
You SHOULD NOT select **301** as *Response Code* unless you exactly know
what you are doing. This action produces a log.
*Replace*<2A><>the Proxy *Searches in* a given HTTP part to *Find* a given
string, and *Replace* any matches *with* another given string. If no
match was found, the session remained untouched. For performance
concerns, condition of request body and response body is not available
in this action. For example, you can configure the Proxy to search in
the response body of URL <20><>www.example.com/index.html<6D><6C>, find every
<EFBFBD><EFBFBD>string1<EFBFBD><EFBFBD> and replace with <20><>string2<67><32>. This action produces a log.
*Whitelist*<2A><>the Proxy pass-through the matched sessions and produce no
log.
National Proxy will enforce policy check on traffic attributes, policies
have been created that there will be some that overlap or are subsets of
the parameters that the policies use to determine which policy should be
matched against the traffic. The execute order of policy is <20><>first
match, first served<65><64>. In case of an incoming traffic attribute matches
one more policy, the priority order is *Whitelist \> Block \>
Redirect \> Replace \> Monitor*, action with higher priority overrides
others. If multiple policies of same action are matched, policy with
bigger ID number is precedence.
', null);
INSERT INTO `help_document` VALUES ('3', 'intercept_policy.md', 'Intercept Policy
An Intercept policy rule allows you to define traffic that you want the
National Proxy to decrypt and to define traffic that you choose to
exclude from decryption because the traffic is personal or because of
local regulations. A connection is intercepted/optimized based on
traffic attributes, such as IP address, domain name (via SNI matching)
and Subscribe ID. You could specify these attributes in *IP Intercept*
and *Domain Intercept*.
Both *IP intercept* and *Domain Intercept* are subject two actions:
*Intercept*<2A><>the National Proxy System intercepts network traffic for
further control policy and cache policy checking. Interception requires
certificates to establish the National Proxy as a trusted third party.
National Proxy deployed in transparent mode, which means the users don`t
have any proxy settings in their browser. When a connection is set to
intercept, the proxy terminates the connection and initiates a new
connection between client and server. If the connection is SSL
encrypted, the original certificate is replaced with a substitute one.
*Bypass*<2A><>the Proxy passes through the network connection without apply
an optimization or policy checking. You can also use bypass action when
excluding servers from SSL decryption for technical reasons (the site
breaks decryption for reasons such as certificate pinning, unsupported
ciphers, or mutual authentication). Apple Store, WhatsApp, Telegram,
Microsoft Windows Update are common SSL pinning application. In case of
traffic matches one more policy, bypass overrides intercept.
When *Intercept Related Domains* is enabled, domains that share one
certificates with the specified domain are considered as the same. For
example, if the intercept facebook.com with I*ntercept Related Domain*
option, then \*.xx.fbcdn.net, fb.com, .messenger.com and etc. are also
intercepted. There may be side effects that intercept undesired websites
that share one certificate. For example, two websites hosted in a same
CDN provider (Content Delivery Network) or different products of one
company.
*Key ring* determines which certificate will be used to generate
substitute certificate. You could configure key ring through *Proxy
Policy Object* page. If no key ring is specified, proxy will use the
default one.
Intercept policy produces no log. You can find out if the interception
is successful by checking if the certificate is issued by your
pre-configured Root CA. You need a PC which traffic has already directed
to the Proxy, and a web browser to test the policy. For Chrome and
Microsoft Internet Explorer, you could click the lock icon on the
address bar to view certificate. For Firefox, after you clicking the
lock icon, click <20><>\><3E><> button to show connection details, click <20><>more
information<EFBFBD><EFBFBD>, and then click <20><>view certificate<74><65>. If the browser warning
that the connection is not secure, one possible reason is you haven<65><6E>t
install/trust the root certificate yet.
**Note:** You should exercise caution because web applications may not
cooperate with SSL interception. Reasons that sites break decryption
technically include pinned certificates, mutual authentication,
incomplete certificate chains, unsupported ciphers, and non-standard SSL
implementation. If a site uses an incomplete certificate chain, the
National Proxy doesn<73><6E>t automatically fix the chain as a browser would.
You need to manually download the missing sub-CA certificates and load
and deploy them onto the proxy.', null);
INSERT INTO `help_document` VALUES ('4', 'proxy_policy_object.md', 'Proxy Policy Object
A policy object is a single object or a collective unit that groups
discrete identities such as IP addresses, URLs, applications, or users.
With policy objects that are a collective unit, you can reference the
object in policy instead of manually selecting multiple objects one at a
time. Typically, when creating a policy object, you group objects that
require similar permissions in policy.
1. Key Ring
On National Proxy System, Key Ring is a pair of private key and public
certificate. You can also import a certificate chain containing multiple
certificates. Key Ring is a policy object, you can reference it in
*Intercept Policy*.
There are three *Certificate Type:*
*End-entity Certificate*<2A><> is used for web servers to identify
themselves. The *Public Key File* MUST be .p12 format that contains
entire certificate chain. The Private Key File could be .pem, .key or
.p12 format. This certificate type is not applicable to *Domain
Intercept* for it cannot be used to sign other certificates. *Expire
After* parameter is also not applicable to end-entity certificate for
the same reason.
*Intermedia Certificate* - is used to sign other certificates. An
intermediate certificate must be signed by another intermediate
certificate, or a root certificate. The *Public Key File* MUST be .p12
format that contains entire certificate chain. The *Expire After*
parameter indicates the expiration of the substitute certificate that
was issued by this intermedia certificate.
*Root Certificate* - is used to sign other certificates. The *Public Key
File* could be .der, .cer, .crt or .pem format. The *Expire After*
parameter has the same meaning as Intermedia Certificate.
*CRL* - or Certificate Revocation List, is a list of digital
certificates that have been revoked by the issuing certificate authority
(CA) before their scheduled expiration date and should no longer be
trusted. On Key Ring settings, CRL is an HTTP URL that point to a valid
.crl file. Invalid URL or .crl file may produce certificate warnings on
some browser, i.e. Internet Explorer 11.
Specification of certificate formats:
*.pem* <20>C (Privacy-enhanced Electronic Mail) Base64 encoded DER
certificate, enclosed between "-----BEGIN CERTIFICATE-----" and
"-----END CERTIFICATE-----"
*.cer, .crt, .der* <20>C usually in binary DER form, but Base64-encoded
certificates are common too (see .pem above)
*.p12* <20>C PKCS\#12, may contain certificate(s) (public) and private keys
(without password protected)
1. Trusted Certificate
National Proxy System has a build-in trusted certificate authorities
list. When the original certificate is issued by a certificate authority
that not in the list, the proxy will issued the substitute certificate
with an untrusted root certificate, and so consequently, the browser
could identify unsecure connections.
You can add a custom certificate authority to the trusted certificate
authorities of the system.
The certificate MUST be PEM format.
Following are the National Proxy System<65><6D>s default trusted certificate
authorities:
ACCVRAIZ1
Actalis Authentication Root CA
AddTrust External CA Root
AffirmTrust Commercial
AffirmTrust Networking
AffirmTrust Premium
AffirmTrust Premium ECC
Amazon Root CA 1
Amazon Root CA 2
Amazon Root CA 3
Amazon Root CA 4
Atos TrustedRoot 2011
Autoridad de Certificacion Firmaprofesional CIF A62634068
Baltimore CyberTrust Root
Buypass Class 2 Root CA
Buypass Class 3 Root CA
CA Disig Root R2
CFCA EV ROOT
COMODO Certification Authority
COMODO ECC Certification Authority
COMODO RSA Certification Authority
Certigna
Certinomis - Root CA
Class 2 Primary CA
Certplus Root CA G1
Certplus Root CA G2
Certum Trusted Network CA
Certum Trusted Network CA 2
Chambers of Commerce Root - 2008
AAA Certificate Services
Cybertrust Global Root
D-TRUST Root Class 3 CA 2 2009
D-TRUST Root Class 3 CA 2 EV 2009
DST Root CA X3
Deutsche Telekom Root CA 2
DigiCert Assured ID Root CA
DigiCert Assured ID Root G2
DigiCert Assured ID Root G3
DigiCert Global Root CA
DigiCert Global Root G2
DigiCert Global Root G3
DigiCert High Assurance EV Root CA
DigiCert Trusted Root G4
E-Tugra Certification Authority
EC-ACC
EE Certification Centre Root CA
Entrust.net Certification Authority (2048)
Entrust Root Certification Authority
Entrust Root Certification Authority - EC1
Entrust Root Certification Authority - G2
GDCA TrustAUTH R5 ROOT
GeoTrust Global CA
GeoTrust Primary Certification Authority
GeoTrust Primary Certification Authority - G2
GeoTrust Primary Certification Authority - G3
GeoTrust Universal CA
GeoTrust Universal CA 2
GlobalSign
GlobalSign
GlobalSign Root CA
GlobalSign
GlobalSign
Global Chambersign Root - 2008
Go Daddy Root Certificate Authority - G2
Hellenic Academic and Research Institutions ECC RootCA 2015
Hellenic Academic and Research Institutions RootCA 2011
Hellenic Academic and Research Institutions RootCA 2015
Hongkong Post Root CA 1
ISRG Root X1
IdenTrust Commercial Root CA 1
IdenTrust Public Sector Root CA 1
Izenpe.com
LuxTrust Global Root 2
Microsec e-Szigno Root CA 2009
NetLock Arany (Class Gold) F?tan<61><6E>s<EFBFBD><73>tv<74><76>ny
Network Solutions Certificate Authority
OISTE WISeKey Global Root GA CA
OISTE WISeKey Global Root GB CA
OpenTrust Root CA G1
OpenTrust Root CA G2
OpenTrust Root CA G3
QuoVadis Root Certification Authority
QuoVadis Root CA 1 G3
QuoVadis Root CA 2
QuoVadis Root CA 2 G3
QuoVadis Root CA 3
QuoVadis Root CA 3 G3
SSL.com EV Root Certification Authority ECC
SSL.com EV Root Certification Authority RSA R2
SSL.com Root Certification Authority ECC
SSL.com Root Certification Authority RSA
SZAFIR ROOT CA2
SecureSign RootCA11
SecureTrust CA
Secure Global CA
Sonera Class2 CA
Staat der Nederlanden EV Root CA
Staat der Nederlanden Root CA - G2
Staat der Nederlanden Root CA - G3
Starfield Root Certificate Authority - G2
Starfield Services Root Certificate Authority - G2
SwissSign Gold CA - G2
SwissSign Silver CA - G2
T-TeleSec GlobalRoot Class 2
T-TeleSec GlobalRoot Class 3
TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1
TWCA Global Root CA
TWCA Root Certification Authority
TeliaSonera Root CA v1
TrustCor ECA-1
TrustCor RootCert CA-1
TrustCor RootCert CA-2
T<EFBFBD><EFBFBD>RKTRUST Elektronik Sertifika Hizmet Sa?lay?c?s? H5
USERTrust ECC Certification Authority
USERTrust RSA Certification Authority
VeriSign Class 3 Public Primary Certification Authority - G4
VeriSign Class 3 Public Primary Certification Authority - G5
VeriSign Universal Root Certification Authority
VeriSign Class 3 Public Primary Certification Authority - G3
Visa eCommerce Root
XRamp Global Certification Authority
thawte Primary Root CA
thawte Primary Root CA - G2
thawte Primary Root CA - G3
Microsoft Root Authority
Microsoft Root Certificate Authority
Microsoft Root Certificate Authority 2010
Microsoft Root Certificate Authority 2011
Baltimore CyberTrust Root
', null);
commit;

View File

@@ -0,0 +1,191 @@
CREATE TABLE `inner_protection_list` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`keyword` varchar(500) NOT NULL COMMENT '<EFBFBD>ؼ<EFBFBD><EFBFBD><EFBFBD>',
`target_type` varchar(128) DEFAULT '' COMMENT '<EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
`description` varchar(200) DEFAULT '',
`is_valid` int(2) NOT NULL DEFAULT 0 COMMENT '-1ɾ<31><C9BE> 1<><31>Ч',
`create_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`editor_id` int(11) DEFAULT NULL,
`creator_id` int(11) NOT NULL,
`edit_time` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=108 DEFAULT CHARSET=utf8mb4;
INSERT INTO `inner_protection_list` VALUES ('104', '.com', 'domainCheck', 'protection domain', '1', '2019-03-26 13:54:28', '1', '1', '2019-04-02 11:16:36');
INSERT INTO `inner_protection_list` VALUES ('106', '.com', 'urlCheck', 'protection url', '1', '2019-03-27 11:08:24', '1', '1', '2019-04-02 11:21:52');
commit;
DROP PROCEDURE IF EXISTS `proc_statistics_config`;
delimiter ;;
CREATE DEFINER=`root`@`%` PROCEDURE `proc_statistics_config`()
BEGIN
DECLARE ntime VARCHAR(40);/*<EFBFBD><EFBFBD>ǰʱ<EFBFBD><EFBFBD>*/
DECLARE otime VARCHAR(40);/*<EFBFBD>ϴ<EFBFBD>ͳ<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>*/
DECLARE nRow VARCHAR(40);/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
DECLARE tabName VARCHAR(500);
DECLARE description VARCHAR(500);
DECLARE deleteSql VARCHAR(500);
DECLARE done INT;/*<EFBFBD>α<EFBFBD><EFBFBD><EFBFBD>ʶ*/
DECLARE flag INT;/*ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ*/
DECLARE t_error INT;/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ*/
DECLARE proc_log_table VARCHAR(100);/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־<EFBFBD><EFBFBD>*/
DECLARE proc_name VARCHAR(100);/*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
DECLARE icursor CURSOR FOR SELECT tab_name FROM statistics_tables where is_valid=1;
DECLARE CONTINUE HANDLER FOR NOT found SET done=1;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION set t_error=1;
select max(statistic_time) into otime from cfg_num_statistics;
SET done=0;
SET t_error=0;
SET proc_log_table='proc_exec_log';
SET proc_name='proc_statistics_config';
SET ntime=DATE_FORMAT(SYSDATE(),'%Y-%m-%d %H:%i:%S');
OPEN icursor;
loop_iloop:LOOP
FETCH icursor INTO tabName;
SET description=tabName;
set @descriptionStart=concat(description,'<EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD>start');
/*ͳ<EFBFBD>Ƶ<EFBFBD>ǰ<EFBFBD><EFBFBD><EFBFBD>ñ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>ͳ<EFBFBD>Ʊ<EFBFBD><EFBFBD><EFBFBD>start*/
set @v_log_sql1 := concat('insert into ',proc_log_table,'(proc_name,table_name,log_time,description) values(?,?,?,?)');
PREPARE execs FROM @v_log_sql1;
EXECUTE execs using proc_name,proc_log_table,ntime,@descriptionStart;
DEALLOCATE PREPARE execs;
COMMIT;
#20190328 <20><><EFBFBD>Ӷ<EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>is_audit=1 && (is_valid=1 || is_valid=0) <20><>Ϊapproved <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cfg_state=4[is_valid=0 && is_audit=1],<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˹<EFBFBD><CBB9>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>cfg_state=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD><EFBFBD>չʾ<D5B9><CABE>approvedֵʵ<D6B5>ʰ<EFBFBD><CAB0><EFBFBD>cfg_state=4<><34>cfg_state=1
set @insert_statistics_sql := concat('insert into cfg_num_statistics(statistic_time,audit_time,function_id,service_id,action,compile_id,cfg_state) select ','''',ntime,'''',',','audit_time,function_id,service_id,action,compile_id,if(is_valid=-1,-1,if(is_valid=1,1,if(is_audit=0,0,if(is_audit=1,4,if(is_audit=2,2,if(is_audit=3,3,0)))))) cfg_state from ',tabName);
PREPARE execs FROM @insert_statistics_sql;
EXECUTE execs;
DEALLOCATE PREPARE execs;
COMMIT;
set @descriptionEnd=concat(description,'<EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD>end');
set @v_log_sql2 := concat('insert into ',proc_log_table,'(proc_name,table_name,log_time,description) values(?,?,?,?)');
PREPARE execs FROM @v_log_sql2;
EXECUTE execs using proc_name,proc_log_table,ntime,@descriptionEnd;
DEALLOCATE PREPARE execs;
COMMIT;
/*<EFBFBD><EFBFBD>˳<EFBFBD>loop*/
IF t_error=1 THEN
LEAVE loop_iloop;
END IF;
/*ѭ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>loop*/
IF done=1 THEN
LEAVE loop_iloop;
ELSE
SET flag=0;
END IF;
IF flag=0 THEN
SET done=0;
END IF;
END LOOP loop_iloop;
CLOSE icursor;
/*ȡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
SELECT count(statistic_time) INTO nRow from cfg_num_statistics where statistic_time=ntime;
IF t_error=1 THEN /*<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
delete from cfg_num_statistics where statistic_time=ntime;
COMMIT;
ELSEIF nRow > 0 THEN /*<EFBFBD>жϱ<EFBFBD><EFBFBD><EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>ͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
delete from cfg_num_statistics where statistic_time=otime;
COMMIT;
END IF;
COMMIT;
END
;;
delimiter ;
<>д洢<D0B4><E6B4A2><EFBFBD><EFBFBD>
call exec_procs();
-- ------------
-- <20><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>type<70><65><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<DEB8><C4A3>޸<EFBFBD>ȫ<EFBFBD><C8AB>ͬ<EFBFBD><CDAC>״̬Ϊ3(<28><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
-- ------------
ALTER TABLE schedule_cfg ADD type int(1) DEFAULT 1 COMMENT '1:<3A><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>ȫ<EFBFBD><C8AB>ͬ<EFBFBD><CDAC>ʱδִ<CEB4>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>';
update schedule_cfg set type=1;
update sys_data_dictionary_item t set t.item_value=3 where t.dictionary_id=142;
-- ------------
-- ϵͳ<CFB5><CDB3><EFBFBD><EFBFBD>-><3E><><EFBFBD><EFBFBD>Ա<EFBFBD>û<EFBFBD>Ԥ<EFBFBD><D4A4>
-- ------------
INSERT INTO `sys_menu` (`parent_id`, `parent_ids`, `code`, `name`, `sort`, `href`, `target`, `icon`, `is_show`, `permission`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`, `del_flag`, `menu_bg`, `quick_action`, `is_top`, `function_id`) VALUES ('2', '0,1,2,', 'admin_user_warn', 'admin user warn', '5060', '/sys/warn/userWarnList', '', '', '1', 'sys:warnList:view', '1', '2019-03-28 10:06:26', '1', '2019-03-28 11:36:42', '', '1', NULL, '0', '0', NULL);
CREATE TABLE `sys_user_warn` (
`service_id` int(11) NOT NULL COMMENT 'ҵ<EFBFBD><EFBFBD>ID',
`service_desc` varchar(255) DEFAULT '' COMMENT 'ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
`interface_cfg_total` int(11) DEFAULT NULL COMMENT '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
`system_cfg_total` int(11) DEFAULT NULL COMMENT '<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>',
`time` datetime DEFAULT NULL COMMENT '<EFBFBD><EFBFBD><EFBFBD>ݲ<EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD>',
`remark` varchar(255) DEFAULT NULL COMMENT '<EFBFBD><EFBFBD>ע',
PRIMARY KEY (`service_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD>û<EFBFBD>Ԥ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>';
-- <20><><EFBFBD>ñ<EFBFBD><C3B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
INSERT INTO `sys_menu` (`parent_id`, `parent_ids`, `code`, `name`, `sort`, `href`, `target`, `icon`, `is_show`, `permission`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`, `del_flag`, `menu_bg`, `quick_action`, `is_top`, `function_id`) VALUES ('109', '0,1,109,', 'protection_list_manage', 'protection list manage', '5060', '/basics/innerProtectionList/list', '', 'fa fa-sticky-note-o', '1', 'basic:inner_protection_list:list', '1', '2019-03-25 15:28:34', '1', '2019-03-26 15:04:47', '', '1', NULL, '0', '0', NULL);
-- ------------
-- <20><><EFBFBD>˲<EFBFBD><CBB2>·<EFBFBD><C2B7><EFBFBD><EFBFBD>ܣ<EFBFBD>ֻ<EFBFBD>н<EFBFBD><D0BD>˲˵<CBB2><CBB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7>û<EFBFBD><C3BB>Ľ<EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>˽<EFBFBD>ɫ<EFBFBD>µ<EFBFBD><C2B5>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD>˰汾ע<E6B1BE><D7A2><EFBFBD><EFBFBD>ɫ<EFBFBD><C9AB><EFBFBD>
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2>·<EFBFBD><C2B7>˵<EFBFBD>
-- ------------
INSERT INTO `sys_menu`(`parent_id`, `parent_ids`, `code`, `name`, `sort`, `href`, `target`, `icon`, `is_show`, `permission`, `create_by`, `create_date`, `update_by`, `update_date`, `remarks`, `del_flag`, `menu_bg`, `quick_action`, `is_top`, `function_id`) VALUES (86, '0,1,86,', 'save_and_audit', 'save and audit', 5060, '', '', '', 0, 'save:audit:permission', '1', '2019-04-08 11:30:31', '1', '2019-04-08 11:47:16', 'save_and_audit', 1, NULL, 0, 0, NULL);
-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˲<EFBFBD><CBB2>·<EFBFBD><C2B7><EFBFBD>ɫ
INSERT INTO `sys_role`(`NAME`, `DATA_SCOPE`, `REMARK`, `STATUS`, `CREATE_TIME`, `ROLE_TYPE`) VALUES ('saveAndAudit', 1, '', 1, '2019-04-09 11:33:40', 'user');
-- <20><><EFBFBD><EFBFBD>ΪsaveAndAudit<69><74>ɫ<EFBFBD><C9AB><EFBFBD><EFBFBD>save_and_audit<69>˵<EFBFBD><CBB5><EFBFBD>
insert into sys_privilege (PRIVILEGE_MASTER,PRIVILEGE_MASTER_VALUE,PRIVILEGE_ACCESS,PRIVILEGE_ACCESS_VALUE,PRIVILEGE_OPERATION ) select 'ROLE',r.id,1000,m.id,1 from sys_role r,sys_menu m where r.name='saveAndAudit' and m.code='save_and_audit'

View File

@@ -0,0 +1,104 @@
#function_region_dict 对应ip_patternport_pattern的字段长度拓展一倍使用分号分隔源/目的
ALTER TABLE function_region_dict MODIFY config_ip_pattern VARCHAR(20) COMMENT "ip的格式 1:ip掩码;2:IP范围;3:IP;使用逗号分隔,源ip与目的IP使用;分隔";
ALTER TABLE function_region_dict MODIFY config_port_pattern VARCHAR(20) COMMENT "端口的格式1:port;2:port_mask;使用逗号分隔,源端口与目的端口使用;分隔";
#各表修改ip_patternport_pattern
#app_ip_cfg
ALTER TABLE app_ip_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE app_ip_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE app_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE app_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#app_ip_range_cfg
ALTER TABLE app_ip_range_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE app_ip_range_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE app_ip_range_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE app_ip_range_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#area_ip_cfg
ALTER TABLE area_ip_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE area_ip_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE area_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE area_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#asn_ip_cfg
ALTER TABLE asn_ip_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE asn_ip_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE asn_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE asn_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#av_cont_ip_cfg
ALTER TABLE av_cont_ip_cfg change ip_pattern src_ip_pattern int COMMENT '源ip格式';
ALTER TABLE av_cont_ip_cfg add dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE av_cont_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE av_cont_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#av_pic_ip_cfg
ALTER TABLE av_pic_ip_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE av_pic_ip_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE av_pic_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE av_pic_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#av_voip_ip_cfg
ALTER TABLE av_voip_ip_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE av_voip_ip_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE av_voip_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE av_voip_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#ddos_ip_cfg
ALTER TABLE ddos_ip_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE ddos_ip_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE ddos_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE ddos_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#dns_ip_cfg
ALTER TABLE dns_ip_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE dns_ip_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE dns_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE dns_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#ip_port_cfg
ALTER TABLE ip_port_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE ip_port_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE ip_port_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE ip_port_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#ip_reuse_ip_cfg
ALTER TABLE ip_reuse_ip_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE ip_reuse_ip_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
ALTER TABLE ip_reuse_ip_cfg CHANGE port_pattern src_port_pattern INT COMMENT '源端口格式';
ALTER TABLE ip_reuse_ip_cfg ADD dest_port_pattern INT COMMENT '目的端口格式';
#ip_reuse_policy_cfg
ALTER TABLE ip_reuse_policy_cfg CHANGE ip_pattern src_ip_pattern INT COMMENT '源ip格式';
ALTER TABLE ip_reuse_policy_cfg ADD dest_ip_pattern INT COMMENT '目的ip格式';
#修改字典的值
UPDATE function_region_dict SET config_ip_pattern ="1,2,3;1,2,3" WHERE config_ip_pattern="1,2,3";
UPDATE function_region_dict SET config_ip_pattern ="1;1" WHERE config_ip_pattern="1";
UPDATE function_region_dict SET config_ip_pattern ="3;3" WHERE config_ip_pattern="3";
UPDATE function_region_dict SET config_ip_pattern ="1,3;1,3" WHERE config_ip_pattern="1,3";
UPDATE function_region_dict SET config_port_pattern ="1;1" WHERE config_port_pattern="1";
UPDATE function_region_dict SET config_port_pattern ="1,2;1,2" WHERE config_port_pattern="1,2";
#Spoofing IP修改只显示目的IP
UPDATE function_region_dict SET config_ip_port_show=3 WHERE function_id=401;
#ASN IP修改只显示目的IP
UPDATE function_region_dict SET config_ip_port_show=3 WHERE function_id=600;
#sql 更新字段语句
UPDATE app_ip_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM app_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE app_ip_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM app_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE app_ip_range_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM app_ip_range_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE app_ip_range_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM app_ip_range_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE area_ip_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM area_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE area_ip_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM area_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE asn_ip_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM asn_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE asn_ip_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM asn_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE av_cont_ip_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM av_cont_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE av_cont_ip_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM av_cont_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE av_pic_ip_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM av_pic_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE av_pic_ip_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM av_pic_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE av_voip_ip_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM av_voip_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE av_voip_ip_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM av_voip_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE ddos_ip_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM ddos_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE ddos_ip_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM ddos_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE dns_ip_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM dns_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE dns_ip_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM dns_ip_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE ip_port_cfg c SET c.dest_ip_pattern =(SELECT b.src_ip_pattern FROM ( SELECT a.src_ip_pattern,a.`cfg_id` FROM ip_port_cfg a) b WHERE b.cfg_id=c.`cfg_id`);
UPDATE ip_port_cfg c SET c.dest_port_pattern =(SELECT b.src_port_pattern FROM ( SELECT a.src_port_pattern,a.`cfg_id` FROM ip_port_cfg a) b WHERE b.cfg_id=c.`cfg_id`);

View File

@@ -164,6 +164,26 @@ function del(url){
}
}
}else{
var isAudit=$("#isAudit").val();
var isValid=$("#isValid").val();
// 批量删除is_audit 3/0/null && is_valid 0/null 此条件下允许(取反提示)
if(!((isAudit==null || isAudit=='' || isAudit==3 || isAudit==0 )
&& (isValid==null || isValid==''|| isValid==0))){
top.$.jBox.tip("<spring:message code='has_prohibit_delete'/>", "<spring:message code='info'/>");
return;
}
if(isAudit==null || isAudit==''){
isAudit="3,0";
}
if(isValid==null || isValid==''){
isValid="0";
}
url=url+"&batchAuditValue="+isAudit;
url=url+"&batchValidValue="+isValid;
url = url+"&"
if(isBatch(url)) {
top.$.jBox.confirm("<spring:message code='confirm_message'/>","<spring:message code='delete_all'/>",function(v,h,f){
@@ -227,6 +247,24 @@ var checkboxes=$("#${id} ${value} tbody tr td input.i-checks:checkbox");
doAll(checkboxes,url);
}
}else{
var isAudit=$("#isAudit").val();
var isValid=$("#isValid").val();
// 审核通过is_audit 0/null && is_valid 0 此条件下允许(取反提示)
if(!((isAudit==null || isAudit=='' || isAudit==0 )
&& (isValid==null || isValid==''|| isValid==0))){
top.$.jBox.tip("<spring:message code='has_prohibit_pass'/>", "<spring:message code='info'/>");
return;
}
if(isAudit==null || isAudit==''){
isAudit="0";
}
if(isValid==null || isValid==''){
isValid="0";
}
url=url+"&batchAuditValue="+isAudit;
url=url+"&batchValidValue="+isValid;
url = url+"&"
//配置批量下发
if(isBatch(url)){
@@ -255,6 +293,27 @@ function noPassOpt(url){
}
}else{
var isAudit=$("#isAudit").val();
var isValid=$("#isValid").val();
// 审核不通过is_audit 0/null && is_valid 0/null 此条件下允许(取反提示)
if(!((isAudit==null || isAudit=='' || isAudit==0 )
&& (isValid==null || isValid==''|| isValid==0))){
top.$.jBox.tip("<spring:message code='has_prohibit_nopass'/>", "<spring:message code='info'/>");
return;
}
if(isAudit==null || isAudit==''){
isAudit="0";
}
if(isValid==null || isValid==''){
isValid="0";
}
url=url+"&batchAuditValue="+isAudit;
url=url+"&batchValidValue="+isValid;
url = url+"&"
//配置批量审核(未通过)
if(isBatch(url)){
@@ -333,6 +392,24 @@ function cancelPassOpt(url){
}
}else{
var isAudit=$("#isAudit").val();
var isValid=$("#isValid").val();
// 取消审核通过is_audit 1/null && is_valid 0(定时任务)/1/null 此条件下允许(取反提示)
if(!((isAudit==null || isAudit=='' || isAudit==1 )
&& (isValid==null || isValid=='' || isValid==1 || isValid==0))){
top.$.jBox.tip("<spring:message code='hasnot_approved'/>", "<spring:message code='info'/>");
return;
}
if(isAudit==null || isAudit==''){
isAudit="1";
}
if(isValid==null || isValid==''){
isValid="1,0";
}
url=url+"&batchAuditValue="+isAudit;
url=url+"&batchValidValue="+isValid;
url = url+"&"
//配置批量取消
if(isBatch(url)){

View File

@@ -116,7 +116,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<%-- <shiro:hasPermission name="avContUrl:config"> --%>
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/asnGroup/asnGroupForm'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -37,6 +37,8 @@
$(".Wdate").attr("value",'');
$("#description").attr("value",'');
$("#searchForm")[0].reset();
$("#organization").val("");
$("#userRegion1").val("");
});
if($("#exportType").val() != null && $("#exportType").val() != ""){
@@ -66,7 +68,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="asn:ip:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/asn/addForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -77,7 +79,7 @@
</c:if>
</c:forEach>
<c:if test="${regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -38,7 +38,7 @@
<body>
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-primary" onClick="javascript:window.location='${ctx}/sys/dict/dictItemForm?dictionaryId=${sysDataDictionaryItem.dictionaryId }'">
<button type="button" class="addId btn btn-primary" onClick="javascript:window.location='${ctx}/sys/dict/dictItemForm?dictionaryId=${sysDataDictionaryItem.dictionaryId }'">
<i class="fa fa-plus"></i>
<spring:message code="add"/></button>
</div>

View File

@@ -103,7 +103,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<%-- <shiro:hasPermission name="avContUrl:config"> --%>
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/policyGroup/policyGroupForm?groupType=${cfg.groupType}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -94,7 +94,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-primary" onClick="javascript:window.location='${ctx}/basics/innerProtectionList/form'">
<button type="button" class="addId btn btn-primary" onClick="javascript:window.location='${ctx}/basics/innerProtectionList/form'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message>
</button>

View File

@@ -106,7 +106,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<%-- <button type="button" class="btn btn-default" onclick="javascript:window.location='${ctx}/basics/serviceDictInfo/list?itType=${itType}'"><spring:message code="refresh"></spring:message></button> --%>
<shiro:hasPermission name="basics:${permission_type}:add">
<button type="button" class="btn btn-primary" onClick="javascript:window.location='${ctx}/basics/serviceDictInfo/form?itType=${itType}'"><i class="fa fa-plus"></i><spring:message code="add"></spring:message></button>
<button type="button" class="addId btn btn-primary" onClick="javascript:window.location='${ctx}/basics/serviceDictInfo/form?itType=${itType}'"><i class="fa fa-plus"></i><spring:message code="add"></spring:message></button>
</shiro:hasPermission>
</div>

View File

@@ -136,7 +136,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<%-- <button type="button" class="btn btn-default" onclick="javascript:window.location='${ctx}/basics/sysDictInfo/list?itType=${itType}'"><spring:message code="refresh"></spring:message></button> --%>
<shiro:hasPermission name="basics:${permission_type}:add">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/sysDictInfo/form?itType=${itType}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -12,7 +12,7 @@
<shiro:hasPermission name="basics:taskInfo:config">
<div class="theme-panel hidden-xs hidden-sm">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/taskInfo/form?functionId=${taskInfo.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"/></button>

View File

@@ -60,7 +60,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="asn:ip:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/basics/vpn/addForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -38,7 +38,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:built_in_file:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/appBuiltinFeatureFileForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -49,7 +49,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:byte:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/byteCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -55,7 +55,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:domain:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/domainCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -72,7 +72,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -102,7 +102,7 @@
</c:forEach>
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="${configPermissionName }">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/headerCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -56,7 +56,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:http:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/httpCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -73,7 +73,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -58,7 +58,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:ip:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/ipCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -75,7 +75,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -112,7 +112,7 @@
</c:forEach>
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="${configPermissionName }">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/feature/multiFeatureCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -131,7 +131,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -59,14 +59,15 @@ $(function(){
submitHandler: function(form){
var flag = true;
//代表所有业务都隐藏了,提示必须增加一种业务数据
/* if($(".boxSolid").length ==$(".boxSolid.hidden").length){
if($("[name=action]:checked").val()==1&&$(".boxSolid").length ==$(".boxSolid.hidden").length){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
return;
} */
}
/*
if($("[name=action]:checked").val()==1&&$(".ipPortAdd").parents(".form-section").next(".boxSolid").is(":hidden")){
top.$.jBox.tip("<spring:message code='ip_must_select'/>", "<spring:message code='info'/>");
return false;
}
}*/
$(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){
$(this).parents(".form-group").find(

View File

@@ -100,9 +100,12 @@
<body>
<div class="page-content">
<c:forEach items="${fns:getDictList('SPECIFIC_SERVICE_CFG_TYPE') }" var="dict">
<c:if test="${dict.itemValue eq 'social_app'}"><c:set var="app" value="${dict.itemCode}"/></c:if>
</c:forEach>
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:policy:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/policyCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -119,7 +122,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>
@@ -195,7 +198,14 @@
<form:select id="actionSelect" path="action" class="selectpicker select2 input-small" >
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${serviceList}" var="service">
<form:option value="${service.action }"><spring:message code="action_${service.actionCode }"/></form:option>
<c:choose>
<c:when test="${service.action eq 16}">
<form:option value="${service.action }"><spring:message code="block_drop"/></form:option>
</c:when>
<c:otherwise>
<form:option value="${service.action }"><spring:message code="action_${service.actionCode }"/></form:option>
</c:otherwise>
</c:choose>
</c:forEach>
</form:select>
<form:select path="isValid" class="selectpicker select2 input-small" >
@@ -444,8 +454,8 @@
</c:forEach>
</c:if>
</td>
<td class="appCode" id="${cfg.appCode }">${cfg.appCode }</td>
<td class="behavCode" id="${cfg.behavCode }">${cfg.behavCode }</td>
<td class="appCode" id="${cfg.appCode }" cfgType="${app }"></td>
<td class="behavCode" id="${cfg.behavCode }" cfgType="${app }"></td>
<%-- <td>${cfg.ratelimit }</td> --%>
<td>
<c:choose>

View File

@@ -95,6 +95,8 @@ function changeDistrict(obj){
<input type="hidden" name="compileId" value="${_cfg.compileId}">
<input type="hidden" name="functionId" value="${_cfg.functionId}">
<input type="hidden" id="serviceId" name="serviceId" value="${_cfg.serviceId}">
<input type="hidden" name="isValid" value="${_cfg.isValid}">
<input type="hidden" name="isAudit" value="${_cfg.isAudit}">
<input type="hidden" id="appCode" name="appCode" value="${_cfg.appCode}">
<input type="hidden" id="behavCode" name="behavCode" value="${_cfg.behavCode}">
<!-- 配置域类型 -->
@@ -434,18 +436,36 @@ function changeDistrict(obj){
<%-- <%@include file="/WEB-INF/include/form/basicInfo.jsp" %> --%>
</div>
<div class="form-actions">
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-md-offset-3 col-md-8">
<button id="save" type="submit" class="btn green"><spring:message code="submit"/></button>
<button id="cancel" type="button" class="btn default"><spring:message code="cancel"/></button>
</div>
</div>
</div>
<div class="col-md-6"> </div>
</div>
</div>
<div class="row">
<div class="col-md-6">
<div class="row">
<div class="col-md-offset-3 col-md-8">
<c:set var="auditPermission" value="false"></c:set>
<!-- 拥有配置新增直接生效的功能权限 -->
<shiro:hasPermission name="save:audit:permission">
<c:set var="auditPermission" value="true"></c:set>
</shiro:hasPermission>
<c:choose>
<c:when test="${!(fns:getUser().isAdmin()) && auditPermission}">
<button id="audit" type="submit" class="btn green">
<spring:message code="submit" />
</button>
</c:when>
<c:otherwise>
<button id="save" type="submit" class="btn green">
<spring:message code="submit" />
</button>
</c:otherwise>
</c:choose>
<button id="cancel" type="button" class="btn default">
<spring:message code="cancel" />
</button>
</div>
</div>
</div>
<div class="col-md-6"></div>
</div>
</div>
</form>
<!-- END FORM-->
</div>

View File

@@ -55,7 +55,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:ssl:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/sslCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -47,7 +47,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:tcp:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/tcpCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -53,7 +53,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="app:topic:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/app/topicDomainCfgForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -71,7 +71,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -67,7 +67,7 @@
<%-- <button type="button" class="btn btn-default" onclick="location='${ctx}/cfg/app/list?serviceId=${serviceId}&action=${action}&cfgName=${cfgName}'"><spring:message code="refresh"></spring:message></button> --%>
<c:if test="${audit==0}">
<shiro:hasPermission name="cfg:add">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/cfg/app/form?serviceId=${serviceId}&action=${action}&cfgName=${cfgName}'"><spring:message code="add"></spring:message></button>
</shiro:hasPermission>
</c:if>

View File

@@ -87,7 +87,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="asn:policy:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/cfg/asnPolicy/form?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -104,7 +104,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="avContIp:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/av/contIpForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -114,8 +114,8 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="avVoip:config">
<button type="button" class="btn btn-primary"
<shiro:hasPermission name="avContUrl:config">
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/av/contUrlForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -132,7 +132,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>
@@ -211,7 +211,7 @@
<button type="button" class="btn btn-default" id="filter-btn"> <spring:message code="filter"/> <i class="fa fa-angle-double-down"></i></button>
</div>
<div class="pull-right">
<shiro:hasPermission name="avVoip:config">
<shiro:hasPermission name="avContUrl:config">
<sys:delRow url="${ctx}/ntc/av/contUrlForm" id="contentTable" label="update"></sys:delRow>
<sys:delRow url="${ctx}/ntc/av/updateAvContUrlValid?isValid=-1&functionId=${cfg.functionId }" id="contentTable" label="delete"></sys:delRow>
<%-- <sys:delRow url="${ctx}/ntc/av/exportStream?functionId=${cfg.functionId }" searchUrl="${ctx}/ntc/av/contUrlList?functionId=${cfg.functionId}" id="contentTable" maxRow="10000" label="export"></sys:delRow> --%>

View File

@@ -280,6 +280,13 @@ function hiddenlevel(level){
$("select[name='level']").val("90");
$("select[name='level']").selectpicker("refresh");
}
}else{
var action=$("input[name='action']:checked").val();
if(action==16){
$(".level").addClass("hidden");
}else {
$(".level").removeClass("hidden");
}
}
}

View File

@@ -59,7 +59,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="avFileSample:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/av/sample/fileSampleForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -104,7 +104,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="avPicIp:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/av/picIpForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -103,7 +103,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="avPicUrl:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/av/picUrlForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -59,7 +59,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="avSignSample:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/av/sample/audioSignSampleForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -113,7 +113,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="avVoip:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/av/voipForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -130,7 +130,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -66,11 +66,16 @@ $(function(){
return;
}
*/
var flag = true;
//代表所有业务都隐藏了,提示必须增加一种业务数据
if($("[name=action]:checked").val()==1&&$(".boxSolid").length ==$(".boxSolid.hidden").length) {
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
return;
}
/*
if($("[name=action]:checked").val()==1&&$(".ipPortAdd").parents(".form-section").next(".boxSolid").is(":hidden")){
top.$.jBox.tip("<spring:message code='ip_must_select'/>", "<spring:message code='info'/>");
return false;
}
}*/
$(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){

View File

@@ -105,7 +105,7 @@
</c:forEach>
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="basicprotocol:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/basicprotocol/form?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -122,7 +122,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>
@@ -199,7 +199,16 @@
<form:select id="actionSelect" path="action" class="selectpicker select2 input-small" >
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${serviceList}" var="service">
<form:option value="${service.action }"><spring:message code="action_${service.actionCode }"/></form:option>
<c:choose>
<c:when test="${service.action eq 16}">
<form:option value="${service.action }"><spring:message code="block_drop"/></form:option>
</c:when>
<c:otherwise>
<form:option value="${service.action }"><spring:message code="action_${service.actionCode }"/></form:option>
</c:otherwise>
</c:choose>
</c:forEach>
</form:select>
<form:select path="isValid" class="selectpicker select2 input-small" >
@@ -446,7 +455,7 @@
</c:forEach>
</c:if>
</td>
<td class="appCode" id="${cfg.appCode }">${cfg.appCode }</td>
<td class="appCode" id="${cfg.appCode }" cfgType="${app }"></td>
<td>
<c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>

View File

@@ -58,7 +58,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<%-- <button type="button" class="btn btn-default" onclick="location='${ctx}/cfg/string/list?serviceId=${serviceId}&action=${action}&cfgName=${cfgName}'"><spring:message code="refresh"></spring:message></button> --%>
<shiro:hasPermission name="${requiresPermissionPrefix.concat(':config')}">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}${urlPrefix}/form?functionId=${cfg.functionId}&cfgName=${cfgName}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -53,7 +53,7 @@
<!-- 模板导入end -->
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="${requiresPermissionPrefix.concat(':config')}">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}${urlPrefix}/form?functionId=${cfg.functionId}&cfgName=${cfgName}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -55,7 +55,7 @@
<%-- <button type="button" class="btn btn-default" onclick="location='${ctx}/cfg/complex/list?serviceId=${serviceId}&action=${action}&cfgName=${cfgName}'"><spring:message code="refresh"></spring:message></button> --%>
<c:if test="${audit==0}">
<shiro:hasPermission name="cfg:complex:add">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/cfg/complex/form?serviceId=${serviceId}&action=${action}&cfgName=${cfgName}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -65,7 +65,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="ddos:ip:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/manipulation/ddos/form?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -82,7 +82,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -64,7 +64,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="dns:fake:ip:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/cfg/dnsIp/form?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -81,7 +81,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -50,6 +50,11 @@ $(function(){
},
submitHandler: function(form){
var flag = true;
//代表所有业务都隐藏了,提示必须增加一种业务数据
if($("[name=action]:checked").val()==1&&$(".boxSolid").length ==$(".boxSolid.hidden").length){
top.$.jBox.tip("<spring:message code='one_more'/>", "<spring:message code='info'/>");
return;
}
$(".boxSolid:visible").find("input[name$='cfgKeywords']").each(function(){
if($(this).val()==''){
$(this).parents(".form-group").find(

View File

@@ -100,9 +100,12 @@
<body>
<div class="page-content">
<c:forEach items="${fns:getDictList('SPECIFIC_SERVICE_CFG_TYPE') }" var="dict">
<c:if test="${dict.itemValue eq 'encrypted_tunnel_behavior'}"><c:set var="app" value="${dict.itemCode}"/></c:if>
</c:forEach>
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="encryptedtunnelbehav:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/encryptedtunnelbehav/form?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -119,7 +122,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>
@@ -196,7 +199,14 @@
<form:select id="actionSelect" path="action" class="selectpicker select2 input-small" >
<form:option value=""><spring:message code="select"/></form:option>
<c:forEach items="${serviceList}" var="service">
<form:option value="${service.action }"><spring:message code="action_${service.actionCode }"/></form:option>
<c:choose>
<c:when test="${service.action eq 16}">
<form:option value="${service.action }"><spring:message code="block_drop"/></form:option>
</c:when>
<c:otherwise>
<form:option value="${service.action }"><spring:message code="action_${service.actionCode }"/></form:option>
</c:otherwise>
</c:choose>
</c:forEach>
</form:select>
<form:select path="isValid" class="selectpicker select2 input-small" >
@@ -444,8 +454,8 @@
</c:forEach>
</c:if>
</td>
<td class="appCode" id="${cfg.appCode }">${cfg.appCode }</td>
<td class="behavCode" id="${cfg.behavCode }">${cfg.behavCode }</td>
<td class="appCode" id="${cfg.appCode }" cfgType="${app }"></td>
<td class="behavCode" id="${cfg.behavCode }" cfgType="${app }"></td>
<td>
<c:choose>
<c:when test="${cfg.isAudit eq '0'}"><span class="label label-danger"><spring:message code="created"></spring:message></span></c:when>

View File

@@ -15,7 +15,8 @@
sampleFileValidate();
});
hiddenlevel($("select[name='cfdsLevel']").val());
//hiddenlevel($("select[name='cfdsLevel']").val());
hiddenlevel(null);
$(".action").on("change", function() {
$("#serviceId").val($(this).attr("serviceId"));
$("#protocolId").val($(this).attr("protocolId"));

View File

@@ -130,7 +130,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="fileTransfer:fileDigest:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/fileTransfer/fileDigestForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -101,11 +101,11 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="fileTransfer:ftp:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/fileTransfer/ftpForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</shiro:hasPermission>

View File

@@ -101,7 +101,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="fileTransfer:p2p:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/fileTransfer/p2pForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -118,7 +118,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>

View File

@@ -110,7 +110,7 @@
<div class="page-content">
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="intercept:${fn:toLowerCase(interceptType)}:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/proxy/intercept/intercept${interceptType}Form?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>
@@ -127,7 +127,7 @@
</c:if>
</c:forEach>
<c:if test="${serviceImport eq 'true' && regionImport eq 'true'}">
<button type="button" class="btn btn-primary import" >
<button type="button" class="importId btn btn-primary import" >
<i class="fa fa-plus"></i>
<spring:message code="import"></spring:message></button>
</c:if>
@@ -411,7 +411,7 @@
<th column="is_audit" ><spring:message code="is_audit"/></th>
<th column="valid_identifier" class="sort-column a.is_valid"><spring:message code="valid_identifier"/></th>
<th><spring:message code="is_schduler"/></th>
<th column="do_log" ><spring:message code="do_log"/></th>
<%-- <th column="do_log" ><spring:message code="do_log"/></th> --%>
<th column="log_total" ><spring:message code="log_total"/></th>
<th column="whether_area_block" ><spring:message code="whether_area_block"/></th>
<th column="letter" ><spring:message code="letter"/></th>
@@ -571,13 +571,13 @@
</c:otherwise>
</c:choose>
</td>
<td>
<%-- <td>
<c:forEach items="${fns:getDictList('DO_LOG') }" var="dict">
<c:if test="${dict.itemCode eq indexCfg.doLog and indexCfg.action!=64 }">
<c:if test="${dict.itemCode eq indexCfg.doLog}">
<spring:message code="${dict.itemValue }"/>
</c:if>
</c:forEach>
</td>
</td> --%>
<td audit="${indexCfg.isAudit}" functionId="${indexCfg.functionId}" compileId="${indexCfg.compileId}" action="${indexCfg.action}"><div class="loading-total"></div></td>
<td>
<c:if test="${indexCfg.isAreaEffective==0}"><spring:message code="all"/></c:if>

View File

@@ -46,7 +46,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="proxy:intercept:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/proxy/intercept/strateagy/form?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -120,7 +120,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<shiro:hasPermission name="proxy:trustedCert:config">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/proxy/intercept/strateagy/trustedCertForm?functionId=${cfg.functionId}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

View File

@@ -55,7 +55,7 @@
<div class="theme-panel hidden-xs hidden-sm">
<%-- <button type="button" class="btn btn-default" onclick="location='${ctx}/cfg/ip/list?serviceId=${serviceId}&action=${action}&cfgName=${cfgName}&audit=${audit}'"><spring:message code="refresh"></spring:message></button> --%>
<c:if test="${audit==0}">
<button type="button" class="btn btn-primary"
<button type="button" class="addId btn btn-primary"
onClick="javascript:window.location='${ctx}/ntc/whitelist/form?audit=${audit}&cfgName=${cfgName}'">
<i class="fa fa-plus"></i>
<spring:message code="add"></spring:message></button>

Some files were not shown because too many files have changed in this diff Show More