diff --git a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java index 42f2ff1f1..9a63bec94 100644 --- a/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java +++ b/pig-common/pig-common-security/src/main/java/com/pig4cloud/pig/common/security/component/PigSecurityInnerAspect.java @@ -25,6 +25,7 @@ import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.core.Ordered; +import org.springframework.core.annotation.AnnotationUtils; import org.springframework.security.access.AccessDeniedException; import javax.servlet.http.HttpServletRequest; @@ -32,7 +33,7 @@ /** * @author lengleng * @date 2022-06-04 - * + *
* 服务间接口不鉴权处理逻辑 */ @Slf4j @@ -46,11 +47,10 @@ public class PigSecurityInnerAspect implements Ordered { @Before("@within(inner) || @annotation(inner)") public void around(JoinPoint point, Inner inner) { // 实际注入的inner实体由表达式后一个注解决定,即是方法上的@Inner注解实体,若方法上无@Inner注解,则获取类上的 - // 这段代码没有意义,拦截的就是@Inner注解,怎么会为null呢 - // if (inner == null) { - // Class> clazz = point.getTarget().getClass(); - // inner = AnnotationUtils.findAnnotation(clazz, Inner.class); - // } + if (inner == null) { + Class> clazz = point.getTarget().getClass(); + inner = AnnotationUtils.findAnnotation(clazz, Inner.class); + } String header = request.getHeader(SecurityConstants.FROM); if (inner.value() && !SecurityConstants.FROM_IN.equals(header)) { log.warn("访问接口 {} 没有权限", point.getSignature().getName());