|
@@ -1,7 +1,7 @@
|
|
package com.diagbot.filter;
|
|
package com.diagbot.filter;
|
|
|
|
|
|
|
|
+import com.diagbot.client.DiagbotmanServiceClient;
|
|
import com.diagbot.client.UserServiceClient;
|
|
import com.diagbot.client.UserServiceClient;
|
|
-import com.diagbot.dto.RespDTO;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
|
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
|
@@ -13,9 +13,10 @@ import org.springframework.web.server.ServerWebExchange;
|
|
import reactor.core.publisher.Mono;
|
|
import reactor.core.publisher.Mono;
|
|
|
|
|
|
import java.net.URI;
|
|
import java.net.URI;
|
|
-import java.security.Permission;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.Iterator;
|
|
import java.util.LinkedHashSet;
|
|
import java.util.LinkedHashSet;
|
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Description: 全局过滤器
|
|
* @Description: 全局过滤器
|
|
@@ -27,9 +28,13 @@ import java.util.LinkedHashSet;
|
|
public class GlobalGatewayFilter implements GlobalFilter {
|
|
public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
|
|
|
private static final String GATE_WAY_PREFIX = "/api";
|
|
private static final String GATE_WAY_PREFIX = "/api";
|
|
|
|
+ private static final Boolean IS_GENERATE = false;
|
|
|
|
+ private static List<String> SERVICE_FILTER = new ArrayList<>();
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
UserServiceClient userServiceClient;
|
|
UserServiceClient userServiceClient;
|
|
|
|
+ @Autowired
|
|
|
|
+ DiagbotmanServiceClient diagbotmanServiceClient;
|
|
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -37,10 +42,6 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
log.info("check token and url permission....");
|
|
log.info("check token and url permission....");
|
|
LinkedHashSet requiredAttribute = serverWebExchange.getRequiredAttribute(ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
|
|
LinkedHashSet requiredAttribute = serverWebExchange.getRequiredAttribute(ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
|
|
ServerHttpRequest request = serverWebExchange.getRequest();
|
|
ServerHttpRequest request = serverWebExchange.getRequest();
|
|
- String appkey = request.getHeaders().getFirst("appkey");
|
|
|
|
- String secret = request.getHeaders().getFirst("secret");
|
|
|
|
- //获取appkey,secret对应的
|
|
|
|
- RespDTO<Permission> res = userServiceClient.getPermission(appkey, secret);
|
|
|
|
String requestUri = request.getPath().pathWithinApplication().value();
|
|
String requestUri = request.getPath().pathWithinApplication().value();
|
|
String serviceName = "";
|
|
String serviceName = "";
|
|
if (requiredAttribute != null) {
|
|
if (requiredAttribute != null) {
|
|
@@ -56,11 +57,23 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
log.info("APIURL:{}", requestUri);
|
|
log.info("APIURL:{}", requestUri);
|
|
log.info("SERVICENAME:{}", serviceName);
|
|
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, "出错了!");
|
|
|
|
+// }
|
|
|
|
+
|
|
ServerHttpRequest.Builder builder = serverWebExchange.getRequest().mutate();
|
|
ServerHttpRequest.Builder builder = serverWebExchange.getRequest().mutate();
|
|
builder.header("Authorization","Authorization Bearer token");
|
|
builder.header("Authorization","Authorization Bearer token");
|
|
gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
|
|
gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
|
|
-
|
|
|
|
-
|
|
|
|
return gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
|
|
return gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
|
|
}
|
|
}
|
|
}
|
|
}
|