Prechádzať zdrojové kódy

修改日志和socket关闭

humuyu 3 rokov pred
rodič
commit
b1939767cb

+ 33 - 8
eladmin-logging/src/main/java/me/zhengjie/aspect/LogRequestParam.java

@@ -4,7 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.serializer.SerializerFeature;
 import lombok.extern.slf4j.Slf4j;
 import me.zhengjie.utils.IpAddressUtil;
-
+import org.springframework.web.multipart.support.StandardMultipartHttpServletRequest;
 import org.apache.commons.lang3.StringUtils;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.Signature;
@@ -42,7 +42,7 @@ public class LogRequestParam {
 				return;
 			}
 			HttpServletRequest request = servletRequestAttributes.getRequest();
-			//得到请求的ip地址
+			// 得到请求的ip地址
 			String ip = IpAddressUtil.getIpAddress(request);
 
 			String uri = request.getRequestURI();
@@ -62,16 +62,40 @@ public class LogRequestParam {
 				return;
 			}
 
-			Map<String, Object> params = new HashMap<>(4);
+			Map<Object, Object> params = new HashMap<>(4);
 			for (int i = 0; i < parameterNames.length; i++) {
-				Object o = parameterNames[i];
-				if (o instanceof MultipartFile || o instanceof MultipartFile[] || o instanceof HttpServletRequest
-						|| o instanceof HttpServletResponse) {
+				Object param = parameterNames[i];
+
+				Object value = parameterValues[i];
+				if (value == null || value instanceof HttpServletRequest || value instanceof HttpServletResponse) {
 					continue;
 				}
-				params.put(parameterNames[i], parameterValues[i]);
+				if (value instanceof MultipartFile) {
+					MultipartFile part = (MultipartFile) value;
+					value = part.getOriginalFilename();
+				}
+				if (value instanceof MultipartFile[]) {
+					MultipartFile[] part = (MultipartFile[]) value;
+					StringBuffer sb = new StringBuffer();
+					for (MultipartFile file : part) {
+						sb.append(file.getOriginalFilename() + ",");
+					}
+					value = sb.toString();
+				}
+				if (value instanceof String) {
+					String str = (String) value;
+					if (str.length() > 1000) {
+						//去掉特别长的参数
+						value = str.substring(0, 1000);
+					}
+				}
+				// 记录上传的参数
+				params.put(param, value);
 			}
-			Object[] obj = { ip, uri, JSON.toJSONString(params, SerializerFeature.WriteMapNullValue) };
+			String json = JSON.toJSONString(params, SerializerFeature.WriteMapNullValue);
+
+			// 这里判断
+			Object[] obj = { ip, uri, json };
 			log.info("[request] - ip: {} , requestUrl: {} ,param: {} ", obj);
 		} catch (Exception e) {
 			e.printStackTrace();
@@ -105,4 +129,5 @@ public class LogRequestParam {
 			e.printStackTrace();
 		}
 	}
+
 }

+ 13 - 11
eladmin-system/src/main/java/me/zhengjie/base/websocket/AppSocketServer.java

@@ -24,23 +24,25 @@ public class AppSocketServer {
 	private String sname = "";
 
 	public AppSocketServer() {
-		// com.gangquan360.smartadmin.module.employee.EmployeeController.query dd;
+
 	}
 
 	@OnOpen
 	public void onOpen(Session session, @PathParam("sname") String sname) {
 
-		this.session = session;
-		// 如果存在就先删除一个,防止重复推送消息
-		for (AppSocketServer webSocket : webSocketSet) {
-			if (webSocket.sname.equals(sname)) {
-				webSocketSet.remove(webSocket);
-			}
-		}
-		webSocketSet.add(this);
-		log.info("有新窗口开始监听:" + sname + "当前人数:" + webSocketSet.size());
-		this.sname = sname;
 		try {
+			this.session = session;
+			// 如果存在就先删除一个,防止重复推送消息
+			for (AppSocketServer webSocket : webSocketSet) {
+				if (webSocket.sname.equals(sname)) {
+					// 发送一个关闭消息
+					webSocket.sendMessage("close");
+					webSocketSet.remove(webSocket);
+				}
+			}
+			webSocketSet.add(this);
+			log.info("有新窗口开始监听:" + sname + "当前人数:" + webSocketSet.size());
+			this.sname = sname;
 			sendMessage("连接成功");
 		} catch (IOException e) {
 			log.error("websocket IO异常:" + e.getMessage());