From cb4661b681638adf873d69be35544b3dfafce0b4 Mon Sep 17 00:00:00 2001 From: wulin Date: Tue, 7 Nov 2023 15:28:12 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=B0=83=E7=94=A8=E9=93=BE?= =?UTF-8?q?=E4=BB=8E=E7=BD=91=E5=85=B3=E4=BC=A0=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/base/constans/Log4Constans.java | 3 +- iot-gateway/pom.xml | 12 +++++++ .../qiuguo/iot/gateway/filter/AuthFilter.java | 31 +++++++++++++++-- .../http/api/filter/LogMdcConfiguration.java | 13 ++++--- .../admin/http/api/filter/LogWebFilter.java | 21 +++++++++--- iot-modules/iot-box-user-api/pom.xml | 12 ------- .../fliter/TraceResponseFilter.java | 25 -------------- .../user/api/filter/LogMdcConfiguration.java | 13 ++++--- .../iot/user/api/filter/LogWebFilter.java | 23 ++++++++++--- .../api/filter/LogMdcConfiguration.java | 13 ++++--- .../websocket/api/filter/LogWebFilter.java | 34 +++++++++++++------ .../api/handler/BoxWebSocketHandler.java | 13 +++---- .../api/handler/CustomerWebSocketHandler.java | 11 +++--- 13 files changed, 131 insertions(+), 93 deletions(-) delete mode 100644 iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/fliter/TraceResponseFilter.java diff --git a/iot-common/iot-base/src/main/java/com/qiuguo/iot/base/constans/Log4Constans.java b/iot-common/iot-base/src/main/java/com/qiuguo/iot/base/constans/Log4Constans.java index 69db8fa..96275be 100644 --- a/iot-common/iot-base/src/main/java/com/qiuguo/iot/base/constans/Log4Constans.java +++ b/iot-common/iot-base/src/main/java/com/qiuguo/iot/base/constans/Log4Constans.java @@ -1,5 +1,6 @@ package com.qiuguo.iot.base.constans; public class Log4Constans { - public static String PRINT_LOG_ID = "logid"; + public static String PRINT_LOG_ID = "tid"; + public static String CUSTOMER_IP = "customerIp"; } diff --git a/iot-gateway/pom.xml b/iot-gateway/pom.xml index 8b79202..1c18c53 100644 --- a/iot-gateway/pom.xml +++ b/iot-gateway/pom.xml @@ -71,6 +71,18 @@ 0.0.1-SNAPSHOT compile + + + org.apache.skywalking + apm-toolkit-trace + 8.7.0 + + + org.apache.skywalking + apm-toolkit-logback-1.x + 8.7.0 + + diff --git a/iot-gateway/src/main/java/com/qiuguo/iot/gateway/filter/AuthFilter.java b/iot-gateway/src/main/java/com/qiuguo/iot/gateway/filter/AuthFilter.java index 43f76f7..f877507 100644 --- a/iot-gateway/src/main/java/com/qiuguo/iot/gateway/filter/AuthFilter.java +++ b/iot-gateway/src/main/java/com/qiuguo/iot/gateway/filter/AuthFilter.java @@ -1,20 +1,28 @@ package com.qiuguo.iot.gateway.filter; +import com.qiuguo.iot.base.constans.Log4Constans; import com.qiuguo.iot.base.constans.RedisConstans; import com.qiuguo.iot.base.constans.UserAuthContains; import com.qiuguo.iot.gateway.config.properties.XssProperties; + +import java.nio.charset.StandardCharsets; import java.time.Duration; import lombok.extern.slf4j.Slf4j; +import org.apache.skywalking.apm.toolkit.trace.TraceContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.gateway.filter.GatewayFilterChain; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework.core.Ordered; +import org.springframework.core.io.buffer.DataBuffer; import org.springframework.data.redis.core.ReactiveStringRedisTemplate; +import org.springframework.http.HttpHeaders; import org.springframework.http.server.RequestPath; import org.springframework.http.server.reactive.ServerHttpRequest; +import org.springframework.http.server.reactive.ServerHttpRequestDecorator; import org.springframework.stereotype.Component; import org.springframework.util.ObjectUtils; import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; /** @@ -37,8 +45,12 @@ public class AuthFilter implements GlobalFilter, Ordered { public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); String url = request.getPath().toString(); + String customerIp = request.getRemoteAddress().getAddress().getHostAddress(); + String tracId = TraceContext.traceId(); + ServerWebExchange.Builder ex = exchange.mutate(); + ex.request(getRequest(exchange, customerIp, tracId)); if (xssProperties.getExcludeUrls().contains(url)) { - return chain.filter(exchange); + return chain.filter(ex.build()); } String api_token = exchange.getRequest().getHeaders().getFirst(UserAuthContains.API_TOKEN); @@ -46,7 +58,7 @@ public class AuthFilter implements GlobalFilter, Ordered { if (ObjectUtils.isEmpty(api_token) || ObjectUtils.isEmpty(api_type)) { return Mono.error(new RuntimeException("未登录")); } - return chain.filter(exchange); + return chain.filter(ex.build()); // String key = RedisConstans.IOT_TOKEN.concat(api_token); // return reactiveRedisTemplate.getExpire(key).map(Duration::getSeconds).flatMap(ttl -> { // if (ttl == -1) { @@ -61,6 +73,21 @@ public class AuthFilter implements GlobalFilter, Ordered { // } // }); } + + private ServerHttpRequest getRequest(ServerWebExchange exchange, String customerIp, String tracId){ + ServerHttpRequest request = exchange.getRequest(); + ServerHttpRequest newRequest = new ServerHttpRequestDecorator(request){ + @Override + public HttpHeaders getHeaders(){ + HttpHeaders httpHeaders = new HttpHeaders(); + httpHeaders.putAll(super.getHeaders()); + httpHeaders.set(Log4Constans.CUSTOMER_IP, customerIp); + httpHeaders.set(Log4Constans.PRINT_LOG_ID, tracId); + return httpHeaders; + } + }; + return newRequest; + } @Override diff --git a/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/filter/LogMdcConfiguration.java b/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/filter/LogMdcConfiguration.java index e9fc428..cf8eda4 100644 --- a/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/filter/LogMdcConfiguration.java +++ b/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/filter/LogMdcConfiguration.java @@ -22,20 +22,19 @@ import javax.annotation.PreDestroy; @Configuration @Slf4j public class LogMdcConfiguration { - public static String PRINT_LOG_ID = Log4Constans.PRINT_LOG_ID; @PostConstruct public void contextOperatorHook() { - Hooks.onEachOperator(PRINT_LOG_ID, Operators.lift((r, c) ->{ + Hooks.onEachOperator(Log4Constans.PRINT_LOG_ID, Operators.lift((r, c) ->{ Context ctx = c.currentContext(); - if(ctx.hasKey(PRINT_LOG_ID)){ - MDC.put(PRINT_LOG_ID, ctx.get(PRINT_LOG_ID)); + if(ctx.hasKey(Log4Constans.PRINT_LOG_ID)){ + MDC.put(Log4Constans.PRINT_LOG_ID, ctx.get(Log4Constans.PRINT_LOG_ID)); } return new MdcContextSubscriber(c); })); } @PreDestroy public void cleanupHook() { - Hooks.resetOnEachOperator(PRINT_LOG_ID); + Hooks.resetOnEachOperator(Log4Constans.PRINT_LOG_ID); } class MdcContextSubscriber implements CoreSubscriber { @@ -47,14 +46,14 @@ public class LogMdcConfiguration { @Override public void onComplete() { coreSubscriber.onComplete(); - MDC.remove(PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); } @Override public void onError(Throwable throwable) { log.info("异常{}", throwable); coreSubscriber.onError(throwable); - MDC.remove(PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); } diff --git a/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/filter/LogWebFilter.java b/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/filter/LogWebFilter.java index e87255d..c07a90e 100644 --- a/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/filter/LogWebFilter.java +++ b/iot-modules/iot-admin-http-api/src/main/java/com/qiuguo/iot/admin/http/api/filter/LogWebFilter.java @@ -1,5 +1,6 @@ package com.qiuguo.iot.admin.http.api.filter; +import com.qiuguo.iot.base.constans.Log4Constans; import io.netty.buffer.ByteBuf; import lombok.extern.slf4j.Slf4j; import org.apache.logging.log4j.ThreadContext; @@ -38,9 +39,18 @@ public class LogWebFilter implements WebFilter { long startTime = System.currentTimeMillis(); ServerHttpRequest request = exchange.getRequest(); String requestId = request.getId(); - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); + String ip = request.getRemoteAddress().getAddress().getHostAddress(); + if(request.getHeaders().containsKey(Log4Constans.PRINT_LOG_ID)){ + //网关生成的tracId + requestId = request.getHeaders().get(Log4Constans.PRINT_LOG_ID).get(0); + } + + if(request.getHeaders().containsKey(Log4Constans.CUSTOMER_IP)){ + //网关透传过来的IP + ip = request.getHeaders().get(Log4Constans.CUSTOMER_IP).get(0); + } + MDC.put(Log4Constans.PRINT_LOG_ID, requestId); - String ip = request.getRemoteAddress().getAddress().getHostAddress();//.getHostName(); String m = request.getMethod().toString(); log.info("api start time:{} ip:{} method:{} url:{} param:{} headers:{}", @@ -58,17 +68,18 @@ public class LogWebFilter implements WebFilter { if(!request.getMethod().equals(HttpMethod.GET) && !request.getMethod().equals(HttpMethod.DELETE)){ ex.request(getRequest(exchange)); } + String tracId = requestId; return chain.filter(ex.build()) .contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, tracId); return contextTmp; }) .doFinally(signalType -> { long endTime = System.currentTimeMillis(); - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); + MDC.put(Log4Constans.PRINT_LOG_ID, tracId); log.info("api end time:{}, total time:{}", endTime, endTime - startTime); - MDC.remove(LogMdcConfiguration.PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); }); } diff --git a/iot-modules/iot-box-user-api/pom.xml b/iot-modules/iot-box-user-api/pom.xml index 59c6b9a..a0b949b 100644 --- a/iot-modules/iot-box-user-api/pom.xml +++ b/iot-modules/iot-box-user-api/pom.xml @@ -82,18 +82,6 @@ 8.7.0 - - org.springframework - spring-web - - - org.springframework - spring-context - - - javax.servlet - javax.servlet-api - cn.hutool diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/fliter/TraceResponseFilter.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/fliter/TraceResponseFilter.java deleted file mode 100644 index 11775b3..0000000 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/controller/fliter/TraceResponseFilter.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.qiuguo.iot.user.api.controller.fliter; - -import org.apache.skywalking.apm.toolkit.trace.TraceContext; -import org.springframework.stereotype.Component; -import org.springframework.web.filter.OncePerRequestFilter; - -import javax.servlet.FilterChain; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; - -@Component -public class TraceResponseFilter extends OncePerRequestFilter { - @Override - protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { - try{ - //设置skywalking的traceId - response.addHeader("traceId", TraceContext.traceId()); - }catch (Exception e){ - - } - filterChain.doFilter(request, response); - } -} diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/filter/LogMdcConfiguration.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/filter/LogMdcConfiguration.java index 3d6be64..643d1ac 100644 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/filter/LogMdcConfiguration.java +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/filter/LogMdcConfiguration.java @@ -22,20 +22,19 @@ import javax.annotation.PreDestroy; @Configuration @Slf4j public class LogMdcConfiguration { - public static String PRINT_LOG_ID = Log4Constans.PRINT_LOG_ID; @PostConstruct public void contextOperatorHook() { - Hooks.onEachOperator(PRINT_LOG_ID, Operators.lift((r, c) ->{ + Hooks.onEachOperator(Log4Constans.PRINT_LOG_ID, Operators.lift((r, c) ->{ Context ctx = c.currentContext(); - if(ctx.hasKey(PRINT_LOG_ID)){ - MDC.put(PRINT_LOG_ID, ctx.get(PRINT_LOG_ID)); + if(ctx.hasKey(Log4Constans.PRINT_LOG_ID)){ + MDC.put(Log4Constans.PRINT_LOG_ID, ctx.get(Log4Constans.PRINT_LOG_ID)); } return new MdcContextSubscriber(c); })); } @PreDestroy public void cleanupHook() { - Hooks.resetOnEachOperator(PRINT_LOG_ID); + Hooks.resetOnEachOperator(Log4Constans.PRINT_LOG_ID); } class MdcContextSubscriber implements CoreSubscriber { @@ -47,14 +46,14 @@ public class LogMdcConfiguration { @Override public void onComplete() { coreSubscriber.onComplete(); - MDC.remove(PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); } @Override public void onError(Throwable throwable) { log.info("异常{}", throwable); coreSubscriber.onError(throwable); - MDC.remove(PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); } diff --git a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/filter/LogWebFilter.java b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/filter/LogWebFilter.java index 1892179..cd81440 100644 --- a/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/filter/LogWebFilter.java +++ b/iot-modules/iot-box-user-api/src/main/java/com/qiuguo/iot/user/api/filter/LogWebFilter.java @@ -1,5 +1,6 @@ package com.qiuguo.iot.user.api.filter; +import com.qiuguo.iot.base.constans.Log4Constans; import lombok.extern.slf4j.Slf4j; import org.hswebframework.web.logger.ReactiveLogger; import org.reactivestreams.Publisher; @@ -37,9 +38,20 @@ public class LogWebFilter implements WebFilter { long startTime = System.currentTimeMillis(); ServerHttpRequest request = exchange.getRequest(); String requestId = request.getId(); - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); + String ip = request.getRemoteAddress().getAddress().getHostAddress(); + if(request.getHeaders().containsKey(Log4Constans.PRINT_LOG_ID)){ + //网关生成的tracId + requestId = request.getHeaders().get(Log4Constans.PRINT_LOG_ID).get(0); + } - String ip = request.getRemoteAddress().getAddress().getHostAddress();//.getHostName(); + if(request.getHeaders().containsKey(Log4Constans.CUSTOMER_IP)){ + //网关透传过来的IP + ip = request.getHeaders().get(Log4Constans.CUSTOMER_IP).get(0); + } + + MDC.put(Log4Constans.PRINT_LOG_ID, requestId); + + String m = request.getMethod().toString(); log.info("api start time:{} ip:{} method:{} url:{} param:{} headers:{}", @@ -57,17 +69,18 @@ public class LogWebFilter implements WebFilter { if(!request.getMethod().equals(HttpMethod.GET) && !request.getMethod().equals(HttpMethod.DELETE)){ ex.request(getRequest(exchange)); } + String tracId = requestId; return chain.filter(ex.build()) .contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, tracId); return contextTmp; }) .doFinally(signalType -> { long endTime = System.currentTimeMillis(); - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); + MDC.put(Log4Constans.PRINT_LOG_ID, tracId); log.info("api end time:{}, total time:{}", endTime, endTime - startTime); - MDC.remove(LogMdcConfiguration.PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); }); } diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/filter/LogMdcConfiguration.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/filter/LogMdcConfiguration.java index e53f654..465a4bb 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/filter/LogMdcConfiguration.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/filter/LogMdcConfiguration.java @@ -21,20 +21,19 @@ import javax.annotation.PreDestroy; @Configuration @Slf4j public class LogMdcConfiguration { - public static String PRINT_LOG_ID = Log4Constans.PRINT_LOG_ID; @PostConstruct public void contextOperatorHook() { - Hooks.onEachOperator(PRINT_LOG_ID, Operators.lift((r, c) ->{ + Hooks.onEachOperator(Log4Constans.PRINT_LOG_ID, Operators.lift((r, c) ->{ Context ctx = c.currentContext(); - if(ctx.hasKey(PRINT_LOG_ID)){ - MDC.put(PRINT_LOG_ID, ctx.get(PRINT_LOG_ID)); + if(ctx.hasKey(Log4Constans.PRINT_LOG_ID)){ + MDC.put(Log4Constans.PRINT_LOG_ID, ctx.get(Log4Constans.PRINT_LOG_ID)); } return new MdcContextSubscriber(c); })); } @PreDestroy public void cleanupHook() { - Hooks.resetOnEachOperator(PRINT_LOG_ID); + Hooks.resetOnEachOperator(Log4Constans.PRINT_LOG_ID); } class MdcContextSubscriber implements CoreSubscriber { @@ -46,14 +45,14 @@ public class LogMdcConfiguration { @Override public void onComplete() { coreSubscriber.onComplete(); - MDC.remove(PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); } @Override public void onError(Throwable throwable) { log.info("异常{}", throwable); coreSubscriber.onError(throwable); - MDC.remove(PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); } diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/filter/LogWebFilter.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/filter/LogWebFilter.java index 4b6be4e..2ceb31d 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/filter/LogWebFilter.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/filter/LogWebFilter.java @@ -1,5 +1,6 @@ package com.qiuguo.iot.box.websocket.api.filter; +import com.qiuguo.iot.base.constans.Log4Constans; import lombok.extern.slf4j.Slf4j; import org.hswebframework.web.logger.ReactiveLogger; import org.reactivestreams.Publisher; @@ -36,21 +37,32 @@ import java.util.Arrays; @Configuration @Slf4j public class LogWebFilter implements WebFilter { - //String customerIp = ""; public static String HEAD_IP = "customerIP"; @Override public Mono filter(ServerWebExchange exchange, WebFilterChain chain) { long startTime = System.currentTimeMillis(); ServerHttpRequest request = exchange.getRequest(); - String requestId = request.getId(); - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); - String customerIp = request.getRemoteAddress().getAddress().getHostAddress();//.getHostName(); + String requestId = request.getId(); + String ip = request.getRemoteAddress().getAddress().getHostAddress(); + if(request.getHeaders().containsKey(Log4Constans.PRINT_LOG_ID)){ + //网关生成的tracId + requestId = request.getHeaders().get(Log4Constans.PRINT_LOG_ID).get(0); + } + + if(request.getHeaders().containsKey(Log4Constans.CUSTOMER_IP)){ + //网关透传过来的IP + ip = request.getHeaders().get(Log4Constans.CUSTOMER_IP).get(0); + } + + MDC.put(Log4Constans.PRINT_LOG_ID, requestId); + + String m = request.getMethod().toString(); log.info("api start time:{} ip:{} method:{} url:{} param:{} headers:{}", startTime, - customerIp, + ip, m, request.getPath(), request.getQueryParams(), @@ -61,19 +73,19 @@ public class LogWebFilter implements WebFilter { ex.response(getResponse(exchange, requestId)); // if(!request.getMethod().equals(HttpMethod.GET) && !request.getMethod().equals(HttpMethod.DELETE)){ - ex.request(getRequest(exchange, customerIp, requestId)); - + ex.request(getRequest(exchange, ip, requestId)); + String tracId = requestId; return chain.filter(ex.build()) .contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, tracId); return contextTmp; }) .doFinally(signalType -> { long endTime = System.currentTimeMillis(); - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, requestId); + MDC.put(Log4Constans.PRINT_LOG_ID, tracId); log.info("api end time:{}, total time:{}", endTime, endTime - startTime); - MDC.remove(LogMdcConfiguration.PRINT_LOG_ID); + MDC.remove(Log4Constans.PRINT_LOG_ID); }); } @@ -93,7 +105,7 @@ public class LogWebFilter implements WebFilter { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.putAll(super.getHeaders()); httpHeaders.set(HEAD_IP, customerIp); - httpHeaders.set(LogMdcConfiguration.PRINT_LOG_ID, requestId); + httpHeaders.set(Log4Constans.PRINT_LOG_ID, requestId); return httpHeaders; } }; diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java index a68d99f..d336f93 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/BoxWebSocketHandler.java @@ -3,6 +3,7 @@ package com.qiuguo.iot.box.websocket.api.handler; import com.alibaba.fastjson.JSONObject; import com.qiuguo.iot.base.annotation.WebSocketMapping; import com.qiuguo.iot.base.constans.HttpHeaderConstans; +import com.qiuguo.iot.base.constans.Log4Constans; import com.qiuguo.iot.base.constans.RedisConstans; import com.qiuguo.iot.base.enums.*; import com.qiuguo.iot.base.model.UserDeviceInfoModel; @@ -97,13 +98,13 @@ public class BoxWebSocketHandler implements WebSocketHandler { boxSession.setCustomerIP(ip); boxSession.setSession(session); boxSession.setUserId(userId); - boxSession.setLogId(headers.get(LogMdcConfiguration.PRINT_LOG_ID).get(0)); + boxSession.setLogId(headers.get(Log4Constans.PRINT_LOG_ID).get(0)); log.info("登录成功SN:{}", sn); Mono input = session.receive().map(webSocketMessage ->{ newMessage(webSocketMessage, boxSession).contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, boxSession.getLogId()); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, boxSession.getLogId()); return contextTmp; }).subscribe(); @@ -113,7 +114,7 @@ public class BoxWebSocketHandler implements WebSocketHandler { //校验 checkToken(boxSession, linkTime, signature, isBind).contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, boxSession.getLogId()); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, boxSession.getLogId()); return contextTmp; }).subscribe(); @@ -125,7 +126,7 @@ public class BoxWebSocketHandler implements WebSocketHandler { return Mono.zip(input, output).doFinally(signalType -> { disconnect(boxSession).contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, boxSession.getLogId()); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, boxSession.getLogId()); return contextTmp; }).subscribe(); @@ -141,7 +142,7 @@ public class BoxWebSocketHandler implements WebSocketHandler { } private Mono newMessage(WebSocketMessage webSocketMessage, BoxSession boxSession){ - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, boxSession.getLogId()); + MDC.put(Log4Constans.PRINT_LOG_ID, boxSession.getLogId()); String text = webSocketMessage.getPayloadAsText(); log.info("设备端收到消息:{}", text); BoxTalkMessage boxTalkMessage = JSONObject.parseObject(text, BoxTalkMessage.class); @@ -158,7 +159,7 @@ public class BoxWebSocketHandler implements WebSocketHandler { } private Mono disconnect(BoxSession boxSession){ - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, boxSession.getLogId()); + MDC.put(Log4Constans.PRINT_LOG_ID, boxSession.getLogId()); BoxSession boxSession1 = baseWebSocketService.getBoxSessionWithSn(boxSession.getSn()); if(boxSession == boxSession1){ //断链后及时移除 diff --git a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java index 7abb75f..cac1926 100644 --- a/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java +++ b/iot-modules/iot-box-websocket-api/src/main/java/com/qiuguo/iot/box/websocket/api/handler/CustomerWebSocketHandler.java @@ -3,6 +3,7 @@ package com.qiuguo.iot.box.websocket.api.handler; import com.alibaba.fastjson.JSONObject; import com.qiuguo.iot.base.annotation.WebSocketMapping; import com.qiuguo.iot.base.constans.HttpHeaderConstans; +import com.qiuguo.iot.base.constans.Log4Constans; import com.qiuguo.iot.base.enums.AskTypeEnum; import com.qiuguo.iot.base.enums.DeviceTypeEnum; import com.qiuguo.iot.base.enums.ResponeEnum; @@ -79,11 +80,11 @@ public class CustomerWebSocketHandler implements WebSocketHandler { userSession.setSession(session); userSession.setCustomerIP(ip); userSession.setSessionType(YesNo.YES.getCode()); - userSession.setLogId(headers.get(LogMdcConfiguration.PRINT_LOG_ID).get(0)); + userSession.setLogId(headers.get(Log4Constans.PRINT_LOG_ID).get(0)); log.info("用户成功userId:{}", userId); Mono input = session.receive().map(webSocketMessage ->{ newMessage(webSocketMessage, userSession).contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, userSession.getLogId()); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, userSession.getLogId()); return contextTmp; }).subscribe(); @@ -92,7 +93,7 @@ public class CustomerWebSocketHandler implements WebSocketHandler { checkToken(userSession, type, token).contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, userSession.getLogId()); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, userSession.getLogId()); return contextTmp; }).subscribe(); @@ -104,7 +105,7 @@ public class CustomerWebSocketHandler implements WebSocketHandler { return Mono.zip(input, output).doFinally(signalType -> { disconnect(userSession).contextWrite(context -> { - Context contextTmp = context.put(LogMdcConfiguration.PRINT_LOG_ID, userSession.getLogId()); + Context contextTmp = context.put(Log4Constans.PRINT_LOG_ID, userSession.getLogId()); return contextTmp; }).subscribe();; @@ -112,7 +113,7 @@ public class CustomerWebSocketHandler implements WebSocketHandler { } private Mono newMessage(WebSocketMessage webSocketMessage, UserSession userSession){ - MDC.put(LogMdcConfiguration.PRINT_LOG_ID, userSession.getLogId()); + MDC.put(Log4Constans.PRINT_LOG_ID, userSession.getLogId()); String text = webSocketMessage.getPayloadAsText(); log.info("收到用户消息:{}", text); UserTalkMessage userTalkMessage = JSONObject.parseObject(text, UserTalkMessage.class);