Browse Source

公司锁定功能调整

yingp 6 years ago
parent
commit
1fbf153a4c

+ 16 - 2
base-servers/gateway-server/src/main/java/com/usoftchina/saas/gateway/config/AuthFilter.java

@@ -31,6 +31,7 @@ import org.springframework.cloud.gateway.filter.GatewayFilterChain;
 import org.springframework.cloud.gateway.filter.GlobalFilter;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.core.Ordered;
+import org.springframework.http.HttpMethod;
 import org.springframework.http.server.reactive.ServerHttpRequest;
 import org.springframework.web.server.ServerWebExchange;
 import reactor.core.publisher.Mono;
@@ -95,8 +96,10 @@ public class AuthFilter implements GlobalFilter, Ordered {
                         RedisUtil.del(key);
                     }
                 }
-                // 公司状态为已锁定
-                CompanyLockCache.assertNotLocked(jwt.getCompanyId());
+                if (!isReadRequest(exchange.getRequest())) {
+                    // 公司状态为已锁定,不允许写操作,只允许读
+                    CompanyLockCache.assertNotLocked(jwt.getCompanyId());
+                }
 
                 BaseContextHolder.setAppId(jwt.getAppId());
                 BaseContextHolder.setUserId(jwt.getUserId());
@@ -212,4 +215,15 @@ public class AuthFilter implements GlobalFilter, Ordered {
     public int getOrder() {
         return -100;
     }
+
+    /**
+     * 是否读请求
+     *
+     * @param request
+     * @return
+     */
+    private boolean isReadRequest(ServerHttpRequest request) {
+        return HttpMethod.GET == request.getMethod() ||
+                HttpMethod.OPTIONS == request.getMethod();
+    }
 }