From c75eee3dd009c74373913e70315f4683022a2244 Mon Sep 17 00:00:00 2001 From: wangxin Date: Wed, 22 Aug 2018 11:05:08 +0800 Subject: [PATCH 01/16] =?UTF-8?q?(1)=E5=9F=9F=E5=90=8D=E7=99=BD=E5=90=8D?= =?UTF-8?q?=E5=8D=95=E9=A1=B5=E9=9D=A2=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8?= =?UTF-8?q?=E7=9A=84js=E4=BB=A3=E7=A0=81=20(2)IPV4,IPV6=E7=9A=84=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E6=AD=A3=E5=88=99=E6=9B=BF=E6=8D=A2=E6=88=90=E4=B8=8E?= =?UTF-8?q?=E7=BB=BC=E5=90=88=E6=9C=8D=E5=8A=A1=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/nis.properties | 12 +- .../views/cfg/whitelist/domainForm.jsp | 38 ---- .../1.11.0/jquery.validate.method.js | 201 ++++++++++-------- 3 files changed, 119 insertions(+), 132 deletions(-) diff --git a/src/main/resources/nis.properties b/src/main/resources/nis.properties index f3a43bc6a..0ebbf749a 100644 --- a/src/main/resources/nis.properties +++ b/src/main/resources/nis.properties @@ -356,12 +356,12 @@ user_region_placeholder=0 #\u7528\u6237\u81ea\u5b9a\u4e49\u57df\u5206\u9694\u7b26 user_region_split=; #IP\u76f8\u5173\u9a8c\u8bc1\u6b63\u5219 -ipv4_ip_subnet_regexp=^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}/(3[0-2]|[1-2][0-9]|[0-9])$ -ipv6_ip_subnet_regexp=^\\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\\s*/(0|2|4|8|16|32|64|128)$ -ipv4_ip_range_regexp=^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}-(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}$ -ipv6_ip_range_regexp=^\\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\\s*-\\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\\s*$ -ipv4_ip_regexp=^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}$ -ipv6_ip_regexp=^\\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\\s*$ +ipv4_ip_subnet_regexp=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)/(3[0-2]|[1-2][0-9]|[0-9])$ +ipv6_ip_subnet_regexp=^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))/(0|2|4|8|16|32|64|128)$ +ipv4_ip_range_regexp=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)-(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$ +ipv6_ip_range_regexp=^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))-((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))$ +ipv4_ip_regexp=^(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|[1-9])\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)\\.(0|1\\d{2}|2[0-4]\\d|25[0-5]|[1-9]\\d|\\d)$ +ipv6_ip_regexp=^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}))$ #\u91cd\u5b9a\u5411\u4e1a\u52a1\u81ea\u5b9a\u4e49\u57df\u76f8\u5173\u53c2\u6570 redirect_response_code_key=code redirect_url_key=url diff --git a/src/main/webapp/WEB-INF/views/cfg/whitelist/domainForm.jsp b/src/main/webapp/WEB-INF/views/cfg/whitelist/domainForm.jsp index 2bf21ec88..7f9608b95 100644 --- a/src/main/webapp/WEB-INF/views/cfg/whitelist/domainForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/whitelist/domainForm.jsp @@ -5,38 +5,6 @@ <spring:message code="domain_whitelist"></spring:message> diff --git a/src/main/webapp/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js b/src/main/webapp/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js index b86262ec1..c449b1ac8 100644 --- a/src/main/webapp/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js +++ b/src/main/webapp/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js @@ -202,6 +202,13 @@ jQuery.validator.addMethod("domainCheck",function(value, element) { //ip地址校验 jQuery.validator.addMethod("ipCheck",function(value, element) { + var ipv4_ip_subnet_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\/(3[0-2]|[1-2][0-9]|[0-9])$/; + var ipv6_ip_subnet_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))\/(0|2|4|8|16|32|64|128)$/; + var ipv4_ip_range_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)-(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/; + var ipv6_ip_range_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))$/; + var ipv4_ip_regexp=/^(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.(0|1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/; + var ipv6_ip_regexp=/^((::)|(([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:)|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}(:[0-9A-Fa-f]{1,4}){1,2})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){1,3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){1,4})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){1,5})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){1,6})|(:(:[0-9A-Fa-f]{1,4}){1,7})|(([0-9A-Fa-f]{1,4}:){6}(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|([0-9A-Fa-f]{1,4}:(:[0-9A-Fa-f]{1,4}){0,4}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3})|(:(:[0-9A-Fa-f]{1,4}){0,5}:(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])(\.(\d|[1-9]\d|1\d{2}|2[0-4]\d|25[0-5])){3}))$/; + if(value.length==0||value.trim().length==0){return true;} var typeInt=$(element).parents(".row").parent(".row").find("select[name$='ipType']").val(); var ipPattern=$(element).parents(".row").parent(".row").find("select[name$='ipPattern']").val(); @@ -239,42 +246,52 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { if(ipPattern){ if(ipPattern==1){//ip/掩码格式 if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5<=32))){ - return true; + if(ipv4_ip_subnet_regexp.test(value)){ + return true; + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipMask; + return false; + } }else if(RegExp.$5&&RegExp.$5>32){ $.validator.messages.ipCheck=$.validator.messages.ipMaskRange; return false; }else{ $.validator.messages.ipCheck=$.validator.messages.ipMask; + return false; } }else if(ipPattern==2){//ip range //A类 0.0.0.0-127.255.255.255 默认掩码255.0.0.0 //B类128.0.0.0-191.255.255.255 默认掩码255.255.0.0 //C类192.0.0.0-223.255.255.255 默认掩码255.255.255.0 - if(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\-(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value)&&(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5 <256 && RegExp.$6<256 && RegExp.$7<256 && RegExp.$8<256)){ - var startPart0= RegExp.$1; - var startPart1= RegExp.$5; - if((startPart0<128&&startPart1<128)||(startPart0>127&&startPart1>127&&startPart0<192&&startPart1<192) - ||(startPart0>191&&startPart1>191&&startPart0<224&&startPart1<224) - ||(startPart0>223&&startPart1>223&&startPart0<240&&startPart1<240) - ||(startPart0>239&&startPart1>239&&startPart0<256&&startPart1<256)){ + if(ipv4_ip_range_regexp.test(value)){ + if(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\-(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value)&&(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5 <256 && RegExp.$6<256 && RegExp.$7<256 && RegExp.$8<256)){ + var startPart0= RegExp.$1; + var startPart1= RegExp.$5; + if((startPart0<128&&startPart1<128)||(startPart0>127&&startPart1>127&&startPart0<192&&startPart1<192) + ||(startPart0>191&&startPart1>191&&startPart0<224&&startPart1<224) + ||(startPart0>223&&startPart1>223&&startPart0<240&&startPart1<240) + ||(startPart0>239&&startPart1>239&&startPart0<256&&startPart1<256)){ + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipRange; + return false; + } + var startIp=value.split("-")[0]; + var endIp=value.split("-")[1]; + if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小 + return true; + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipRange1; + return false; + } }else{ - $.validator.messages.ipCheck=$.validator.messages.ipRange; return false; } - var startIp=value.split("-")[0]; - var endIp=value.split("-")[1]; - if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小 - return true; - }else{ - $.validator.messages.ipCheck=$.validator.messages.ipRange1; - return false; - } - }else{ + $.validator.messages.ipCheck=$.validator.messages.ipRange; return false; } }else if(ipPattern==3){//ip格式 - if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256))){ + if(this.optional(element)||ipv4_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; @@ -282,7 +299,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } } }else{//兼容原来的验证 - if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256))){ + if(this.optional(element)||ipv4_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; @@ -291,7 +308,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } }else if(typeInt==6){ if(ipPattern==1){//ip/掩码格式 - if(this.optional(element)||(/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*\/(0|2|4|8|16|32|64|128)$/.test(value))){ + if(this.optional(element)||ipv6_ip_subnet_regexp.test(value)){ return true; }else if(value.indexOf("/")==-1){ $.validator.messages.ipCheck=$.validator.messages.ipMask; @@ -302,7 +319,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { $.validator.messages.ipCheck=$.validator.messages.ipMask; return false; }else{ - if(!/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/.test(ipMaskArr[0])){ + if(!ipv6_ip_regexp.test(ipMaskArr[0])){ $.validator.messages.ipCheck=$.validator.messages.ipPart; return false; }else if(!/^(0|2|4|8|16|32|64|128)$/.test(ipMaskArr[1])){ @@ -316,9 +333,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } }else if(ipPattern==2){//ip range $.validator.messages.ipCheck=$.validator.messages.ipRange; - var _exp="\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*"; - var exp=new RegExp("^"+_exp+"-"+_exp+"$",""); - if(exp.test(value)){ + if(ipv6_ip_range_regexp.test(value)){ var ipArr=value.split("-"); var startIp=fillIp(ipArr[0]); var endIp=fillIp(ipArr[1]); @@ -330,14 +345,14 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } return false; }else if(ipPattern==3){//ip格式 - if(this.optional(element)||/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/.test(value)){ + if(this.optional(element)||ipv6_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; return false; } }else{//兼容原来的验证 - if(this.optional(element)||/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))(%.+)?\s*$/.test(value)){ + if(this.optional(element)||ipv6_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; @@ -350,7 +365,12 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { console.log("client ip must ipv4"); if(ipPattern==1){//ip/掩码格式 if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5<=32))){ - return true; + if(ipv4_ip_subnet_regexp.test(value)){ + return true; + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipMask; + return false; + } }else if(RegExp.$5&&RegExp.$5>32){ $.validator.messages.ipCheck=$.validator.messages.ipMaskRange; return false; @@ -362,32 +382,37 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { //A类 0.0.0.0-127.255.255.255 默认掩码255.0.0.0 //B类128.0.0.0-191.255.255.255 默认掩码255.255.0.0 //C类192.0.0.0-223.255.255.255 默认掩码255.255.255.0 - if(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\-(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value)&&(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5 <256 && RegExp.$6<256 && RegExp.$7<256 && RegExp.$8<256)){ - var startPart0= RegExp.$1; - var startPart1= RegExp.$5; - if((startPart0<128&&startPart1<128)||(startPart0>127&&startPart1>127&&startPart0<192&&startPart1<192) - ||(startPart0>191&&startPart1>191&&startPart0<224&&startPart1<224) - ||(startPart0>223&&startPart1>223&&startPart0<240&&startPart1<240) - ||(startPart0>239&&startPart1>239&&startPart0<256&&startPart1<256)){ + if(ipv4_ip_range_regexp.test(value)){ + if(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\-(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value)&&(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5 <256 && RegExp.$6<256 && RegExp.$7<256 && RegExp.$8<256)){ + var startPart0= RegExp.$1; + var startPart1= RegExp.$5; + if((startPart0<128&&startPart1<128)||(startPart0>127&&startPart1>127&&startPart0<192&&startPart1<192) + ||(startPart0>191&&startPart1>191&&startPart0<224&&startPart1<224) + ||(startPart0>223&&startPart1>223&&startPart0<240&&startPart1<240) + ||(startPart0>239&&startPart1>239&&startPart0<256&&startPart1<256)){ + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipRange; + return false; + } + var startIp=value.split("-")[0]; + var endIp=value.split("-")[1]; + if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小 + return true; + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipRange1; + return false; + } + }else{ - $.validator.messages.ipCheck=$.validator.messages.ipRange; + $.validator.messages.ipCheck=$.validator.messages.ip; return false; } - var startIp=value.split("-")[0]; - var endIp=value.split("-")[1]; - if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小 - return true; - }else{ - $.validator.messages.ipCheck=$.validator.messages.ipRange1; - return false; - } - }else{ - $.validator.messages.ipCheck=$.validator.messages.ip; + $.validator.messages.ipCheck=$.validator.messages.ipRange; return false; } }else if(ipPattern==3){//ip - if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256))){ + if(this.optional(element)||ipv4_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; @@ -397,7 +422,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { }else if(name.indexOf("destIpAddress")>-1){ console.log("server ip must ipv6"); if(ipPattern==1){//ip/掩码格式 - if(this.optional(element)||(/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*\/(0|2|4|8|16|32|64|128)$/.test(value))){ + if(this.optional(element)||ipv6_ip_subnet_regexp.test(value)){ return true; }else if(value.indexOf("/")==-1){ $.validator.messages.ipCheck=$.validator.messages.ipMask; @@ -408,7 +433,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { $.validator.messages.ipCheck=$.validator.messages.ipMask; return false; }else{ - if(!/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/.test(ipMaskArr[0])){ + if(!ipv6_ip_regexp.test(ipMaskArr[0])){ $.validator.messages.ipCheck=$.validator.messages.ipPart; return false; }else if(!/^(0|2|4|8|16|32|64|128)$/.test(ipMaskArr[1])){ @@ -422,9 +447,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } }else if(ipPattern==2){//ip range $.validator.messages.ipCheck=$.validator.messages.ipRange; - var _exp="\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*"; - var exp=new RegExp("^"+_exp+"-"+_exp+"$",""); - if(exp.test(value)){ + if(ipv6_ip_range_regexp.test(value)){ var ipArr=value.split("-"); var startIp=fillIp(ipArr[0]); var endIp=fillIp(ipArr[1]); @@ -436,14 +459,14 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } return false; }else if(ipPattern==3){//ip格式 - if(this.optional(element)||/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/.test(value)){ + if(this.optional(element)||ipv6_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; return false; } }else{//兼容原来的验证 - if(this.optional(element)||/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))(%.+)?\s*$/.test(value)){ + if(this.optional(element)||ipv6_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; @@ -456,7 +479,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { if(name.indexOf("srcIpAddress")>-1){ console.log("client ip must ipv6"); if(ipPattern==1){//ip/掩码格式 - if(this.optional(element)||(/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*\/(0|2|4|8|16|32|64|128)$/.test(value))){ + if(this.optional(element)||ipv6_ip_subnet_regexp.test(value)){ return true; }else if(value.indexOf("/")==-1){ $.validator.messages.ipCheck=$.validator.messages.ipMask; @@ -467,7 +490,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { $.validator.messages.ipCheck=$.validator.messages.ipMask; return false; }else{ - if(!/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/.test(ipMaskArr[0])){ + if(!ipv6_ip_regexp.test(ipMaskArr[0])){ $.validator.messages.ipCheck=$.validator.messages.ipPart; return false; }else if(!/^(0|2|4|8|16|32|64|128)$/.test(ipMaskArr[1])){ @@ -481,9 +504,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } }else if(ipPattern==2){//ip range $.validator.messages.ipCheck=$.validator.messages.ipRange; - var _exp="\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*"; - var exp=new RegExp("^"+_exp+"-"+_exp+"$",""); - if(exp.test(value)){ + if(ipv6_ip_range_regexp.test(value)){ var ipArr=value.split("-"); var startIp=fillIp(ipArr[0]); var endIp=fillIp(ipArr[1]); @@ -495,14 +516,14 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } return false; }else if(ipPattern==3){//ip格式 - if(this.optional(element)||/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:)|((:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/.test(value)){ + if(this.optional(element)||ipv6_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; return false; } }else{//兼容原来的验证 - if(this.optional(element)||/^\s*((([0-9A-Fa-f]{1,4}:){7}(([0-9A-Fa-f]{1,4})|:))|(([0-9A-Fa-f]{1,4}:){6}(:|((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})|(:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}:){5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){4}(:[0-9A-Fa-f]{1,4}){0,1}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){3}(:[0-9A-Fa-f]{1,4}){0,2}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:){2}(:[0-9A-Fa-f]{1,4}){0,3}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}:)(:[0-9A-Fa-f]{1,4}){0,4}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(:(:[0-9A-Fa-f]{1,4}){0,5}((:((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})?)|((:[0-9A-Fa-f]{1,4}){1,2})))|(((25[0-5]|2[0-4]\d|[01]?\d{1,2})(\.(25[0-5]|2[0-4]\d|[01]?\d{1,2})){3})))(%.+)?\s*$/.test(value)){ + if(this.optional(element)||ipv6_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; @@ -513,7 +534,12 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { console.log("server ip must ipv4"); if(ipPattern==1){//ip/掩码格式 if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\/(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5<=32))){ - return true; + if(ipv4_ip_subnet_regexp.test(value)){ + return true; + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipMask; + return false; + } }else if(RegExp.$5&&RegExp.$5>32){ $.validator.messages.ipCheck=$.validator.messages.ipMaskRange; return false; @@ -525,32 +551,37 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { //A类 0.0.0.0-127.255.255.255 默认掩码255.0.0.0 //B类128.0.0.0-191.255.255.255 默认掩码255.255.0.0 //C类192.0.0.0-223.255.255.255 默认掩码255.255.255.0 - if(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\-(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value)&&(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5 <256 && RegExp.$6<256 && RegExp.$7<256 && RegExp.$8<256)){ - var startPart0= RegExp.$1; - var startPart1= RegExp.$5; - if((startPart0<128&&startPart1<128)||(startPart0>127&&startPart1>127&&startPart0<192&&startPart1<192) - ||(startPart0>191&&startPart1>191&&startPart0<224&&startPart1<224) - ||(startPart0>223&&startPart1>223&&startPart0<240&&startPart1<240) - ||(startPart0>239&&startPart1>239&&startPart0<256&&startPart1<256)){ + if(ipv4_ip_range_regexp.test(value)){ + if(/^(\d+)\.(\d+)\.(\d+)\.(\d+)\-(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value)&&(RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256 && RegExp.$5 <256 && RegExp.$6<256 && RegExp.$7<256 && RegExp.$8<256)){ + var startPart0= RegExp.$1; + var startPart1= RegExp.$5; + if((startPart0<128&&startPart1<128)||(startPart0>127&&startPart1>127&&startPart0<192&&startPart1<192) + ||(startPart0>191&&startPart1>191&&startPart0<224&&startPart1<224) + ||(startPart0>223&&startPart1>223&&startPart0<240&&startPart1<240) + ||(startPart0>239&&startPart1>239&&startPart0<256&&startPart1<256)){ + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipRange; + return false; + } + var startIp=value.split("-")[0]; + var endIp=value.split("-")[1]; + if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小 + return true; + }else{ + $.validator.messages.ipCheck=$.validator.messages.ipRange1; + return false; + } + }else{ - $.validator.messages.ipCheck=$.validator.messages.ipRange; + $.validator.messages.ipCheck=$.validator.messages.ip; return false; } - var startIp=value.split("-")[0]; - var endIp=value.split("-")[1]; - if(ipToNumber(startIp)<=ipToNumber(endIp)){//比较IP大小 - return true; - }else{ - $.validator.messages.ipCheck=$.validator.messages.ipRange1; - return false; - } - }else{ - $.validator.messages.ipCheck=$.validator.messages.ip; + $.validator.messages.ipCheck=$.validator.messages.ipRange; return false; } }else if(ipPattern==3){//ip - if(this.optional(element)||(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/.test(value) && (RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256))){ + if(this.optional(element)||ipv4_ip_regexp.test(value)){ return true; }else{ $.validator.messages.ipCheck=$.validator.messages.ip; @@ -558,13 +589,7 @@ jQuery.validator.addMethod("ipCheck",function(value, element) { } } } - }else if(typeInt==10){ - var ipv4_ip_subnet_regexp=/^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\/(3[0-2]|[1-2][0-9]|[0-9])$/; - var ipv6_ip_subnet_regexp=/^\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*\/(0|2|4|8|16|32|64|128)$/; - var ipv4_ip_range_regexp=/^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}-(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$/; - var ipv6_ip_range_regexp=/^\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*-\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/; - var ipv4_ip_regexp=/^(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}$/; - var ipv6_ip_regexp=/^\s*((([0-9A-Fa-f]{1,4}\:){7}(([0-9A-Fa-f]{1,4})|\:))|(([0-9A-Fa-f]{1,4}\:){6}(\:|(\:[0-9A-Fa-f]{1,4})))|(([0-9A-Fa-f]{1,4}\:){5}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){4}(\:[0-9A-Fa-f]{1,4}){0,1}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){3}(\:[0-9A-Fa-f]{1,4}){0,2}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:){2}(\:[0-9A-Fa-f]{1,4}){0,3}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(([0-9A-Fa-f]{1,4}\:)(\:[0-9A-Fa-f]{1,4}){0,4}((\:?)|((\:[0-9A-Fa-f]{1,4}){1,2})))|(\:(\:[0-9A-Fa-f]{1,4}){0,5}((\:)|((\:[0-9A-Fa-f]{1,4}){1,2}))))(%.+)?\s*$/; + }else if(typeInt==10){ if(ipPattern){ if(ipPattern==1){//ip/掩码格式 if(ipv4_ip_subnet_regexp.test(value)){ From 2e0f5158cbe6f543de4a9523f613a5046f77dfb3 Mon Sep 17 00:00:00 2001 From: wangxin Date: Wed, 22 Aug 2018 11:23:55 +0800 Subject: [PATCH 02/16] =?UTF-8?q?=E5=BC=95=E7=94=A8=E7=89=B9=E5=AE=9A?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=A0=91=E7=9A=84=E9=A1=B5=E9=9D=A2=E4=BF=9D?= =?UTF-8?q?=E6=8C=81=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/views/cfg/app/appByteCfgList.jsp | 2 +- src/main/webapp/WEB-INF/views/cfg/app/appDomainCfgList.jsp | 2 +- src/main/webapp/WEB-INF/views/cfg/app/appHeaderCfgList.jsp | 2 +- src/main/webapp/WEB-INF/views/cfg/app/appHttpCfgList.jsp | 2 +- src/main/webapp/WEB-INF/views/cfg/app/appIpCfgList.jsp | 2 +- src/main/webapp/WEB-INF/views/cfg/app/appPolicyCfgList.jsp | 2 +- src/main/webapp/WEB-INF/views/cfg/basicprotocol/list.jsp | 2 +- src/main/webapp/WEB-INF/views/cfg/encryptedtunnelbehav/list.jsp | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appByteCfgList.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appByteCfgList.jsp index b17891c44..9842afed5 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appByteCfgList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appByteCfgList.jsp @@ -87,7 +87,7 @@
- - - - - - - - Date: Wed, 22 Aug 2018 11:25:27 +0800 Subject: [PATCH 03/16] =?UTF-8?q?app=20ssl=E6=90=9C=E7=B4=A2=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E7=89=B9=E5=AE=9A=E6=9C=8D=E5=8A=A1=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=A4=84=E4=BF=9D=E6=8C=81=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/views/cfg/app/appSslCfgList.jsp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appSslCfgList.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appSslCfgList.jsp index 797a63382..88b3752c7 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appSslCfgList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appSslCfgList.jsp @@ -87,7 +87,7 @@
- Date: Wed, 22 Aug 2018 12:51:58 +0800 Subject: [PATCH 04/16] =?UTF-8?q?APP=E7=89=B9=E5=BE=81doLog=20cfgId?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nis/web/dao/configuration/AppCfgDao.xml | 64 ++++++++++++++----- .../WEB-INF/views/cfg/app/appByteCfgForm.jsp | 22 ++++++- .../WEB-INF/views/cfg/app/appByteCfgList.jsp | 16 ++++- .../views/cfg/app/appDomainCfgForm.jsp | 22 ++++++- .../views/cfg/app/appDomainCfgList.jsp | 15 ++++- .../views/cfg/app/appHeaderCfgList.jsp | 9 ++- .../WEB-INF/views/cfg/app/appHttpCfgForm.jsp | 22 ++++++- .../WEB-INF/views/cfg/app/appHttpCfgList.jsp | 15 ++++- .../WEB-INF/views/cfg/app/appIpCfgForm.jsp | 22 +++++++ .../WEB-INF/views/cfg/app/appIpCfgList.jsp | 17 ++++- .../WEB-INF/views/cfg/app/appSslCfgList.jsp | 10 ++- 11 files changed, 202 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/nis/web/dao/configuration/AppCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/AppCfgDao.xml index 79976960e..46627a937 100644 --- a/src/main/java/com/nis/web/dao/configuration/AppCfgDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/AppCfgDao.xml @@ -71,6 +71,7 @@ + @@ -103,6 +104,7 @@ + @@ -133,6 +135,7 @@ + @@ -163,6 +166,7 @@ + @@ -309,7 +313,7 @@ r.SERVICE_ID,r.REQUEST_ID,r.COMPILE_ID,r.IS_AREA_EFFECTIVE,r.CLASSIFY, r.ATTRIBUTE,r.LABLE,AREA_EFFECTIVE_IDS,r.RATELIMIT,r.FUNCTION_ID,r.CFG_TYPE,r.CFG_REGION_CODE, r.IP_TYPE, r.IP_PATTERN, r.SRC_IP_ADDRESS,r.DEST_IP_ADDRESS, r.PORT_PATTERN,r.SRC_PORT,DEST_PORT, - r.DIRECTION,r.PROTOCOL + r.DIRECTION,r.PROTOCOL,r.DO_LOG @@ -317,7 +321,7 @@ r.CREATOR_ID,r.CREATE_TIME,r.EDITOR_ID,r.EDIT_TIME,r.AUDITOR_ID,r.AUDIT_TIME, r.SERVICE_ID,r.REQUEST_ID,r.COMPILE_ID,r.IS_AREA_EFFECTIVE,r.CLASSIFY, r.ATTRIBUTE,r.LABLE,r.AREA_EFFECTIVE_IDS,r.RATELIMIT,r.FUNCTION_ID,r.CFG_TYPE,r.CFG_REGION_CODE, - r.DISTRICT,r.CFG_KEYWORDS,r.EXPR_TYPE,r.MATCH_METHOD,r.IS_HEXBIN + r.DISTRICT,r.CFG_KEYWORDS,r.EXPR_TYPE,r.MATCH_METHOD,r.IS_HEXBIN,r.DO_LOG @@ -325,7 +329,7 @@ r.CREATOR_ID,r.CREATE_TIME,r.EDITOR_ID,r.EDIT_TIME,r.AUDITOR_ID,r.AUDIT_TIME, r.SERVICE_ID,r.REQUEST_ID,r.COMPILE_ID,r.IS_AREA_EFFECTIVE,r.CLASSIFY, r.ATTRIBUTE,r.LABLE,r.AREA_EFFECTIVE_IDS,r.RATELIMIT,r.FUNCTION_ID,r.CFG_TYPE,r.CFG_REGION_CODE, - r.DOMAIN,r.EXPR_TYPE,r.MATCH_METHOD,r.IS_HEXBIN + r.DOMAIN,r.EXPR_TYPE,r.MATCH_METHOD,r.IS_HEXBIN,r.DO_LOG @@ -333,7 +337,7 @@ r.CREATOR_ID,r.CREATE_TIME,r.EDITOR_ID,r.EDIT_TIME,r.AUDITOR_ID,r.AUDIT_TIME, r.SERVICE_ID,r.REQUEST_ID,r.COMPILE_ID,r.IS_AREA_EFFECTIVE,r.CLASSIFY, r.ATTRIBUTE,r.LABLE,r.AREA_EFFECTIVE_IDS,r.RATELIMIT,r.FUNCTION_ID,r.CFG_TYPE,r.CFG_REGION_CODE, - r.BYTES,r.EXPR_TYPE,r.MATCH_METHOD,r.IS_HEXBIN + r.BYTES,r.EXPR_TYPE,r.MATCH_METHOD,r.IS_HEXBIN,r.DO_LOG @@ -615,6 +619,9 @@ AND r.CFG_ID=#{cfgId,jdbcType=BIGINT} + + + AND r.compile_id=#{compileId,jdbcType=BIGINT} AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%') @@ -737,6 +744,9 @@ AND r.CFG_ID=#{cfgId,jdbcType=BIGINT} + + + AND r.compile_id=#{compileId,jdbcType=BIGINT} AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%') @@ -837,6 +847,9 @@ AND r.CFG_ID=#{cfgId,jdbcType=BIGINT} + + + AND r.compile_id=#{compileId,jdbcType=BIGINT} AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%') @@ -934,6 +947,9 @@ AND r.CFG_ID=#{cfgId,jdbcType=BIGINT} + + + AND r.compile_id=#{compileId,jdbcType=BIGINT} AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%') @@ -1124,6 +1140,9 @@ AND r.CFG_ID=#{cfgId,jdbcType=BIGINT} + + + AND r.compile_id=#{compileId,jdbcType=INTEGER} AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%') @@ -1225,6 +1244,9 @@ AND r.CFG_ID=#{cfgId,jdbcType=BIGINT} + + + AND r.compile_id=#{compileId,jdbcType=BIGINT} AND r.CFG_DESC like concat(concat('%',#{cfgDesc,jdbcType=VARCHAR}),'%') @@ -1336,12 +1358,12 @@ SERVICE_ID,REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,CLASSIFY, ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,RATELIMIT,FUNCTION_ID,CFG_TYPE,CFG_REGION_CODE, IP_TYPE, IP_PATTERN, SRC_IP_ADDRESS,DEST_IP_ADDRESS, PORT_PATTERN,SRC_PORT,DEST_PORT, - DIRECTION,PROTOCOL + DIRECTION,PROTOCOL,DO_LOG )values ( , #{ipType,jdbcType=INTEGER}, #{ipPattern,jdbcType=INTEGER},#{srcIpAddress,jdbcType=VARCHAR},#{destIpAddress,jdbcType=VARCHAR}, #{portPattern,jdbcType=INTEGER},#{srcPort,jdbcType=VARCHAR},#{destPort,jdbcType=VARCHAR},#{direction,jdbcType=INTEGER}, - #{protocol,jdbcType=INTEGER} + #{protocol,jdbcType=INTEGER},#{doLog,jdbcType=INTEGER} ) @@ -1353,11 +1375,11 @@ CREATOR_ID,CREATE_TIME,EDITOR_ID,EDIT_TIME,AUDITOR_ID,AUDIT_TIME, SERVICE_ID,REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,CLASSIFY, ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,RATELIMIT,FUNCTION_ID,CFG_TYPE,CFG_REGION_CODE, - DISTRICT,CFG_KEYWORDS,EXPR_TYPE,MATCH_METHOD,IS_HEXBIN + DISTRICT,CFG_KEYWORDS,EXPR_TYPE,MATCH_METHOD,IS_HEXBIN,DO_LOG )values ( , - #{district,jdbcType=VARCHAR},#{cfgKeywords,jdbcType=VARCHAR}, - #{exprType,jdbcType=INTEGER},#{matchMethod,jdbcType=INTEGER},#{isHexbin,jdbcType=INTEGER} + #{district,jdbcType=VARCHAR},#{cfgKeywords,jdbcType=VARCHAR},#{exprType,jdbcType=INTEGER}, + #{matchMethod,jdbcType=INTEGER},#{isHexbin,jdbcType=INTEGER},#{doLog,jdbcType=INTEGER} ) @@ -1369,11 +1391,11 @@ CREATOR_ID,CREATE_TIME,EDITOR_ID,EDIT_TIME,AUDITOR_ID,AUDIT_TIME, SERVICE_ID,REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,CLASSIFY, ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,RATELIMIT,FUNCTION_ID,CFG_TYPE,CFG_REGION_CODE, - DOMAIN,EXPR_TYPE,MATCH_METHOD,IS_HEXBIN + DOMAIN,EXPR_TYPE,MATCH_METHOD,IS_HEXBIN,DO_LOG )values ( , - #{domain,jdbcType=VARCHAR}, - #{exprType,jdbcType=INTEGER},#{matchMethod,jdbcType=INTEGER},#{isHexbin,jdbcType=INTEGER} + #{domain,jdbcType=VARCHAR},#{exprType,jdbcType=INTEGER},#{matchMethod,jdbcType=INTEGER}, + #{isHexbin,jdbcType=INTEGER},#{doLog,jdbcType=INTEGER} ) @@ -1385,11 +1407,11 @@ CREATOR_ID,CREATE_TIME,EDITOR_ID,EDIT_TIME,AUDITOR_ID,AUDIT_TIME, SERVICE_ID,REQUEST_ID,COMPILE_ID,IS_AREA_EFFECTIVE,CLASSIFY, ATTRIBUTE,LABLE,AREA_EFFECTIVE_IDS,RATELIMIT,FUNCTION_ID,CFG_TYPE,CFG_REGION_CODE, - BYTES,EXPR_TYPE,MATCH_METHOD,IS_HEXBIN + BYTES,EXPR_TYPE,MATCH_METHOD,IS_HEXBIN,DO_LOG )values ( , - #{bytes,jdbcType=VARCHAR}, - #{exprType,jdbcType=INTEGER},#{matchMethod,jdbcType=INTEGER},#{isHexbin,jdbcType=INTEGER} + #{bytes,jdbcType=VARCHAR},#{exprType,jdbcType=INTEGER},#{matchMethod,jdbcType=INTEGER}, + #{isHexbin,jdbcType=INTEGER},#{doLog,jdbcType=INTEGER} ) @@ -1718,6 +1740,9 @@ protocol = #{protocol,jdbcType=INTEGER}, + + do_log = #{doLog,jdbcType=INTEGER}, + where cfg_id = #{cfgId,jdbcType=BIGINT} @@ -1816,6 +1841,9 @@ is_hexbin=#{isHexbin,jdbcType=INTEGER}, + + do_log=#{doLog,jdbcType=INTEGER}, + where cfg_id = #{cfgId,jdbcType=BIGINT} @@ -1911,6 +1939,9 @@ is_hexbin=#{isHexbin,jdbcType=INTEGER}, + + do_log=#{doLog,jdbcType=INTEGER}, + where cfg_id = #{cfgId,jdbcType=BIGINT} @@ -2006,6 +2037,9 @@ is_hexbin=#{isHexbin,jdbcType=INTEGER}, + + do_log=#{doLog,jdbcType=INTEGER}, + where cfg_id = #{cfgId,jdbcType=BIGINT} diff --git a/src/main/webapp/WEB-INF/views/cfg/app/appByteCfgForm.jsp b/src/main/webapp/WEB-INF/views/cfg/app/appByteCfgForm.jsp index c5edb169d..ba4b15b64 100644 --- a/src/main/webapp/WEB-INF/views/cfg/app/appByteCfgForm.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/app/appByteCfgForm.jsp @@ -5,9 +5,6 @@ <spring:message code="${cfgName}"></spring:message> @@ -48,15 +49,24 @@
- + + - --%> - + + + + + + + + + > From f71a4381c9dd1ce8d4562f0c4fece5b4313c6025 Mon Sep 17 00:00:00 2001 From: leijun Date: Wed, 22 Aug 2018 14:39:33 +0800 Subject: [PATCH 06/16] =?UTF-8?q?p2p=20=E6=97=A5=E5=BF=97=E5=8F=AA?= =?UTF-8?q?=E6=9C=89=E4=B8=80=E4=B8=AAaction=E6=97=B6=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=A3=80=E7=B4=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/webapp/WEB-INF/views/log/ntc/p2pList.jsp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/webapp/WEB-INF/views/log/ntc/p2pList.jsp b/src/main/webapp/WEB-INF/views/log/ntc/p2pList.jsp index e0f976368..f10b0204d 100644 --- a/src/main/webapp/WEB-INF/views/log/ntc/p2pList.jsp +++ b/src/main/webapp/WEB-INF/views/log/ntc/p2pList.jsp @@ -50,6 +50,7 @@
+ + + + + +
+ + + +
+ +
+
+ + +
+ +
+
+
+
@@ -219,6 +300,7 @@
+
@@ -248,7 +330,7 @@
- +
diff --git a/src/main/webapp/WEB-INF/views/specific/specificServiceCfgList.jsp b/src/main/webapp/WEB-INF/views/specific/specificServiceCfgList.jsp index 304fc1bef..ec8f6f129 100644 --- a/src/main/webapp/WEB-INF/views/specific/specificServiceCfgList.jsp +++ b/src/main/webapp/WEB-INF/views/specific/specificServiceCfgList.jsp @@ -213,32 +213,44 @@
- -
-
" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/>
-
-
-
" onclick="WdatePicker({dateFmt:'yyyy-MM-dd HH:mm:ss',isShowClear:true});"/> -
-
- +
+
+ + + + + + + + + + + + + + + + + + + +
+
- -
@@ -258,6 +270,7 @@ + @@ -272,6 +285,29 @@ <%-- ${specificServiceCfg.showSequence} --%> + + + + + + + + + + + + + + + + + + + + + + + <%----%>${specificServiceCfg.specServiceCode}<%----%> ${specificServiceCfg.specServiceName} ${fns:abbr(specificServiceCfg.specServiceDesc,15)} From 5932b68c84b723835fbcef20e72ae8facf8e55ff Mon Sep 17 00:00:00 2001 From: wangxin Date: Wed, 22 Aug 2018 20:16:04 +0800 Subject: [PATCH 15/16] =?UTF-8?q?=E7=94=B1=E4=BA=8E=E4=B8=9A=E5=8A=A1?= =?UTF-8?q?=E7=B1=BB=E5=88=AB=E4=BD=BF=E7=94=A8=E6=95=B0=E5=AD=97=E4=BC=9A?= =?UTF-8?q?=E4=B8=8Eapp=E4=BB=A5=E5=8F=8A=E5=9F=BA=E7=A1=80=E5=8D=8F?= =?UTF-8?q?=E8=AE=AE=E9=87=8D=E5=A4=8D=E6=97=A9=E6=99=A8=E6=A0=91=E5=B1=82?= =?UTF-8?q?=E7=BA=A7=E6=B7=B7=E4=B9=B1=EF=BC=8C=E4=BF=AE=E6=94=B9=E4=BA=86?= =?UTF-8?q?=E5=B1=82=E7=BA=A7ID=E4=B8=BA=E5=AD=97=E7=AC=A6=E4=B8=B2busines?= =?UTF-8?q?sType+=E6=95=B0=E5=AD=97code?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../specific/SpecificServiceCfgController.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/nis/web/controller/specific/SpecificServiceCfgController.java b/src/main/java/com/nis/web/controller/specific/SpecificServiceCfgController.java index 5c3d29c69..4ed712975 100644 --- a/src/main/java/com/nis/web/controller/specific/SpecificServiceCfgController.java +++ b/src/main/java/com/nis/web/controller/specific/SpecificServiceCfgController.java @@ -216,11 +216,11 @@ public class SpecificServiceCfgController extends BaseController { List> businessList = Lists.newArrayList(); for(SysDataDictionaryItem dict:businessTypeList) { Map map = Maps.newHashMap(); - map.put("id", dict.getItemCode()); + map.put("id", "businessType"+dict.getItemCode()); map.put("pId", 0); map.put("name",props.getProperty(dict.getItemValue(), dict.getItemValue())); map.put("serviceType",cfgType); - map.put("businessType",-1); + map.put("businessType","-1"); map.put("nodes", new ArrayList>()); businessList.add(map); } @@ -234,12 +234,12 @@ public class SpecificServiceCfgController extends BaseController { (cfgType.intValue()!=0&&specificServiceCfg.getCfgType().intValue()!=cfgType)){ continue; } - if(businessList.size()>0) { - for(Map business:businessList) { - if(String.valueOf(business.get("id")).equals(specificServiceCfg.getBusinessType())) { + if(businessTypeList.size()>0) { + for(SysDataDictionaryItem business:businessTypeList) { + if(String.valueOf(business.getItemCode()).equals(specificServiceCfg.getBusinessType())) { Map map = Maps.newHashMap(); map.put("id", specificServiceCfg.getSpecServiceId()); - map.put("pId", business.get("id")); + map.put("pId", "businessType"+business.getItemCode()); map.put("name",specificServiceCfg.getSpecServiceName()); map.put("serviceType",specificServiceCfg.getCfgType()); map.put("businessType",specificServiceCfg.getBusinessType()); From 8884972507f7a468468012c322e8aa653cc66825 Mon Sep 17 00:00:00 2001 From: zhanghongqing Date: Wed, 22 Aug 2018 22:42:12 +0800 Subject: [PATCH 16/16] =?UTF-8?q?1.ftp=E5=A2=9E=E5=8A=A0doLog2.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0subscribeId3.=E5=A2=9E=E5=8A=A0compileId=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BasicProtocolController.java | 6 +- .../ntc/AvContentController.java | 12 ++-- .../ntc/FileTransferCfgController.java | 66 ++++++++++++++--- .../dao/configuration/FileTransferCfgDao.xml | 16 +++++ .../service/configuration/AppCfgService.java | 18 ++--- .../configuration/FileTransferCfgService.java | 58 +++++++++++++++ .../views/cfg/fileTransfer/ftpForm.jsp | 71 ++++++++++++++++++- .../views/cfg/fileTransfer/ftpList.jsp | 17 +++++ .../views/cfg/fileTransfer/ftpSubList.jsp | 53 ++++++++++++++ 9 files changed, 285 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java b/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java index bcf995c4c..246898de5 100644 --- a/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java +++ b/src/main/java/com/nis/web/controller/configuration/BasicProtocolController.java @@ -132,7 +132,7 @@ public class BasicProtocolController extends BaseController { logger.error("基础协议信息保存失败",e); if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) { // addMessage(redirectAttributes,e.getMessage()); - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { addMessage(redirectAttributes,"save_failed"); } @@ -169,7 +169,7 @@ public class BasicProtocolController extends BaseController { if(e instanceof MaatConvertException) { e.printStackTrace(); logger.info("app策略配置下发失败:"+e.getMessage());; - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { e.printStackTrace(); logger.error("app策略配置下发失败",e); @@ -197,7 +197,7 @@ public class BasicProtocolController extends BaseController { logger.error("基础协议信息保存失败",e); if(e instanceof MaatConvertException||e instanceof CallExternalProceduresException) { e.printStackTrace(); - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { e.printStackTrace(); addMessage(redirectAttributes,"delete_failed"); diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java index c1f4dc0ac..d4bf62a8b 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/AvContentController.java @@ -97,7 +97,7 @@ public class AvContentController extends BaseController { if(e instanceof MaatConvertException) { e.printStackTrace(); logger.error("voip IP信息保存失败",e); - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { e.printStackTrace(); logger.error("voip IP信息保存失败",e); @@ -117,7 +117,7 @@ public class AvContentController extends BaseController { if(e instanceof MaatConvertException) { e.printStackTrace(); logger.error("voip Account信息保存失败",e); - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { e.printStackTrace(); logger.error("voip Account信息保存失败",e); @@ -175,7 +175,7 @@ public class AvContentController extends BaseController { if(e instanceof MaatConvertException) { e.printStackTrace(); logger.error("voip IP信息审核失败",e); - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { e.printStackTrace(); logger.error("voip IP信息审核失败",e); @@ -196,7 +196,7 @@ public class AvContentController extends BaseController { if(e instanceof MaatConvertException) { e.printStackTrace(); logger.error("voip Account信息审核失败",e); - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { e.printStackTrace(); logger.error("voip Account信息审核失败",e); @@ -221,7 +221,7 @@ public class AvContentController extends BaseController { if(e instanceof MaatConvertException) { e.printStackTrace(); logger.info("VOIP配置下发失败:"+e.getMessage());; - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { e.printStackTrace(); logger.error("VOIP配置下发失败",e); @@ -250,7 +250,7 @@ public class AvContentController extends BaseController { if(e instanceof MaatConvertException) { e.printStackTrace(); logger.info("VOIPAccount配置下发失败:"+e.getMessage());; - throw new MaatConvertException(""); + addMessage(redirectAttributes,"request_service_failed"); }else { e.printStackTrace(); logger.error("VOIPAccount配置下发失败",e); diff --git a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java index 5576b03d5..09480a13f 100644 --- a/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java +++ b/src/main/java/com/nis/web/controller/configuration/ntc/FileTransferCfgController.java @@ -61,7 +61,7 @@ public class FileTransferCfgController extends BaseController{ } @RequestMapping(value = {"ftpForm"}) @RequiresPermissions(value={"fileTransfer:ftp:config"}) - public String ftpForm(Model model,String ids,CfgIndexInfo entity) { + public String ftpForm(Model model,String compileIds,String ids,CfgIndexInfo entity) { if(StringUtils.isNotBlank(ids)){ entity = fileTransferCfgService.getFtpCfg(Long.parseLong(ids)); initUpdateFormCondition(model,entity); @@ -74,8 +74,21 @@ public class FileTransferCfgController extends BaseController{ @RequestMapping(value = {"saveFtpCfg"}) @RequiresPermissions(value={"fileTransfer:ftp:config"}) public String saveFtpCfg(Model model,HttpServletRequest request,HttpServletResponse response,String ids, - CfgIndexInfo entity) { - fileTransferCfgService.saveFtpCfg(entity); + CfgIndexInfo entity,RedirectAttributes redirectAttributes) { + try { + fileTransferCfgService.saveFtpCfg(entity); + addMessage(redirectAttributes,"save_success"); + } catch (Exception e) { + if(e instanceof MaatConvertException) { + e.printStackTrace(); + logger.error("ftp信息保存失败",e); + addMessage(redirectAttributes,"request_service_failed"); + }else { + e.printStackTrace(); + logger.error("ftp信息保存失败",e); + addMessage(redirectAttributes,"save_failed"); + } + } return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+entity.getFunctionId(); } @RequestMapping(value = {"ajaxFtpSubList"}) @@ -100,15 +113,45 @@ public class FileTransferCfgController extends BaseController{ } } } + //查询关键字 + if(cfg.getNtcSubscribeIdCfgList()!=null){ + String cfgType = null; + for(NtcSubscribeIdCfg ntc:cfg.getNtcSubscribeIdCfgList()){ + if(!ntc.getCfgType().equals(cfgType)){ + tabList.add(new String[]{"2",ntc.getCfgType()}); + cfgType = ntc.getCfgType(); + } + } + } model.addAttribute("_cfg", cfg); model.addAttribute("index", index); model.addAttribute("tabList", tabList); return "/cfg/fileTransfer/ftpSubList"; } + /** + * 做删除操作 + * @param isValid + * @param ids + * @param functionId + * @return + */ @RequestMapping(value = {"updateFtpCfgValid"}) @RequiresPermissions(value={"fileTransfer:ftp:config"}) - public String updateFtpCfgValid(Integer isValid,String ids,Integer functionId) { - fileTransferCfgService.updateFtpCfgValid(isValid,ids,functionId); + public String updateFtpCfgValid(Integer isValid,String ids,Integer functionId, RedirectAttributes redirectAttributes) { + try { + fileTransferCfgService.updateFtpCfgValid(isValid,ids,functionId); + addMessage(redirectAttributes,"delete_success"); + } catch (Exception e) { + if(e instanceof MaatConvertException) { + e.printStackTrace(); + logger.info("ftp配置删除失败:"+e.getMessage());; + addMessage(redirectAttributes,"request_service_failed"); + }else { + e.printStackTrace(); + logger.error("ftp配置删除失败",e); + addMessage(redirectAttributes,"delete_failed"); + } + } return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+functionId; } @RequestMapping(value = {"auditFtpCfg"}) @@ -125,10 +168,17 @@ public class FileTransferCfgController extends BaseController{ entity.setFunctionId(functionId); try { fileTransferCfgService.auditFtpCfg(entity,isAudit); + addMessage(redirectAttributes,"audit_success"); } catch (MaatConvertException e) { - e.printStackTrace(); - logger.info("ftp配置下发失败:"+e.getMessage()); - addMessage(redirectAttributes, e.getMessage()); + if(e instanceof MaatConvertException) { + e.printStackTrace(); + logger.info("ftp配置下发失败:"+e.getMessage());; + addMessage(redirectAttributes,"request_service_failed"); + }else { + e.printStackTrace(); + logger.error("ftp配置下发失败",e); + addMessage(redirectAttributes,"audit_failed"); + } } } return "redirect:" + adminPath +"/ntc/fileTransfer/ftpList?functionId="+functionId; diff --git a/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.xml b/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.xml index 0e68484fe..9ce69afec 100644 --- a/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.xml +++ b/src/main/java/com/nis/web/dao/configuration/FileTransferCfgDao.xml @@ -23,6 +23,7 @@ + @@ -260,6 +261,9 @@ AND a.function_id=#{functionId,jdbcType=INTEGER} + + AND a.do_log=#{doLog,jdbcType=INTEGER} + AND a.compile_id in (select t.compile_id from ip_port_cfg t @@ -279,6 +283,18 @@ ) + + AND r.compile_id in (select f.compile_id from ntc_subscribe_id_cfg f + + + and f.cfg_keywords like concat(concat('%',#{ntcSubscribeIdCfg.cfgKeywords,jdbcType=VARCHAR}),'%') + + + and f.compile_id =#{compileId,jdbcType=INTEGER} + + + ) + +
+
+
+ + + + + + + + + + + +
+
+
@@ -226,6 +248,7 @@ +

@@ -264,6 +287,48 @@ + + + + +

+ + +

+ + + + + + + +
+ <%@include file="/WEB-INF/views/cfg/complexCfgForm.jsp"%> +
+ + +
+
+
+ + + + +
+ + + + +
+
+ +
<%@include file="/WEB-INF/include/form/areaInfo.jsp"%> diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp index 95bfb1c1f..e1c1410dc 100644 --- a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpList.jsp @@ -10,6 +10,10 @@ //搜索框提示语初始化 if("${cfg.cfgDesc}"){ $("#intype").val("${cfg.cfgDesc}"); + }else if("${cfg.ntcSubscribeIdCfg.cfgKeywords}"){ + $("#intype").val("${cfg.ntcSubscribeIdCfg.cfgKeywords}"); + }else if("${cfg.compileId}"){ + $("#intype").val("${cfg.compileId}"); }else{ $("#intype").attr("placeholder"," "+$("#seltype").find("option:selected").text()); } @@ -31,6 +35,7 @@ $(".Wdate").attr("value",''); $("#level").attr("value",''); $("#searchForm")[0].reset(); + $("#intype").attr("placeholder"," "+$("#seltype").find("option:selected").text()); }); //异步获取voip相关信息 $("span[id^=open]").click(function(){ @@ -132,6 +137,8 @@ + + <%-- @@ -305,8 +312,10 @@ + + @@ -330,6 +339,7 @@ + ${indexCfg.compileId } ${indexCfg.cfgDesc } @@ -338,6 +348,13 @@ + + + + + + + diff --git a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpSubList.jsp b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpSubList.jsp index d13361879..f7a1897c8 100644 --- a/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpSubList.jsp +++ b/src/main/webapp/WEB-INF/views/cfg/fileTransfer/ftpSubList.jsp @@ -172,6 +172,59 @@

+ + + +
+
+
+
+ +
+
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+
+ + +
+
+
+
+
+
+ <%--