Преглед на файлове

fix: 心跳兼容问题

lijiaqi преди 1 година
родител
ревизия
43a677e899
променени са 1 файла, в които са добавени 5 реда и са изтрити 3 реда
  1. 5 3
      src/main/java/com/inspur/smsb/gateway/filter/WebFluxUserRequestInfoFilter.java

+ 5 - 3
src/main/java/com/inspur/smsb/gateway/filter/WebFluxUserRequestInfoFilter.java

@@ -153,7 +153,7 @@ public class WebFluxUserRequestInfoFilter implements GlobalFilter {
                 String token = exchange.getRequest().getHeaders().getFirst("Authorization");
                 if (Strings.isNullOrEmpty(token)) {
                     // 三级等保,若小程序请求不带token,则走该校验方法
-                    if (!isEncryptedRequest(exchange.getRequest())) {
+                    if (isWxAppletRequest(exchange.getRequest()) && !isEncryptedRequest(exchange.getRequest())) {
                         exchange.getResponse().setStatusCode(HttpStatus.FORBIDDEN);
                         return exchange.getResponse().setComplete();
                     }
@@ -281,10 +281,12 @@ public class WebFluxUserRequestInfoFilter implements GlobalFilter {
     private boolean isEncryptedRequest(ServerHttpRequest request) {
         String sign = request.getHeaders().getFirst("sign");
         String time = request.getHeaders().getFirst("time");
-        return isWxAppletRequest(sign, time) && isValidTime(time) && md5(time).equals(sign);
+        return isValidTime(time) && md5(time).equals(sign);
     }
 
-    private boolean isWxAppletRequest(String sign, String time) {
+    private boolean isWxAppletRequest(ServerHttpRequest request) {
+        String sign = request.getHeaders().getFirst("sign");
+        String time = request.getHeaders().getFirst("time");
         return StringUtils.hasText(sign) && StringUtils.hasText(time);
     }