Browse Source

修复访问日志描述可能错误问题

zhouhao 2 years ago
parent
commit
6b99d542b9

+ 11 - 3
hsweb-logging/hsweb-access-logging-aop/src/main/java/org/hswebframework/web/logging/aop/ReactiveAopAccessLoggerSupport.java

@@ -1,6 +1,6 @@
 package org.hswebframework.web.logging.aop;
 
-import lombok.SneakyThrows;
+import lombok.*;
 import org.aopalliance.intercept.MethodInterceptor;
 import org.hswebframework.web.aop.MethodInterceptorHolder;
 import org.hswebframework.web.authorization.Authentication;
@@ -47,7 +47,7 @@ public class ReactiveAopAccessLoggerSupport extends StaticMethodMatcherPointcutA
     @Autowired
     private ApplicationEventPublisher eventPublisher;
 
-    private final Map<Method, LoggerDefine> defineCache = new ConcurrentReferenceHashMap<>();
+    private final Map<CacheKey, LoggerDefine> defineCache = new ConcurrentReferenceHashMap<>();
 
     private static final LoggerDefine UNSUPPORTED = new LoggerDefine();
 
@@ -135,7 +135,9 @@ public class ReactiveAopAccessLoggerSupport extends StaticMethodMatcherPointcutA
         info.setId(IDGenerator.MD5.generate());
         info.setRequestTime(System.currentTimeMillis());
 
-        LoggerDefine define = defineCache.computeIfAbsent(holder.getMethod(), method -> createDefine(holder));
+        LoggerDefine define = defineCache.computeIfAbsent(new CacheKey(
+                ClassUtils.getUserClass(holder.getTarget()),
+                holder.getMethod()), method -> createDefine(holder));
 
         if (define != null) {
             info.setAction(define.getAction());
@@ -215,4 +217,10 @@ public class ReactiveAopAccessLoggerSupport extends StaticMethodMatcherPointcutA
 
         return info;
     }
+    @AllArgsConstructor
+    @EqualsAndHashCode
+    private static class CacheKey{
+        private Class<?> type;
+        private Method method;
+    }
 }