feat:(hotfix) controller处理完后,把threadLocal给清空掉

This commit is contained in:
李龙 2025-02-07 17:21:23 +08:00
parent 6a8b93548a
commit d199b7cbe8
2 changed files with 12 additions and 9 deletions

View File

@ -17,7 +17,10 @@ import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*; import org.aspectj.lang.annotation.AfterThrowing;
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.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Lazy;
import org.springframework.core.annotation.Order; import org.springframework.core.annotation.Order;
@ -31,8 +34,6 @@ import java.util.Objects;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.axzo.framework.datapermission.context.DataPermissionContextHolder.DATA_PERMISSION_HEADER;
/** /**
* 解析数据权限规则把解析后的数据放置在上下文中DataPermissionContext * 解析数据权限规则把解析后的数据放置在上下文中DataPermissionContext
*/ */
@ -81,8 +82,7 @@ public class DataPermissionInterceptor {
@Around(value = "@within(dataPermission) && @within(restController)") @Around(value = "@within(dataPermission) && @within(restController)")
@SneakyThrows @SneakyThrows
public Object classHandler(ProceedingJoinPoint pjp, DataPermission dataPermission, RestController restController) { public Object classHandler(ProceedingJoinPoint pjp, DataPermission dataPermission, RestController restController) {
handle(dataPermission); return proceed(pjp, dataPermission);
return proceed(pjp);
} }
/** /**
@ -91,16 +91,16 @@ public class DataPermissionInterceptor {
@Around(value = "@annotation(dataPermission) && mappingAnnotations()") @Around(value = "@annotation(dataPermission) && mappingAnnotations()")
@SneakyThrows @SneakyThrows
public Object methodHandler(ProceedingJoinPoint pjp, DataPermission dataPermission) { public Object methodHandler(ProceedingJoinPoint pjp, DataPermission dataPermission) {
handle(dataPermission); return proceed(pjp, dataPermission);
return proceed(pjp);
} }
private static Object proceed(ProceedingJoinPoint pjp) throws Throwable { private Object proceed(ProceedingJoinPoint pjp, DataPermission dataPermission) throws Throwable {
Object result; Object result;
try { try {
handle(dataPermission);
result = pjp.proceed(pjp.getArgs()); result = pjp.proceed(pjp.getArgs());
} finally { } finally {
ContextInfoHolder.clear(); DataPermissionContextHolder.clear();
} }
return result; return result;
} }

View File

@ -24,6 +24,9 @@ public class DataPermissionContextHolder {
DATA_PERMISSION_CONTEXT.set(dataPermission); DATA_PERMISSION_CONTEXT.set(dataPermission);
} }
public static void clear() {
DATA_PERMISSION_CONTEXT.remove();
}
@Data @Data
@Builder @Builder