|
@@ -3,8 +3,7 @@ package com.diagbot.filter;
|
|
|
import com.diagbot.client.DiagbotmanServiceClient;
|
|
|
import com.diagbot.client.UserServiceClient;
|
|
|
import com.diagbot.dto.RespDTO;
|
|
|
-import com.diagbot.exception.CommonErrorCode;
|
|
|
-import com.diagbot.exception.CommonException;
|
|
|
+import com.diagbot.entity.ServiceFilter;
|
|
|
import com.diagbot.exception.ErrorCode;
|
|
|
import com.diagbot.util.GsonUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -22,10 +21,11 @@ import reactor.core.publisher.Mono;
|
|
|
|
|
|
import java.net.URI;
|
|
|
import java.nio.charset.StandardCharsets;
|
|
|
-import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
import java.util.Iterator;
|
|
|
import java.util.LinkedHashSet;
|
|
|
import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
/**
|
|
|
* @Description: 全局过滤器
|
|
@@ -38,7 +38,7 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
|
|
|
private static final String GATE_WAY_PREFIX = "/api";
|
|
|
private static final Boolean IS_GENERATE = false;
|
|
|
- private static List<String> SERVICE_FILTER = new ArrayList<>();
|
|
|
+ private static Map<String, Long> SERVICE_FILTER = new HashMap<>();
|
|
|
|
|
|
@Autowired
|
|
|
UserServiceClient userServiceClient;
|
|
@@ -65,20 +65,21 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
}
|
|
|
log.info("APIURL:{}", requestUri);
|
|
|
log.info("SERVICENAME:{}", serviceName);
|
|
|
- //
|
|
|
|
|
|
-// if(!IS_GENERATE) {
|
|
|
-// SERVICE_FILTER = diagbotmanServiceClient.getAll().data;
|
|
|
-// }
|
|
|
-// if(SERVICE_FILTER.contains(serviceName)) {
|
|
|
-// String appkey = request.getHeaders().getFirst("appkey");
|
|
|
-// String secret = request.getHeaders().getFirst("secret");
|
|
|
-// //获取appkey,secret对应的
|
|
|
-// RespDTO<Permission> res = userServiceClient.getPermission(appkey, secret);
|
|
|
-// }
|
|
|
-// if(1 == 1) {
|
|
|
-// throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "出错了!");
|
|
|
-// }
|
|
|
+ if(!IS_GENERATE) {
|
|
|
+ List<ServiceFilter> list = diagbotmanServiceClient.getAll().data;
|
|
|
+ for(ServiceFilter bean : list) {
|
|
|
+ SERVICE_FILTER.put(bean.getName(), bean.getProductId());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(SERVICE_FILTER.get(serviceName) != null) {
|
|
|
+ String appkey = request.getHeaders().getFirst("appkey");
|
|
|
+ String secret = request.getHeaders().getFirst("secret");
|
|
|
+ Long productId = SERVICE_FILTER.get(SERVICE_FILTER.get(serviceName));
|
|
|
+
|
|
|
+ //获取appkey,secret对应的
|
|
|
+ RespDTO<Boolean> res = diagbotmanServiceClient.hasPermission(appkey, secret, productId);
|
|
|
+ }
|
|
|
|
|
|
// if(1==1){
|
|
|
// return getVoidMono(serverWebExchange, CommonErrorCode.NO_PERMISSION);
|