|
@@ -2,7 +2,6 @@ package com.diagbot.filter;
|
|
|
|
|
|
import com.diagbot.client.UserServiceClient;
|
|
|
import com.diagbot.dto.RespDTO;
|
|
|
-import com.diagbot.entity.User;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
|
@@ -14,6 +13,7 @@ import org.springframework.web.server.ServerWebExchange;
|
|
|
import reactor.core.publisher.Mono;
|
|
|
|
|
|
import java.net.URI;
|
|
|
+import java.security.Permission;
|
|
|
import java.util.Iterator;
|
|
|
import java.util.LinkedHashSet;
|
|
|
|
|
@@ -25,15 +25,22 @@ import java.util.LinkedHashSet;
|
|
|
@Configuration
|
|
|
@Slf4j
|
|
|
public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
+
|
|
|
private static final String GATE_WAY_PREFIX = "/api";
|
|
|
|
|
|
@Autowired
|
|
|
- private UserServiceClient userServiceClient;
|
|
|
+ UserServiceClient userServiceClient;
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public Mono<Void> filter(ServerWebExchange serverWebExchange, GatewayFilterChain gatewayFilterChain) {
|
|
|
log.info("check token and url permission....");
|
|
|
LinkedHashSet requiredAttribute = serverWebExchange.getRequiredAttribute(ServerWebExchangeUtils.GATEWAY_ORIGINAL_REQUEST_URL_ATTR);
|
|
|
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 serviceName = "";
|
|
|
if (requiredAttribute != null) {
|
|
@@ -46,14 +53,14 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- RespDTO<User> userRespDTO = userServiceClient.login("admin","a123456");
|
|
|
log.info("APIURL:{}", requestUri);
|
|
|
log.info("SERVICENAME:{}", serviceName);
|
|
|
//
|
|
|
-
|
|
|
ServerHttpRequest.Builder builder = serverWebExchange.getRequest().mutate();
|
|
|
builder.header("Authorization","Authorization Bearer token");
|
|
|
gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
|
|
|
+
|
|
|
+
|
|
|
return gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
|
|
|
}
|
|
|
}
|