1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package com.fdkankan.cloud.acl.aop;
- import com.alibaba.fastjson.JSON;
- import com.fdkankan.cloud.acl.entity.Log;
- import com.fdkankan.cloud.acl.service.ILogService;
- import com.fdkankan.web.util.WebUtil;
- import lombok.extern.log4j.Log4j2;
- import org.aspectj.lang.ProceedingJoinPoint;
- import org.aspectj.lang.annotation.Around;
- import org.aspectj.lang.annotation.Aspect;
- import org.aspectj.lang.annotation.Pointcut;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.core.annotation.Order;
- import org.springframework.stereotype.Component;
- import org.springframework.web.context.request.RequestContextHolder;
- import org.springframework.web.context.request.ServletRequestAttributes;
- import javax.servlet.http.HttpServletRequest;
- import java.io.IOException;
- import java.util.Map;
- @Log4j2
- @Aspect
- @Component
- @Order(100)
- public class SaveLogAspect {
- @Autowired
- private ILogService logService;
- @Pointcut("@annotation(com.fdkankan.cloud.acl.annotation.SaveLog)")
- public void saveEditLogAspect() {
- }
- /**
- * @param joinPoint
- * 切点
- * @throws IOException
- */
- @Around("saveEditLogAspect()")
- public Object around(ProceedingJoinPoint joinPoint) throws Throwable {
- HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
- String signature = request.getHeader("signature");
- //获取请求参数
- Map<String, Object> params = WebUtil.getParameter(joinPoint, request);
- Log log = new Log();
- log.setIp(WebUtil.getIpAddress(request));
- log.setUri(request.getRequestURI());
- log.setMethod(request.getMethod());
- log.setUserAgent(request.getHeader("User-Agent"));
- log.setSignature(signature);
- log.setParams(JSON.toJSONString(params));
- logService.save(log);
- //放行
- Object proceed = joinPoint.proceed();
- log.setResult(JSON.toJSONString(proceed));
- logService.updateById(log);
- return proceed;
- }
- }
|