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 * @return RequestId
*/ */
private String getRequestId(){ 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头获取 // 因为如果有网关,则一般会从网关传递过来,所以优先从header头获取
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if(attributes != null && StringUtils.hasText(attributes.getRequest().getHeader("x-request-id"))) {
HttpServletRequest request = attributes.getRequest(); HttpServletRequest request = attributes.getRequest();
String requestId = request.getHeader("x-request-id"); String requestId = request.getHeader("x-request-id");
UUID uuid = UUID.fromString(requestId); UUID uuid = UUID.fromString(requestId);
RequestIdUtils.generateRequestId(uuid); RequestIdUtils.generateRequestId(uuid);
return requestId; 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; import java.util.concurrent.Executor;
public class MdcExecutor implements Executor { public class MdcExecutor implements Executor {
private Executor executor; private Executor executor;
public MdcExecutor(Executor executor) { public MdcExecutor(Executor executor) {
this.executor = executor; this.executor = executor;
} }
@Override @Override
public void execute(Runnable command) { public void execute(Runnable command) {
final String requestId = MDC.get("REQUEST_ID"); final String requestId = MDC.get("REQUEST_ID");

Loading…
Cancel
Save