Browse Source

修改:CPAuthxxx,增加打印header列表,给gateway日志绑定tranSerail

master
wxz 4 years ago
parent
commit
54acd64931
  1. 60
      epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java

60
epmet-gateway/src/main/java/com/epmet/filter/CpAuthGatewayFilterFactory.java

@ -68,18 +68,25 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory<CpA
return chain.filter(exchange);
}
//1.添加流水号
ServerHttpRequest request = exchange.getRequest();
List<String> tranSerials = request.getHeaders().get(AppClientConstant.TRANSACTION_SERIAL_KEY);
if (CollectionUtils.isEmpty(tranSerials) || StringUtils.isBlank(tranSerials.get(0))) {
request.mutate().header(AppClientConstant.TRANSACTION_SERIAL_KEY, new String[]{getTransactionSerial()});
//0.添加流水号
String tranSerial = getTranserialFromRequestHeader(request);
if (StringUtils.isBlank(tranSerial)) {
tranSerial = generateTransactionSerial();
// 设置当前线程名
request.mutate().header(AppClientConstant.TRANSACTION_SERIAL_KEY, new String[]{tranSerial});
}
Thread.currentThread().setName(tranSerial);
//1.打印请求信息
logRequest(request);
//2.获取请求路径,参数
String requestUri = request.getPath().pathWithinApplication().value();
MultiValueMap<String, String> queryParams = request.getQueryParams();
String queryParamsStr = convertQueryParams2String(queryParams);
logger.info("CpAuthGatewayFilterFactory当前requestUri=[" + requestUri.concat(queryParamsStr) + "],CpAuthGatewayFilterFactory拦截成功,客户端Id:{}", IpUtils.getClientIp(request));
logger.info("当前requestUri=[" + requestUri.concat(queryParamsStr) + "],客户端Id:{}", IpUtils.getClientIp(request));
//3.认证
String authType = getAuthType(request);
@ -109,6 +116,36 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory<CpA
};
}
/**
* @Description 打印请求头
* @param request 请求
* @return void
* @author wxz
* @date 2021.08.18 11:18:00
*/
private void logRequest(ServerHttpRequest request) {
HttpHeaders headers = request.getHeaders();
StringBuilder sb = new StringBuilder("请求头:");
for (Map.Entry<String, List<String>> entry : headers.entrySet()) {
String headerKey = entry.getKey();
List<String> headerValue = entry.getValue();
sb.append(headerKey).append(":").append(headerValue).append(",");
}
logger.info(sb.toString());
}
/**
* @Description 从request请求头中获取传递过来的流水号
* @param request
* @return java.lang.String
* @author wxz
* @date 2021.08.18 15:55:30
*/
private String getTranserialFromRequestHeader(ServerHttpRequest request) {
List<String> tranSerials = request.getHeaders().get(AppClientConstant.TRANSACTION_SERIAL_KEY);
return CollectionUtils.isEmpty(tranSerials) ? null : tranSerials.get(0);
}
/**
* @return
* @Description 将url参数转化为String
@ -181,23 +218,12 @@ public class CpAuthGatewayFilterFactory extends AbstractGatewayFilterFactory<CpA
return AuthTypeConstant.AUTH_TYPE_INTERNAL;
}
/**
* 获取请求头
*
* @param request
* @return
*/
private String getHeader(ServerHttpRequest request, String headerName) {
HttpHeaders headers = request.getHeaders();
return headers.getFirst(headerName);
}
/**
* 获取事务流水号
*
* @return
*/
public static String getTransactionSerial() {
public static String generateTransactionSerial() {
String[] letterPool = {"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n"
, "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"};

Loading…
Cancel
Save