|
@@ -5,6 +5,7 @@ package com.diagbot.filter;
|
|
|
import com.diagbot.biz.log.entity.SysLog;
|
|
|
import com.diagbot.dto.RespDTO;
|
|
|
import com.diagbot.dto.ServiceFilterDTO;
|
|
|
+import com.diagbot.entity.HasPermissionDTO;
|
|
|
import com.diagbot.entity.ServiceFilter;
|
|
|
import com.diagbot.entity.ServiceToken;
|
|
|
import com.diagbot.enums.SysTypeEnum;
|
|
@@ -22,8 +23,12 @@ import org.springframework.cloud.gateway.filter.GatewayFilterChain;
|
|
|
import org.springframework.cloud.gateway.filter.GlobalFilter;
|
|
|
import org.springframework.cloud.gateway.support.ServerWebExchangeUtils;
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
+import org.springframework.core.ParameterizedTypeReference;
|
|
|
import org.springframework.core.io.buffer.DataBuffer;
|
|
|
+import org.springframework.http.HttpEntity;
|
|
|
+import org.springframework.http.HttpMethod;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
+import org.springframework.http.ResponseEntity;
|
|
|
import org.springframework.http.server.reactive.ServerHttpRequest;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
import org.springframework.web.server.ServerWebExchange;
|
|
@@ -35,12 +40,9 @@ import java.nio.charset.StandardCharsets;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.Iterator;
|
|
|
-import java.util.LinkedHashMap;
|
|
|
import java.util.LinkedHashSet;
|
|
|
import java.util.Map;
|
|
|
|
|
|
-//import com.diagbot.entity.HasPermissionDTO;
|
|
|
-
|
|
|
/**
|
|
|
* @Description: 全局过滤器
|
|
|
* @author: gaodm
|
|
@@ -143,7 +145,7 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
st.setSecret(secret);
|
|
|
st.setProductId(productId);
|
|
|
//权限验证
|
|
|
- RespDTO<LinkedHashMap> res = hasPermission(st);
|
|
|
+ RespDTO<HasPermissionDTO> res = hasPermission(st);
|
|
|
if (res == null || !RespDTO.TRUE_CODE.equals(res.code)) {
|
|
|
return getVoidMono(serverWebExchange, res);
|
|
|
}
|
|
@@ -159,8 +161,7 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
sysLog.setOperation(GsonUtil.toJson(serviceFilter));
|
|
|
sysLog.setParams(requestUri);
|
|
|
sysLog.setSysType(SysTypeEnum.APPKEY.getKey());
|
|
|
- LinkedHashMap<String, String> map = res.data;
|
|
|
- sysLog.setUsername(map.get("userId"));
|
|
|
+ sysLog.setUsername(res.data.getUserId());
|
|
|
mySender.outputLogSend(sysLog);
|
|
|
|
|
|
}
|
|
@@ -198,11 +199,15 @@ public class GlobalGatewayFilter implements GlobalFilter {
|
|
|
// }
|
|
|
// return serviceFilters;
|
|
|
// }
|
|
|
- public RespDTO<LinkedHashMap> hasPermission(ServiceToken st) {
|
|
|
+ public RespDTO<HasPermissionDTO> hasPermission(ServiceToken st) {
|
|
|
try {
|
|
|
- RespDTO<LinkedHashMap> res
|
|
|
- = restTemplate.postForObject("http://diagbotman-service/serviceToken/hasPermission", st, RespDTO.class);
|
|
|
- return res;
|
|
|
+ ResponseEntity<RespDTO<HasPermissionDTO>> respDTOResponseEntity
|
|
|
+ = restTemplate.exchange("http://diagbotman-service/serviceToken/hasPermission",
|
|
|
+ HttpMethod.POST,
|
|
|
+ new HttpEntity<ServiceToken>(st),
|
|
|
+ new ParameterizedTypeReference<RespDTO<HasPermissionDTO>>() {
|
|
|
+ });
|
|
|
+ return respDTOResponseEntity.getBody();
|
|
|
} catch (Exception ex) {
|
|
|
return hasPermissionFallback(st);
|
|
|
}
|