|
@@ -4,7 +4,7 @@ import com.diagbot.client.DiagbotmanServiceClient;
|
|
|
import com.diagbot.client.UserServiceClient;
|
|
|
import com.diagbot.dto.RespDTO;
|
|
|
import com.diagbot.entity.ServiceFilter;
|
|
|
-import com.diagbot.exception.ErrorCode;
|
|
|
+import com.diagbot.entity.ServiceToken;
|
|
|
import com.diagbot.util.GsonUtil;
|
|
|
import com.diagbot.util.ListUtil;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
@@ -79,21 +79,21 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- serviceName = "icss";
|
|
|
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));
|
|
|
- productId = 1L;
|
|
|
+ Long productId = SERVICE_FILTER.get(serviceName);
|
|
|
//获取appkey,secret对应的权限信息
|
|
|
- RespDTO<String> res = diagbotmanServiceClient.hasPermission(appkey);
|
|
|
- System.out.println(11);
|
|
|
+ ServiceToken st = new ServiceToken();
|
|
|
+ st.setAppkey(appkey);
|
|
|
+ st.setSecret(secret);
|
|
|
+ st.setProductId(productId);
|
|
|
+ RespDTO<Boolean> res = diagbotmanServiceClient.hasPermission(st);
|
|
|
+ if(res == null || !RespDTO.TRUE_CODE.equals(res.code)) {
|
|
|
+ return getVoidMono(serverWebExchange, res);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-// if(1==1){
|
|
|
-// return getVoidMono(serverWebExchange, CommonErrorCode.NO_PERMISSION);
|
|
|
-// }
|
|
|
-
|
|
|
ServerHttpRequest.Builder builder = serverWebExchange.getRequest().mutate();
|
|
|
builder.header("Authorization","Authorization Bearer token");
|
|
|
gatewayFilterChain.filter(serverWebExchange.mutate().request(builder.build()).build());
|
|
@@ -103,13 +103,12 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
/**
|
|
|
* 网关抛异常
|
|
|
*
|
|
|
- * @param body
|
|
|
*/
|
|
|
- private Mono<Void> getVoidMono(ServerWebExchange serverWebExchange, ErrorCode body) {
|
|
|
+ private Mono<Void> getVoidMono(ServerWebExchange serverWebExchange, RespDTO res) {
|
|
|
RespDTO resp = new RespDTO();
|
|
|
serverWebExchange.getResponse().setStatusCode(HttpStatus.OK);
|
|
|
- resp.msg = body.getMsg();
|
|
|
- resp.code = body.getCode();
|
|
|
+ resp.msg = res.msg;
|
|
|
+ resp.code = res.code;
|
|
|
resp.data = "";
|
|
|
byte[] bytes = GsonUtil.toJson(resp).getBytes(StandardCharsets.UTF_8);
|
|
|
DataBuffer buffer = serverWebExchange.getResponse().bufferFactory().wrap(bytes);
|