detect.jsp
5.58 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<%@page import="weaver.social.im.SocialImLogin"%>
<%@page import="weaver.social.im.SocialIMClient"%>
<%@page import="weaver.social.service.SocialIMService"%>
<%@ include file="/social/detect/interface/baseapi.jsp"%>
<%@ include file="/social/detect/sysinfo.jsp"%>
<jsp:useBean id="ResourceComInfo" class="weaver.hrm.resource.ResourceComInfo" scope="page" />
<%
response.setHeader("cache-control", "no-cache");
response.setHeader("pragma", "no-cache");
response.setHeader("expires", "Mon 1 Jan 1990 00:00:00 GMT");
String userId = user.getUID() + "";
String userName = ResourceComInfo.getLastname(user.getUID()+"");
String userHead = ResourceComInfo.getMessagerUrls(userId);
String method = Util.null2String(request.getParameter("m"));
Log logger= LogFactory.getLog(this.getClass());
JSONObject res = new JSONObject();
int errorCode = -1;
try{
if(method.equalsIgnoreCase("checkopenfire")) {
String[] hosts = parseHost(sysinfo.getString("openfireEMobileUrl"));
if (!sysinfo.getBoolean("isUseOpenfire")) {
errorCode = 101;
} else if (!checkPort(hosts[1], Util.getIntValue(hosts[2]))) {
errorCode = 102;
}
} else if(method.equalsIgnoreCase("checkudid")) {
if (sysinfo.getBoolean("isUseOpenfire")) {
rs.execute("select 1 from mobileProperty where name = 'rongAppUDID'");
if (rs.next()) {
rs.execute("delete from mobileProperty where name = 'rongAppUDID'");
errorCode = 2;
}
}
} else if(method.equalsIgnoreCase("checktoken")) {
String token = "";
if (sysinfo.getBoolean("isUseOpenfire")) {
token = getToken(sysinfo.getString("openfireEMobileUrl"),
userId, userName, userHead, true);
if (token.isEmpty()) {
errorCode = 301;
}
} else {
Map<String, String> rongConfig = WeaverRongUtil.getInstanse().getRongConfig(userId, userName, userHead);
token = rongConfig.get("TOKEN");
if (token.isEmpty()) {
errorCode = 302;
}
}
} else if(method.equalsIgnoreCase("checkappkey")) {
Map<String, String> rongConfig = WeaverRongUtil.getInstanse().getRongConfig(userId, userName, userHead);
String appkey = rongConfig.get("APPKEY");
if (appkey.equals("")) {
errorCode = 401;
} else {
String regex="^[a-z0-9A-Z]+$";
if (!appkey.matches(regex)) {
errorCode = 402;
}
}
} else if(method.equalsIgnoreCase("checkfilter")) {
// 检查格式
JSONObject result = checkSocialFilter();
boolean exist = result.getBoolean("exist");
boolean correct = result.getBoolean("correct");
boolean duplicate = result.getBoolean("duplicate");
String error = result.getString("error");
if (!error.isEmpty()) {
errorCode = 501;
} else if (!exist) {
errorCode = 502;
} else if (!correct) {
errorCode = 503;
} else if (duplicate) {
errorCode = 504;
}
result = checkFilter();
int numSocialIMFilter = result.getInt("isSocialIMFilter");
int numWSessionClusterFilter = result.getInt("isWSessionClusterFilter");
int numSecurityFilter = result.getInt("isSecurityFilter");
error = result.getString("error");
if (!error.isEmpty()) {
errorCode = 501;
} else {
if (numSocialIMFilter == 0) {
errorCode = 502;
} else if ((numWSessionClusterFilter<numSocialIMFilter && numWSessionClusterFilter != 0)||
numSocialIMFilter<numSecurityFilter) {
errorCode = 505;
}
}
} else if(method.equalsIgnoreCase("checkfileclean")) {
boolean isServletConfigured = isConfigured("SocialIMServlet");
if (!isServletConfigured) {
errorCode = 601;
} else {
String isdeletefile = Prop.getPropValue("EMessage4Config", "isdeletefile");
if (!"1".equals(isdeletefile )) {
errorCode = 602;
} else {
String isOpenDeleteFileTask = getClientProp("isOpenDeleteFileTask");
if(!"1".equals(isOpenDeleteFileTask)) {
errorCode = 603;
}
}
}
} else if(method.equalsIgnoreCase("checkweb")) {
// 1 检查总开关
boolean isOpenIM = SocialIMService.isOpenIM();
// 2 检查web版开关
boolean isOpenWebIM = SocialIMService.isUseWebEmessage();
// 3 检查license授权
boolean isLicenseOk = SocialImLogin.checkLience() == 1;
// 4 检查version版本号
boolean isE4 = SocialIMService.checkE4Version();
boolean isAccessLogin= false, isPcOnline =false;
if(user != null) {
// 5 检查是否禁止登录
isAccessLogin= SocialImLogin.checkForbitLogin(user.getUID()+"");
// 6 检查pc版登录状态
isPcOnline = SocialImLogin.CheckpcOnline(userId, userName, userHead);
}
if(!isOpenIM) {
errorCode = 701;
} else if (!isOpenWebIM) {
errorCode = 702;
} else if (!isLicenseOk) {
errorCode = 703;
} else if (!isE4) {
errorCode = 704;
} else if (!isAccessLogin) {
errorCode = 705;
} else if (isPcOnline) {
errorCode = 706;
}
} else if(method.equalsIgnoreCase("checkpush")) {
boolean isPcOnline = SocialImLogin.CheckpcOnline(userId, userName, userHead);
if (!isPcOnline) {
errorCode = 800;
}
String receivers = userId;
String requesttitle = "测试打开内部推送";
String requestdetails = "创建人:"+ userName +"<br>创建时间:" + TimeUtil.getCurrentTimeString();
String requesturl = "http://www.weaver.com.cn";
String extra = "";
List<String> receiverIds = Util.TokenizerString(receivers, ",");
try {
SocialIMClient.pushInternal(1, requesttitle, requestdetails, "1", extra, receiverIds);
SocialIMClient.pushExternal("系统提醒", "测试外部推送", requestdetails, requesturl, extra, receiverIds);
} catch (Exception e) {
errorCode = 501;
}
}
getResult(res, errorCode, sysinfo);
out.print(res);
} catch (Exception e) {
logger.error("social-detect-error-method-" + method + "-message-" + e.getMessage());
}
%>