diff --git a/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/aop/DataPermissionFilter.java b/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/aop/DataPermissionFilter.java index b274a4c..7caf6e2 100644 --- a/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/aop/DataPermissionFilter.java +++ b/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/aop/DataPermissionFilter.java @@ -6,9 +6,11 @@ import com.alibaba.fastjson.JSONObject; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; -import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -20,9 +22,9 @@ import static cn.axzo.framework.datapermission.context.DataPermissionContextHold * @author tanjie@axzo.cn * @date 2024/5/31 16:37 */ -@Order(2) +@Component @Slf4j -public class DataPermissionFilter implements HandlerInterceptor { +public class DataPermissionFilter implements HandlerInterceptor, WebMvcConfigurer { /** * 拦截@DataPermission @@ -56,4 +58,9 @@ public class DataPermissionFilter implements HandlerInterceptor { } return true; } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(this); + } } diff --git a/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/aop/ResolveDataPermissionRuleFilter.java b/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/aop/ResolveDataPermissionRuleFilter.java index ece3064..c32139d 100644 --- a/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/aop/ResolveDataPermissionRuleFilter.java +++ b/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/aop/ResolveDataPermissionRuleFilter.java @@ -7,12 +7,14 @@ import cn.axzo.framework.datapermission.context.DataPermissionContextHolder; import cn.axzo.karma.client.feign.tyr.DataObjectApi; import cn.axzo.karma.client.feign.tyr.request.MatchDataObjectReq; import cn.axzo.karma.client.feign.tyr.response.MatchDataObjectResp; -import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.BooleanUtils; -import org.springframework.core.annotation.Order; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -21,12 +23,12 @@ import java.util.Optional; /** * 解析数据权限规则,把解析后的数据放置在上下文中DataPermissionContext */ -@Order(2) +@Component @Slf4j -@RequiredArgsConstructor -public class ResolveDataPermissionRuleFilter implements HandlerInterceptor { +public class ResolveDataPermissionRuleFilter implements HandlerInterceptor, WebMvcConfigurer { - private final DataObjectApi dataObjectApi; + @Autowired + private DataObjectApi dataObjectApi; /** * 拦截@DataPermission @@ -70,6 +72,7 @@ public class ResolveDataPermissionRuleFilter implements HandlerInterceptor { .personId(contextInfo.getUserInfo().getPersonId()) .dataPermissionNodeIds(matchDataObjectOptional.get().getNodeIds()) .dataPermissionPersonIds(matchDataObjectOptional.get().getPersonIds()) + .resultKey(matchDataObjectOptional.get().getResultKey()) .build(); DataPermissionContextHolder.setContext(dataPermissionContext); @@ -90,4 +93,9 @@ public class ResolveDataPermissionRuleFilter implements HandlerInterceptor { return Optional.ofNullable(dataObjectApi.match(matchDataObjectReq).getData()); } + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(this); + } } diff --git a/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/context/DataPermissionContextHolder.java b/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/context/DataPermissionContextHolder.java index 9c75848..56a3d6e 100644 --- a/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/context/DataPermissionContextHolder.java +++ b/axzo-common-data-permission/src/main/java/cn/axzo/framework/datapermission/context/DataPermissionContextHolder.java @@ -56,6 +56,11 @@ public class DataPermissionContextHolder { * 解析后的部门id */ private Set dataPermissionNodeIds; + + /** + * 匹配的解析规则放在redis中的key + */ + private String resultKey; } public static void remove() {