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,21 +120,21 @@ public class ApiMessageAdvisor {
* @return RequestId * @return RequestId
*/ */
private String getRequestId(){ private String getRequestId(){
// 因为如果有网关,则一般会从网关传递过来,所以优先从header头获取
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if(attributes == null || !StringUtils.hasText(attributes.getRequest().getHeader("x-request-id"))) { if(attributes != null && StringUtils.hasText(attributes.getRequest().getHeader("x-request-id"))) {
RequestIdUtils.generateRequestId(); HttpServletRequest request = attributes.getRequest();
return RequestIdUtils.getRequestId().toString(); String requestId = request.getHeader("x-request-id");
UUID uuid = UUID.fromString(requestId);
RequestIdUtils.generateRequestId(uuid);
return requestId;
} }
UUID existUUID = RequestIdUtils.getRequestId(); UUID existUUID = RequestIdUtils.getRequestId();
if(existUUID != null){ if(existUUID != null){
return existUUID.toString(); return existUUID.toString();
} }
// 因为如果有网关,则一般会从网关传递过来,所以优先从header头获取 RequestIdUtils.generateRequestId();
HttpServletRequest request = attributes.getRequest(); return RequestIdUtils.getRequestId().toString();
String requestId = request.getHeader("x-request-id");
UUID uuid = UUID.fromString(requestId);
RequestIdUtils.generateRequestId(uuid);
return requestId;
} }
/** /**

@ -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