websealsettingOperation.jsp
5.4 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
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.*" %>
<%@ page import="weaver.general.*" %>
<%@ page import="weaver.hrm.*" %>
<%@ page import="weaver.conn.*" %>
<jsp:useBean id="rs" class="weaver.conn.RecordSet" scope="page" />
<jsp:useBean id="WebSealUtil" class="weaver.interfaces.sso.webseal.WebSealUtil" scope="page" />
<%
User user = HrmUserVarify.getUser(request, response);
if(user == null) return;
if(!HrmUserVarify.checkUserRight("WebSEAL:ALL", user)) {
response.sendRedirect("/notice/noright.jsp") ;
return;
}
String method = Util.null2String(request.getParameter("method"));
String saveType = Util.null2String(request.getParameter("saveType"));
if("save".equals(method)) {// 保存
String isUseWebSeal = Util.null2String(request.getParameter("isUseWebSeal"));
isUseWebSeal = isUseWebSeal.equals("") ? "0" : "1";
String paramMethod = Util.null2String(request.getParameter("paramMethod"));
String paramName = Util.null2String(request.getParameter("paramName"));
String loginPage = Util.null2String(request.getParameter("loginPage"));
String logoutPage = Util.null2String(request.getParameter("logoutPage"));
String accountType = Util.null2String(request.getParameter("accountType"));
String customSqlStr = Util.null2String(request.getParameter("customSqlStr"));
String urls[] = request.getParameterValues("url");
String descriptions[] = request.getParameterValues("description");
String rules[] = request.getParameterValues("rule");
String ruleDescs[] = request.getParameterValues("ruleDesc");
ConnStatement connStatement = null;
try {
connStatement = new ConnStatement();
String SQL = "";
if("1".equals(saveType)) {
// 启用
rs.executeSql("delete from int_webseal_setting");
SQL = "insert into int_webseal_setting(isuse, websealparammethod, websealparamname, ecologyloginpage, ecologylogoutpage, accounttype, customsql) "
+ "values(?, ?, ?, ?, ?, ?, ?)";
connStatement.setStatementSql(SQL);
connStatement.setString(1, isUseWebSeal);
connStatement.setString(2, paramMethod);
connStatement.setString(3, paramName);
connStatement.setString(4, loginPage);
connStatement.setString(5, logoutPage);
connStatement.setString(6, accountType);
if("customsql".equals(accountType)) {
connStatement.setString(7, customSqlStr);
} else {
connStatement.setString(7, "");
}
new BaseBean().writeLog(connStatement.toString());
connStatement.executeUpdate();
// 更新自定义排除地址
rs.executeSql("delete from int_webseal_exclueurl where iscustom = 1");
if(urls != null) {
for(int i = 0; i < urls.length; i++) {
String url = urls[i].trim();
String description = descriptions[i];
if(!url.equals("")) {
SQL = "insert into int_webseal_exclueurl(excludeurl,excludedescription,iscustom) values(?, ?, ?)";
connStatement.setStatementSql(SQL);
connStatement.setString(1, url);
connStatement.setString(2, description);
connStatement.setString(3, "1");
connStatement.executeUpdate();
}
}
}
// 更新过滤地址
rs.executeSql("delete from int_webseal_securityrules");
if(rules != null) {
for(int j = 0; j < rules.length; j++) {
String rule = rules[j].trim();
String ruleDesc = ruleDescs[j];
if(!rule.equals("")) {
SQL = "insert into int_webseal_securityrules(securityrule,ruledescription) values(?, ?)";
connStatement.setStatementSql(SQL);
connStatement.setString(1, rule);
connStatement.setString(2, ruleDesc);
connStatement.executeUpdate();
}
}
}
} else if("2".equals(saveType)) {// 非首次关闭
SQL = "update int_webseal_setting set isuse = '0'";
rs.executeSql(SQL);
}
} catch (Exception e) {
}finally {
if (connStatement != null) {
connStatement.close();
}
}
response.sendRedirect("/integration/sso/webseal/websealsetting.jsp");
} else if("restartService".equals(method)) {// 重启服务
String rules[] = request.getParameterValues("rule");
if("1".equals(saveType)) {// 启用
// 添加filter配置
WebSealUtil.deleteFilter();
WebSealUtil.writeFilter();
// 添加过滤地址
WebSealUtil.deleteWebSealRules();
if(rules != null) {
WebSealUtil.createWebSealRules(rules);
}
} else if("2".equals(saveType)) {// 非首次关闭
// 删除filter配置
WebSealUtil.deleteFilter();
// 删除过滤地址
WebSealUtil.deleteWebSealRules();
}
response.sendRedirect("/integration/sso/webseal/websealsetting.jsp");
} else if("getOAAddress".equals(method)) {// 异步加载OA地址
rs.executeProc("SystemSet_Select","");
rs.next();
String oaaddr = Util.null2String(rs.getString("oaaddress"));
oaaddr = "{\"oaaddr\":\""+oaaddr+"\"}";
//System.err.print(oaaddr);
out.print(oaaddr);
return;
}
%>