fix 添加request-id

master
陈景阳 4 years ago
parent 9cbaf94285
commit cacce79dca
  1. 18
      src/main/java/org/anyin/gitee/shiro/advisor/ApiMessageAdvisor.java
  2. 3
      src/main/java/org/anyin/gitee/shiro/base/MdcExecutor.java

@ -120,22 +120,22 @@ public class ApiMessageAdvisor {
* @return RequestId
*/
private String getRequestId(){
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if(attributes == null || !StringUtils.hasText(attributes.getRequest().getHeader("x-request-id"))) {
RequestIdUtils.generateRequestId();
return RequestIdUtils.getRequestId().toString();
}
UUID existUUID = RequestIdUtils.getRequestId();
if(existUUID != null){
return existUUID.toString();
}
// 因为如果有网关,则一般会从网关传递过来,所以优先从header头获取
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if(attributes != null && StringUtils.hasText(attributes.getRequest().getHeader("x-request-id"))) {
HttpServletRequest request = attributes.getRequest();
String requestId = request.getHeader("x-request-id");
UUID uuid = UUID.fromString(requestId);
RequestIdUtils.generateRequestId(uuid);
return requestId;
}
UUID existUUID = RequestIdUtils.getRequestId();
if(existUUID != null){
return existUUID.toString();
}
RequestIdUtils.generateRequestId();
return RequestIdUtils.getRequestId().toString();
}
/**
* 获取当前接口对应的类名和方法名

@ -5,13 +5,10 @@ import org.slf4j.MDC;
import java.util.concurrent.Executor;
public class MdcExecutor implements Executor {
private Executor executor;
public MdcExecutor(Executor executor) {
this.executor = executor;
}
@Override
public void execute(Runnable command) {
final String requestId = MDC.get("REQUEST_ID");

Loading…
Cancel
Save