mirror of
https://github.com/dromara/RuoYi-Vue-Plus.git
synced 2025-09-25 04:36:39 +08:00
update 优化数据权限注解切点逻辑,使切点逻辑更清晰
This commit is contained in:
parent
b379574637
commit
554152635d
@ -2,21 +2,19 @@ package org.dromara.common.mybatis.aspect;
|
|||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.common.mybatis.annotation.DataPermission;
|
import org.dromara.common.mybatis.annotation.DataPermission;
|
||||||
import org.springframework.aop.support.DynamicMethodMatcher;
|
import org.springframework.aop.support.StaticMethodMatcherPointcut;
|
||||||
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.lang.reflect.Proxy;
|
import java.lang.reflect.Proxy;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据权限动态方法匹配器
|
* 数据权限匹配切点
|
||||||
*
|
*
|
||||||
* @author 秋辞未寒
|
* @author 秋辞未寒
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@SuppressWarnings("all")
|
@SuppressWarnings("all")
|
||||||
public class DataPermissionDynamicMethodMatcher extends DynamicMethodMatcher {
|
public class DataPermissionPointcut extends StaticMethodMatcherPointcut {
|
||||||
|
|
||||||
public DataPermissionDynamicMethodMatcher() {}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(Method method, Class<?> targetClass) {
|
public boolean matches(Method method, Class<?> targetClass) {
|
||||||
@ -38,9 +36,4 @@ public class DataPermissionDynamicMethodMatcher extends DynamicMethodMatcher {
|
|||||||
return targetClassRef.isAnnotationPresent(DataPermission.class);
|
return targetClassRef.isAnnotationPresent(DataPermission.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean matches(Method method, Class<?> targetClass, Object... args) {
|
|
||||||
return matches(method, targetClass);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
@ -1,11 +1,8 @@
|
|||||||
package org.dromara.common.mybatis.aspect;
|
package org.dromara.common.mybatis.aspect;
|
||||||
|
|
||||||
import org.aopalliance.aop.Advice;
|
import org.aopalliance.aop.Advice;
|
||||||
import org.dromara.common.mybatis.annotation.DataPermission;
|
|
||||||
import org.springframework.aop.Pointcut;
|
import org.springframework.aop.Pointcut;
|
||||||
import org.springframework.aop.support.AbstractPointcutAdvisor;
|
import org.springframework.aop.support.AbstractPointcutAdvisor;
|
||||||
import org.springframework.aop.support.ComposablePointcut;
|
|
||||||
import org.springframework.aop.support.annotation.AnnotationMatchingPointcut;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据权限注解切面定义
|
* 数据权限注解切面定义
|
||||||
@ -20,9 +17,7 @@ public class DataPermissionPointcutAdvisor extends AbstractPointcutAdvisor {
|
|||||||
|
|
||||||
public DataPermissionPointcutAdvisor() {
|
public DataPermissionPointcutAdvisor() {
|
||||||
this.advice = new DataPermissionAdvice();
|
this.advice = new DataPermissionAdvice();
|
||||||
AnnotationMatchingPointcut matchingPointcut = new AnnotationMatchingPointcut(DataPermission.class, true);
|
this.pointcut = new DataPermissionPointcut();
|
||||||
DataPermissionDynamicMethodMatcher matcher = new DataPermissionDynamicMethodMatcher();
|
|
||||||
this.pointcut = new ComposablePointcut(matcher).union(matchingPointcut);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user