ruleoperation.jsp
4.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<%@ page import="weaver.general.Util" %>
<%@ page import="java.util.*" %>
<%@ page import="org.dom4j.*" %>
<%@ page import="java.util.regex.*"%>
<%@ page import="weaver.templetecheck.CheckUtil" %>
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ include file="/templetecheck/filecheck/CheckUserIsSysadmin.jsp" %>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<%
String name = Util.null2String(request.getParameter("name"));
String ishtml = Util.null2String(request.getParameter("ishtml"));
String description = Util.null2String(request.getParameter("description"));
String content = Util.null2String(request.getParameter("content"));
String flageid = Util.null2String(request.getParameter("flageid"));
String delflageids = Util.null2String(request.getParameter("delflageids"));
String replacecontent = Util.null2String(request.getParameter("replacecontent"));
String method = Util.null2String(request.getParameter("method"));
String tabtype = Util.null2String(request.getParameter("tabtype"));
String version = Util.null2String(request.getParameter("version"));
String xpath = Util.null2String(request.getParameter("xpath"));
String requisite = Util.null2String(request.getParameter("requisite"));
String ruletype = Util.null2String(request.getParameter("ruletype"));
//System.out.println("replacecontent:"+replacecontent);
CheckUtil checkutil = new CheckUtil();
if("delete".equals(method)) {
boolean res = false;
res = checkutil.deleteRule(delflageids,tabtype);
if(res) {
out.print("{\"status\":\"ok\"}");
} else {
out.print("{\"status\":\"no\"}");
}
} else {
CheckUtil.Rule rule = checkutil.new Rule();
rule.setName(checkutil.changeStr(name.trim()));
rule.setDescription(checkutil.changeStr(description.trim()));
rule.setContent(checkutil.changeStr(content.trim()));
rule.setXpath(checkutil.changeStr(xpath.trim()));
rule.setRequisite(checkutil.changeStr(requisite));
if("1".equals(ishtml)||"2".equals(ishtml)) {
try {
//判断输入的xml配置项是否有</a>333<a>这种情况
Pattern p = Pattern.compile("((</.*?>)[\\s]*?[^<\\s]+)");
Matcher m = p.matcher(replacecontent);
if(m.find()){
out.print("{\"status\":\"xmlerror\"}");
return;
}
if(replacecontent != null && !"".equals(replacecontent)) {
Document doc = DocumentHelper.parseText("<myroot>"+replacecontent+"</myroot>");
}
} catch(Exception e) {
out.print("{\"status\":\"xmlerror\"}");
return;
}
//验证版本号是否正确
String sysversion = "";
rs.execute("select cversion from license");
if(rs.next()) {
sysversion = rs.getString("cversion");
}
String[] versions = sysversion.split("\\+");
if(versions.length == 2) {
String basicversion = versions[0];
String tempsysversion = versions[1].replace("KB","");
//非KB补丁包 则是E8 的基础版本8.100.0531
if(version.indexOf("KB")<0) {
if(!basicversion.equals(version)) {
out.print("{\"status\":\"versionerror\"}");
return;
}
} else {
String tempversion = version.replace("KB","");
try {
long v1 = Long.valueOf(tempsysversion);
long v2 = Long.valueOf(tempversion);
if(v1<v2) {
out.print("{\"status\":\"versionerror\"}");
return;
}
} catch(Exception e) {
out.print("{\"status\":\"versionerror\"}");
return;
}
}
} else {
String tempversion = version.replace("KB","");
String tempsysversion = versions[0];
if(tempsysversion.compareTo(tempversion) < 0) {
out.print("{\"status\":\"versionerror\"}");
return;
}
}
}
rule.setReplacecontent(checkutil.changeStr(replacecontent));
rule.setVersion(checkutil.changeStr(version));
rule.setFlageid(checkutil.changeStr(flageid));
rule.setRuletype(ruletype);
boolean res = false;
if("add".equals(method)) {
res = checkutil.saveRule(rule,tabtype);
} else {
res = checkutil.updateRule(rule,tabtype);
}
if(res) {
out.print("{\"status\":\"ok\"}");
} else {
if("add".equals(method)){
out.print("{\"status\":\"adderror\"}");
} else {
out.print("{\"status\":\"updateerror\"}");
}
}
}
%>