日志处理, 异常处理
This commit is contained in:
@@ -168,5 +168,7 @@
|
|||||||
<orderEntry type="library" name="Maven: com.aliyun:tea-fileform:0.0.3" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:tea-fileform:0.0.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.aliyun:darabonba-array:0.1.0" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:darabonba-array:0.1.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.aliyun:darabonba-number:0.0.3" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:darabonba-number:0.0.3" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.9.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.5" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
@@ -72,6 +72,14 @@
|
|||||||
<groupId>com.aliyun</groupId>
|
<groupId>com.aliyun</groupId>
|
||||||
<artifactId>ocr20191230</artifactId>
|
<artifactId>ocr20191230</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjrt</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjweaver</artifactId>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
@@ -0,0 +1,66 @@
|
|||||||
|
package com.cool.store.mq;
|
||||||
|
|
||||||
|
|
||||||
|
import com.aliyun.openservices.ons.api.Constants;
|
||||||
|
import com.aliyun.openservices.ons.api.Message;
|
||||||
|
import com.cool.store.constants.CommonConstants;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.aspectj.lang.JoinPoint;
|
||||||
|
import org.aspectj.lang.annotation.AfterReturning;
|
||||||
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
|
import org.aspectj.lang.annotation.Before;
|
||||||
|
import org.aspectj.lang.annotation.Pointcut;
|
||||||
|
import org.slf4j.MDC;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 切面处理类,操作日志异常日志记录处理
|
||||||
|
* @author jiangjixiang
|
||||||
|
*/
|
||||||
|
@Aspect
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class RocketMqLogAspect {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置操作异常切入点记录异常日志 扫描所有controller包下操作
|
||||||
|
*/
|
||||||
|
@Pointcut(value = "execution(public * com.cool.store.mq.consumer.listener..*.consume(..))")
|
||||||
|
public void rocketMqMdc() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 正常返回通知,拦截用户操作日志,连接点正常执行完成后执行, 如果连接点抛出异常,则不会执行
|
||||||
|
*
|
||||||
|
* @param joinPoint 切入点
|
||||||
|
* @param keys 返回结果
|
||||||
|
*/
|
||||||
|
@Before(value = "rocketMqMdc()")
|
||||||
|
public void mqBeforeLog(JoinPoint joinPoint) {
|
||||||
|
try {
|
||||||
|
Object[] args = joinPoint.getArgs();
|
||||||
|
Message message = (Message)args[0];
|
||||||
|
String traceId = message.getMsgID() + Constants.TOPIC_PARTITION_SEPARATOR + message.getReconsumeTimes();
|
||||||
|
Map<String, String> context = MDC.getCopyOfContextMap();
|
||||||
|
if(Objects.isNull(context)){
|
||||||
|
MDC.put(CommonConstants.REQUEST_ID, traceId);
|
||||||
|
}
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
log.info("MDC mqBeforeLog", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@AfterReturning(value = "rocketMqMdc()")
|
||||||
|
public void doAfterReturning(JoinPoint joinPoint){
|
||||||
|
try {
|
||||||
|
MDC.clear();
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.info("MDC doAfterReturning", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.cool.store.service;
|
package com.cool.store.service;
|
||||||
|
|
||||||
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
|
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.vo.cuser.IdentityCardInfoVO;
|
import com.cool.store.vo.cuser.IdentityCardInfoVO;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -23,6 +24,6 @@ public interface AliyunService {
|
|||||||
* @param faceImageUrl
|
* @param faceImageUrl
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl);
|
IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,10 @@ import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeRe
|
|||||||
import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeResponse;
|
import com.aliyun.dytnsapi20200217.models.DescribePhoneNumberOperatorAttributeResponse;
|
||||||
import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponse;
|
import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponse;
|
||||||
import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponseBody;
|
import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponseBody;
|
||||||
import com.aliyun.tea.TeaException;
|
|
||||||
import com.aliyun.tea.TeaModel;
|
|
||||||
import com.aliyun.teaopenapi.models.Config;
|
import com.aliyun.teaopenapi.models.Config;
|
||||||
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
|
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
|
||||||
import com.cool.store.enums.ErrorCodeEnum;
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.exception.ServiceException;
|
import com.cool.store.exception.ServiceException;
|
||||||
import com.cool.store.service.AliyunService;
|
import com.cool.store.service.AliyunService;
|
||||||
import com.cool.store.vo.cuser.IdentityCardInfoVO;
|
import com.cool.store.vo.cuser.IdentityCardInfoVO;
|
||||||
@@ -62,7 +61,7 @@ public class AliyunServiceImpl implements AliyunService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) {
|
public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException {
|
||||||
//todo zcb ak sk替换
|
//todo zcb ak sk替换
|
||||||
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
|
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
|
||||||
.setAccessKeyId("LTAI5t9RaXvABZbHvoXjDFJ1")
|
.setAccessKeyId("LTAI5t9RaXvABZbHvoXjDFJ1")
|
||||||
@@ -94,14 +93,17 @@ public class AliyunServiceImpl implements AliyunService {
|
|||||||
return result;
|
return result;
|
||||||
} catch (com.aliyun.tea.TeaException e) {
|
} catch (com.aliyun.tea.TeaException e) {
|
||||||
log.error("身份证解析报错TeaException:{}", e);
|
log.error("身份证解析报错TeaException:{}", e);
|
||||||
|
throw new ApiException(e.getMessage());
|
||||||
} catch (MalformedURLException e) {
|
} catch (MalformedURLException e) {
|
||||||
log.error("身份证解析报错MalformedURLException:{}", e);
|
log.error("身份证解析报错MalformedURLException:{}", e);
|
||||||
|
throw new ApiException(e.getMessage());
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
log.error("身份证解析报错IOException:{}", e);
|
log.error("身份证解析报错IOException:{}", e);
|
||||||
|
throw new ApiException(e.getMessage());
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("身份证解析报错Exception:{}", e);
|
log.error("身份证解析报错Exception:{}", e);
|
||||||
|
throw new ApiException(e.getMessage());
|
||||||
}
|
}
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String convertDate(String date, String format) {
|
public static String convertDate(String date, String format) {
|
||||||
|
|||||||
@@ -119,6 +119,8 @@
|
|||||||
<orderEntry type="library" name="Maven: com.aliyun:tea-fileform:0.0.3" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:tea-fileform:0.0.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.aliyun:darabonba-array:0.1.0" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:darabonba-array:0.1.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.aliyun:darabonba-number:0.0.3" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:darabonba-number:0.0.3" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.9.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.6.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.6.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.6.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.2.6.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.6.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.2.6.RELEASE" level="project" />
|
||||||
|
|||||||
@@ -1,14 +1,17 @@
|
|||||||
package com.cool.store.config;
|
package com.cool.store.config;
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.cool.store.constants.CommonConstants;
|
||||||
import com.cool.store.enums.ErrorCodeEnum;
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
import com.cool.store.response.ResponseResult;
|
import com.cool.store.response.ResponseResult;
|
||||||
import com.cool.store.context.CurrentUserHolder;
|
import com.cool.store.context.CurrentUserHolder;
|
||||||
import com.cool.store.utils.RedisUtilPool;
|
import com.cool.store.utils.RedisUtilPool;
|
||||||
import com.cool.store.context.LoginUserInfo;
|
import com.cool.store.context.LoginUserInfo;
|
||||||
|
import com.cool.store.utils.UUIDUtils;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.slf4j.MDC;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -67,6 +70,7 @@ public class TokenValidateFilter implements Filter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||||
|
MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
|
||||||
HttpServletResponse response = (HttpServletResponse) servletResponse;
|
HttpServletResponse response = (HttpServletResponse) servletResponse;
|
||||||
HttpServletRequest reqs = (HttpServletRequest) servletRequest;
|
HttpServletRequest reqs = (HttpServletRequest) servletRequest;
|
||||||
String uri = reqs.getRequestURI();
|
String uri = reqs.getRequestURI();
|
||||||
@@ -109,6 +113,7 @@ public class TokenValidateFilter implements Filter {
|
|||||||
filterChain.doFilter(servletRequest, servletResponse);
|
filterChain.doFilter(servletRequest, servletResponse);
|
||||||
} finally {
|
} finally {
|
||||||
CurrentUserHolder.removeUser();
|
CurrentUserHolder.removeUser();
|
||||||
|
MDC.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -117,6 +117,8 @@
|
|||||||
<orderEntry type="library" name="Maven: com.aliyun:tea-fileform:0.0.3" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:tea-fileform:0.0.3" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.aliyun:darabonba-array:0.1.0" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:darabonba-array:0.1.0" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.aliyun:darabonba-number:0.0.3" level="project" />
|
<orderEntry type="library" name="Maven: com.aliyun:darabonba-number:0.0.3" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.9.5" level="project" />
|
||||||
|
<orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.5" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.6.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.2.6.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.6.RELEASE" level="project" />
|
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.2.6.RELEASE" level="project" />
|
||||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.3" level="project" />
|
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.10.3" level="project" />
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.cool.store.config;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.cool.store.constants.CommonConstants;
|
||||||
import com.cool.store.context.PartnerUserHolder;
|
import com.cool.store.context.PartnerUserHolder;
|
||||||
import com.cool.store.enums.ErrorCodeEnum;
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
import com.cool.store.response.ResponseResult;
|
import com.cool.store.response.ResponseResult;
|
||||||
@@ -9,9 +10,11 @@ import com.cool.store.service.WechatMiniAppService;
|
|||||||
import com.cool.store.utils.AesUtil;
|
import com.cool.store.utils.AesUtil;
|
||||||
import com.cool.store.utils.Md5Utils;
|
import com.cool.store.utils.Md5Utils;
|
||||||
import com.cool.store.utils.Sha1Utils;
|
import com.cool.store.utils.Sha1Utils;
|
||||||
|
import com.cool.store.utils.UUIDUtils;
|
||||||
import com.cool.store.vo.PartnerUserInfoVO;
|
import com.cool.store.vo.PartnerUserInfoVO;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.slf4j.MDC;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.core.annotation.Order;
|
import org.springframework.core.annotation.Order;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -46,7 +49,9 @@ public class SignValidateFilter implements Filter {
|
|||||||
|
|
||||||
private static List<String> patternList =
|
private static List<String> patternList =
|
||||||
Lists.newArrayList("/web/check/ok","/check/ok",
|
Lists.newArrayList("/web/check/ok","/check/ok",
|
||||||
"/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**","/partner/mini/program/oss/getUploadFileConfig","/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
|
"/partner/mini/program/doc.html","/partner/mini/program/v2/api-docs","/**/test/**",
|
||||||
|
"/partner/mini/program/oss/getUploadFileConfig",
|
||||||
|
"/partner/mini/program/v1/partnerManage/partner/getIdentityCardInfo",
|
||||||
"/**/swagger*/**", "/**/webjars/**");
|
"/**/swagger*/**", "/**/webjars/**");
|
||||||
|
|
||||||
|
|
||||||
@@ -73,6 +78,7 @@ public class SignValidateFilter implements Filter {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
|
||||||
|
MDC.put(CommonConstants.REQUEST_ID, UUIDUtils.get32UUID());
|
||||||
HttpServletResponse response = (HttpServletResponse) servletResponse;
|
HttpServletResponse response = (HttpServletResponse) servletResponse;
|
||||||
HttpServletRequest request = (HttpServletRequest) servletRequest;
|
HttpServletRequest request = (HttpServletRequest) servletRequest;
|
||||||
String uri = request.getRequestURI();
|
String uri = request.getRequestURI();
|
||||||
@@ -101,8 +107,7 @@ public class SignValidateFilter implements Filter {
|
|||||||
// 前后端验签不等
|
// 前后端验签不等
|
||||||
if (!newSign.equals(sign)) {
|
if (!newSign.equals(sign)) {
|
||||||
response.setStatus(HttpStatus.OK.value());
|
response.setStatus(HttpStatus.OK.value());
|
||||||
response.getWriter().write(JSON.toJSONString(
|
response.getWriter().write(JSON.toJSONString(ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
|
||||||
ResponseResult.fail(ErrorCodeEnum.SIGN_FAIL)));
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, openid);
|
PartnerUserInfoVO partnerUserInfoVO = wechatMiniAppService.getUserInfo(phone, openid);
|
||||||
@@ -116,6 +121,7 @@ public class SignValidateFilter implements Filter {
|
|||||||
filterChain.doFilter(servletRequest, servletResponse);
|
filterChain.doFilter(servletRequest, servletResponse);
|
||||||
} finally {
|
} finally {
|
||||||
PartnerUserHolder.removeUser();
|
PartnerUserHolder.removeUser();
|
||||||
|
MDC.clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
10
pom.xml
10
pom.xml
@@ -186,6 +186,16 @@
|
|||||||
<artifactId>ocr20191230</artifactId>
|
<artifactId>ocr20191230</artifactId>
|
||||||
<version>1.0.26</version>
|
<version>1.0.26</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjrt</artifactId>
|
||||||
|
<version>1.9.5</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjweaver</artifactId>
|
||||||
|
<version>1.9.5</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user