diff --git a/api-common/src/main/java/com/heyu/api/common/LogAspect.java b/api-common/src/main/java/com/heyu/api/common/LogAspect.java new file mode 100644 index 0000000..772a3a2 --- /dev/null +++ b/api-common/src/main/java/com/heyu/api/common/LogAspect.java @@ -0,0 +1,6 @@ +package com.heyu.api.common; + +public class LogAspect { + public static ThreadLocal threadLocalNo = new ThreadLocal(); + public static ThreadLocal threadLocalTime = new ThreadLocal(); +} diff --git a/api-common/src/main/java/com/heyu/api/common/LogClassicConverter.java b/api-common/src/main/java/com/heyu/api/common/LogClassicConverter.java new file mode 100644 index 0000000..f644d08 --- /dev/null +++ b/api-common/src/main/java/com/heyu/api/common/LogClassicConverter.java @@ -0,0 +1,25 @@ +package com.heyu.api.common; + +import ch.qos.logback.classic.pattern.ClassicConverter; +import ch.qos.logback.classic.spi.ILoggingEvent; + +public class LogClassicConverter extends ClassicConverter { + + + @Override + public String convert(ILoggingEvent event) { + if (LogAspect.threadLocalNo != null && LogAspect.threadLocalNo.get() != null) { + StringBuffer sb = new StringBuffer(); + sb.append("[").append(LogAspect.threadLocalNo.get()); + Long start = LogAspect.threadLocalTime.get(); + Long end; + if (start != null) { + end = System.currentTimeMillis(); + sb.append(",").append(end - start); + } + sb.append("]"); + return sb.toString(); + } + return ""; + } +} diff --git a/api-gateway/src/main/java/com/heyu/api/gateway/filter/AuthWebFilter.java b/api-gateway/src/main/java/com/heyu/api/gateway/filter/AuthWebFilter.java index e4ce050..e3d5490 100644 --- a/api-gateway/src/main/java/com/heyu/api/gateway/filter/AuthWebFilter.java +++ b/api-gateway/src/main/java/com/heyu/api/gateway/filter/AuthWebFilter.java @@ -88,14 +88,15 @@ public class AuthWebFilter implements WebFilter { String realIpAddress = getRealIpAddress(request); String m = request.getMethod().toString(); - log.info("AuthWebFilter api start time:{} ip:{} method:{} url:{},uri:{} param:{} headers:{}", + log.info("AuthWebFilter api start time:{} ip:{} method:{} url:{},uri:{} param:{} headers:{},xForwardedPath:{}", startTime, realIpAddress, m, request.getPath(), uri, request.getQueryParams(), - httpHeaders + httpHeaders, + xForwardedPath ); if(xssProperties.getEnabled()) { @@ -196,8 +197,8 @@ public class AuthWebFilter implements WebFilter { ServerHttpRequest request = exchange.getRequest(); if (StringUtils.isNotEmpty(xForwardedPath)) { String originXForwardedPath = xForwardedPath; - if (xForwardedPath.contains(ApiConstants.API_USER)) { - xForwardedPath = "/" + ApiConstants.API_USER + xForwardedPath.split(ApiConstants.API_USER)[1]; + if (xForwardedPath.contains(ApiConstants.API_INTERFACE)) { + xForwardedPath = "/" + ApiConstants.API_INTERFACE + xForwardedPath.split(ApiConstants.API_INTERFACE)[1]; } log.info("getRequest xForwardedPath is not null originXForwardedPath:{},xForwardedPath:{}",originXForwardedPath, xForwardedPath); request = request.mutate().path(xForwardedPath).build(); diff --git a/api-gateway/src/main/java/com/heyu/api/gateway/util/ApiConstants.java b/api-gateway/src/main/java/com/heyu/api/gateway/util/ApiConstants.java index a1a7ba8..7b4fb6e 100644 --- a/api-gateway/src/main/java/com/heyu/api/gateway/util/ApiConstants.java +++ b/api-gateway/src/main/java/com/heyu/api/gateway/util/ApiConstants.java @@ -86,7 +86,7 @@ public class ApiConstants { public static final String ECHOBACK = "echoback"; public static final String X_FORWARDED_PATH = "X-Forwarded-Path"; - public static final String API_USER = "api-user"; + public static final String API_INTERFACE = "api-interface"; } diff --git a/api-gateway/src/main/resources/log/logback-dev.xml b/api-gateway/src/main/resources/log/logback-dev.xml index 1281941..99316a2 100644 --- a/api-gateway/src/main/resources/log/logback-dev.xml +++ b/api-gateway/src/main/resources/log/logback-dev.xml @@ -3,7 +3,7 @@ - + diff --git a/api-gateway/src/main/resources/log/logback-online.xml b/api-gateway/src/main/resources/log/logback-online.xml index c3989d4..844ff8e 100644 --- a/api-gateway/src/main/resources/log/logback-online.xml +++ b/api-gateway/src/main/resources/log/logback-online.xml @@ -3,7 +3,7 @@ - + diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/OrderUtil.java b/api-mapper/src/main/java/com/heyu/api/data/utils/OrderUtil.java index b987dd5..2753226 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/OrderUtil.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/OrderUtil.java @@ -4,7 +4,6 @@ package com.heyu.api.data.utils; import lombok.extern.slf4j.Slf4j; import java.text.SimpleDateFormat; -import java.util.Date; @Slf4j public class OrderUtil { @@ -14,9 +13,6 @@ public class OrderUtil { public static String getUserPoolOrder(String pre) { SimpleDateFormat dateformat = new SimpleDateFormat("SSSyyyyMMddHHmmss"); StringBuffer sb = new StringBuffer(); - if (EnvUtils.isLinux(SpringContextUtils.getActiveProfile())) { - sb.append(DateUtils.dateStr(DateUtils.addHours(new Date(), 8), DateUtils.YYYY_MM_DD_HH_MM_SS_SSS_str)).append("_"); - } sb.append(pre); return sb. append((int) (Math.random() * 1000)).append(dateformat.format(System.currentTimeMillis())).toString(); diff --git a/api-mapper/src/main/java/com/heyu/api/data/utils/R.java b/api-mapper/src/main/java/com/heyu/api/data/utils/R.java index 22451af..1aa2cf7 100644 --- a/api-mapper/src/main/java/com/heyu/api/data/utils/R.java +++ b/api-mapper/src/main/java/com/heyu/api/data/utils/R.java @@ -1,9 +1,8 @@ package com.heyu.api.data.utils; -import com.heyu.api.data.constants.ApiConstants; +import com.heyu.api.common.LogAspect; import com.heyu.api.data.dto.RespCode; -import org.slf4j.MDC; import java.util.HashMap; import java.util.Map; @@ -25,11 +24,11 @@ public class R { private String msg; // 联系方式 - private String contactUs = "如果接口有疑问请加微信 fmai0923,shell_quyixiao,wulinq,或 致电18969093321,或发邮" + - "件service@ihzhy.com,如需咨询技术问题,请提供traceId"; + //private String contactUs = "如果接口有疑问请加微信 fmai0923,shell_quyixiao,wulinq,或 致电18969093321,或发邮" + +// "件service@ihzhy.com,如需咨询技术问题,请提供traceId"; // 官网地址 - private String officialWebsiteAddress = "https://www.ihzhy.com"; + // private String officialWebsiteAddress = "https://www.ihzhy.com"; /** * 日志编号 @@ -39,7 +38,9 @@ public class R { public R() { this.code = RespCode.SUCCESS.code; this.msg = RespCode.SUCCESS.msg; - this.traceId = MDC.get(ApiConstants.TRACE_ID); + if (LogAspect.threadLocalNo != null) { + this.traceId = LogAspect.threadLocalNo.get(); + } } public R(RespCode respCode) { @@ -147,22 +148,5 @@ public class R { this.traceId = traceId; } - - public String getContactUs() { - return contactUs; - } - - public void setContactUs(String contactUs) { - this.contactUs = contactUs; - } - - public String getOfficialWebsiteAddress() { - return officialWebsiteAddress; - } - - public void setOfficialWebsiteAddress(String officialWebsiteAddress) { - this.officialWebsiteAddress = officialWebsiteAddress; - } - } diff --git a/api-third/pom.xml b/api-third/pom.xml index 2ae427a..4fecb8c 100644 --- a/api-third/pom.xml +++ b/api-third/pom.xml @@ -22,126 +22,5 @@ - - com.aliyun - facebody20200910 - 3.0.0 - - - - - com.aliyun - ocr20191230 - 2.0.1 - - - - com.aliyun - imageaudit20191230 - 2.0.6 - - - - - com.aliyun - imageseg20191230 - 2.0.2 - - - - - com.aliyun - goodstech20191230 - 1.0.3 - - - - com.aliyun - facebody20191230 - 5.1.2 - - - - - com.aliyun - imagerecog20190930 - 1.0.11 - - - - com.aliyun - imageenhan20190930 - 1.0.12 - - - - com.aliyun - objectdet20191230 - 2.0.14 - - - - com.aliyun - viapi-utils - 1.0.2 - - - - - com.aliyun - viapi20230117 - 2.0.1 - - - - com.aliyun - tea-openapi - 0.3.6 - - - com.aliyun - tea-console - 0.0.1 - - - com.aliyun - tea-util - 0.2.23 - - - - - com.aliyun - alibabacloud-cloudauth20190307 - 2.0.6 - - - - com.aliyun - cloudauth20190307 - 3.4.1 - - - - - com.tencentcloudapi - tencentcloud-sdk-java-faceid - 3.1.1189 - - - - - com.squareup.okhttp3 - okhttp - 4.2.0 - - - - - org.jetbrains.kotlin - kotlin-stdlib - 1.2.71 - - diff --git a/api-third/src/main/java/com/heyu/api/alibaba/AlibabaBaseHandle.java b/api-third/src/main/java/com/heyu/api/alibaba/AlibabaBaseHandle.java index f0c4e4e..7e6d6b8 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/AlibabaBaseHandle.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/AlibabaBaseHandle.java @@ -1,5 +1,6 @@ package com.heyu.api.alibaba; +import com.alibaba.fastjson.JSON; import com.heyu.api.alibaba.request.ACommonTextRequest; import com.heyu.api.data.dto.ImageInfoModel; import com.heyu.api.data.utils.*; @@ -33,6 +34,7 @@ public abstract class AlibabaBaseHandle { } } Object resp = run(p, runtime); + log.info(this.getClass().getSimpleName() + " handle resp:{}", JSON.toJSONString(resp)); if (resp != null) { if (resp instanceof String) { return ApiR.error((String) resp); diff --git a/api-third/src/main/java/com/heyu/api/alibaba/handle/common/text/ABankMetaVerifyHandle.java b/api-third/src/main/java/com/heyu/api/alibaba/handle/common/text/ABankMetaVerifyHandle.java index 637f382..c9ab93c 100644 --- a/api-third/src/main/java/com/heyu/api/alibaba/handle/common/text/ABankMetaVerifyHandle.java +++ b/api-third/src/main/java/com/heyu/api/alibaba/handle/common/text/ABankMetaVerifyHandle.java @@ -1,5 +1,6 @@ package com.heyu.api.alibaba.handle.common.text; +import com.alibaba.fastjson.JSON; import com.aliyun.cloudauth20190307.models.BankMetaVerifyRequest; import com.aliyun.cloudauth20190307.models.BankMetaVerifyResponse; import com.aliyun.teautil.models.RuntimeOptions; @@ -13,6 +14,12 @@ import org.springframework.stereotype.Component; /**** * https://next.api.aliyun.com/api/Cloudauth/2019-03-07/BankMetaVerify?tab=DOC&lang=JAVA + * + * 银行卡二,三,四要素核验 + * + * BankMetaVerify + * + * */ @Component @Slf4j @@ -84,6 +91,7 @@ public class ABankMetaVerifyHandle extends AlibabaBaseHandle { diff --git a/api-web/api-interface/src/main/java/com/heyu/api/aop/LogAop.java b/api-web/api-interface/src/main/java/com/heyu/api/aop/LogAop.java index 06a46b5..fedc236 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/aop/LogAop.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/aop/LogAop.java @@ -2,7 +2,7 @@ package com.heyu.api.aop; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; - +import com.heyu.api.common.LogAspect; import com.heyu.api.data.constants.ApiConstants; import com.heyu.api.data.dto.AccountDTO; import com.heyu.api.data.dto.BaseReq; @@ -30,10 +30,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import java.lang.reflect.Method; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 日志aop @@ -79,6 +76,11 @@ public class LogAop { try { ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes(); String traceId = attributes.getRequest().getHeader("traceId"); + if(StringUtils.isBlank(traceId)){ + traceId = OrderUtil.getUserPoolOrder("on"); + } + LogAspect.threadLocalNo.set(traceId); + LogAspect.threadLocalTime.set(System.currentTimeMillis()); HttpServletRequest request = attributes.getRequest(); uri = attributes.getRequest().getRequestURI(); @@ -149,30 +151,28 @@ public class LogAop { log.error("LogAop set error " + sb.toString(), e); } finally { printLog(result, args, ip, className, methodName, uri); + LogAspect.threadLocalNo.remove(); + LogAspect.threadLocalTime.remove(); } return result; } - public Object printLog(Object result, String args, String ip, String className, String methodName, + public void printLog(Object result, String args, String ip, String className, String methodName, String preUri) { - doPrintLog(args, ip, preUri, className, methodName, result); - return result; - } - public void doPrintLog(String args, String ip, String uri, - String className, String methodName, Object result) { StringBuilder sb = new StringBuilder(); sb.append("LoggerAop args:").append(args).append(BLANK_SPACE) .append("ip:").append(ip).append(BLANK_SPACE) .append("class:").append(className).append("#").append(methodName).append(BLANK_SPACE) - .append("uri:").append(uri).append(BLANK_SPACE) + .append("uri:").append(preUri).append(BLANK_SPACE) .append("result:").append(JSON.toJSONString(result)); log.info(sb.toString()); } + public Object tokenVerify(String tokenInfoStr, String args, String ip, String className, String methodName, String uri, String token, String traceId, ProceedingJoinPoint point) { TokenDTO tokenDTO = JSONObject.parseObject(tokenInfoStr, TokenDTO.class); diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/bankcard/BankCard2MetaController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/bankcard/BankCard2MetaController.java index 71208c8..54ecb20 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/bankcard/BankCard2MetaController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/bankcard/BankCard2MetaController.java @@ -33,6 +33,11 @@ import org.springframework.web.bind.annotation.RestController; * * * 银行卡二要素核验 + * + * + * 银行卡二,三,四要素核验 + * + * BankMetaVerify */ @Slf4j @RestController @@ -46,7 +51,9 @@ public class BankCard2MetaController extends BaseController { @Autowired private TBankCard2EVerificationHandle tBankCard2EVerificationHandle; + // http://localhost:8888/bank/card/2/verify?bankCardNumber=6214855713516769&realName=瞿贻晓 + // https://api.1024api.com/api-interface/bank/card/2/verify?bankCardNumber=6214855713516769&realName=瞿贻晓 @RequestMapping("/verify") @CacheResult(exclude = {"验证中心服务繁忙","验证次数超限,请次日重试"}) public R verify(BankCard2MetaRequest bankCard2MetaRequest) { @@ -87,7 +94,7 @@ public class BankCard2MetaController extends BaseController { return R.ok().setData(bankCard2MetaResp); } } - return R.error(); + return R.error(tR.getErrorMsg()); } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/bankcard/BankCardRecognizeController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/bankcard/BankCardRecognizeController.java index de6abf2..df403f2 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/bankcard/BankCardRecognizeController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/bankcard/BankCardRecognizeController.java @@ -20,9 +20,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import java.util.HashMap; -import java.util.Map; - /*** * * https://next.api.aliyun.com/api/ocr/2019-12-30/RecognizeBankCard?RegionId=cn-shanghai&tab=DOC&lang=JAVA @@ -45,7 +42,6 @@ public class BankCardRecognizeController extends BaseController { @Autowired private BBankcardHandle bBankcardHandle; - public final static Map resultDesc = new HashMap<>(); @RequestMapping("/recognize") diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardSecondCheckController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardSecondCheckController.java index e212b49..7ccdf35 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardSecondCheckController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/idcard/IdCardSecondCheckController.java @@ -28,7 +28,7 @@ public class IdCardSecondCheckController { @Autowired private TIdCardVerificationHandle idCardVerificationHandle; - + // http://localhost:8888/id/card/certification?idCardNumber=430529199209255030&realName=瞿贻晓 @RequestMapping("/certification") @CacheResult public R certification(ApiIdentityCardSecondRequest apiIdentityCardRequest) { diff --git a/api-web/api-interface/src/main/resources/bootstrap.yml b/api-web/api-interface/src/main/resources/bootstrap.yml index 5b2aae5..e5fcc30 100644 --- a/api-web/api-interface/src/main/resources/bootstrap.yml +++ b/api-web/api-interface/src/main/resources/bootstrap.yml @@ -61,8 +61,8 @@ eb: tencent: face: - ak: zs9oN4gSuoS3eK8dVJg6jyKh - sk: uHIRXkj6rbW1eXy8eRVCeP1e3cRQKXay + ak: AKIDCxZyA9xZx8D6lFZfcLsBHH3e1A8uTqzu + sk: mJcjcIkz0nPnyxlMkupW1MUP7brthHjz endpoint: faceid.tencentcloudapi.com aliyun: diff --git a/api-web/api-interface/src/main/resources/log/logback-dev.xml b/api-web/api-interface/src/main/resources/log/logback-dev.xml index 7533b23..417c8e9 100644 --- a/api-web/api-interface/src/main/resources/log/logback-dev.xml +++ b/api-web/api-interface/src/main/resources/log/logback-dev.xml @@ -6,9 +6,15 @@ + + + + + + value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{X-B3-TraceId:-},%X{X-B3-SpanId:-}] [%thread]%-5level %F:%L %convertMessage %msg%n"/> diff --git a/api-web/api-interface/src/main/resources/log/logback-online.xml b/api-web/api-interface/src/main/resources/log/logback-online.xml index 7fa04b8..2640bf8 100644 --- a/api-web/api-interface/src/main/resources/log/logback-online.xml +++ b/api-web/api-interface/src/main/resources/log/logback-online.xml @@ -6,9 +6,15 @@ + + + + + + value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%X{X-B3-TraceId:-},%X{X-B3-SpanId:-}] [%thread]%-5level %F:%L %convertMessage %msg%n"/> diff --git a/api-web/api-job/src/main/resources/bootstrap.yml b/api-web/api-job/src/main/resources/bootstrap.yml index 808d1a3..3d58298 100644 --- a/api-web/api-job/src/main/resources/bootstrap.yml +++ b/api-web/api-job/src/main/resources/bootstrap.yml @@ -61,6 +61,6 @@ oss: tencent: face: - ak: zs9oN4gSuoS3eK8dVJg6jyKh - sk: uHIRXkj6rbW1eXy8eRVCeP1e3cRQKXay + ak: AKIDCxZyA9xZx8D6lFZfcLsBHH3e1A8uTqzu + sk: mJcjcIkz0nPnyxlMkupW1MUP7brthHjz endpoint: faceid.tencentcloudapi.com \ No newline at end of file diff --git a/pom.xml b/pom.xml index 242d2e6..74b964e 100644 --- a/pom.xml +++ b/pom.xml @@ -217,6 +217,139 @@ + + + + com.aliyun + facebody20200910 + 3.0.0 + + + + + com.aliyun + ocr20191230 + 2.0.1 + + + + com.aliyun + imageaudit20191230 + 2.0.6 + + + + + com.aliyun + imageseg20191230 + 2.0.2 + + + + + com.aliyun + goodstech20191230 + 1.0.3 + + + + com.aliyun + facebody20191230 + 5.1.2 + + + + + com.aliyun + imagerecog20190930 + 1.0.11 + + + + com.aliyun + imageenhan20190930 + 1.0.12 + + + + com.aliyun + objectdet20191230 + 2.0.14 + + + + com.aliyun + viapi-utils + 1.0.2 + + + + + com.aliyun + viapi20230117 + 2.0.1 + + + + com.aliyun + tea-openapi + 0.3.6 + + + com.aliyun + tea-console + 0.0.1 + + + com.aliyun + tea-util + 0.2.23 + + + + + + com.aliyun + alibabacloud-cloudauth20190307 + 2.0.6 + + + + com.aliyun + cloudauth20190307 + 3.4.1 + + + + + com.tencentcloudapi + tencentcloud-sdk-java-faceid + 3.1.1189 + + + + + com.squareup.okhttp3 + okhttp + 4.2.0 + + + + + org.jetbrains.kotlin + kotlin-stdlib + 1.2.71 + + + + + + com.aliyun + credentials-java + 0.3.0 + + +