From 8a7d39e53349d1501481d745353f3823b0bfe367 Mon Sep 17 00:00:00 2001 From: Wonder Date: Fri, 10 Oct 2025 22:50:08 +0800 Subject: [PATCH] =?UTF-8?q?=20=F0=9F=94=84Update:=20=E6=90=AD=E5=BB=BA=20A?= =?UTF-8?q?OP=20=E9=AA=A8=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 ++++ .../hezhaohui/pc/annotation/PreAuthorize.java | 18 +++++++++++ .../hezhaohui/pc/aspect/AuthorizeAspect.java | 30 +++++++++++++++++++ 3 files changed, 53 insertions(+) create mode 100644 src/main/java/cn/hezhaohui/pc/annotation/PreAuthorize.java create mode 100644 src/main/java/cn/hezhaohui/pc/aspect/AuthorizeAspect.java diff --git a/pom.xml b/pom.xml index 2e264f7..9edcb34 100644 --- a/pom.xml +++ b/pom.xml @@ -59,5 +59,10 @@ 4.4.0 + + org.springframework.boot + spring-boot-starter-aop + + diff --git a/src/main/java/cn/hezhaohui/pc/annotation/PreAuthorize.java b/src/main/java/cn/hezhaohui/pc/annotation/PreAuthorize.java new file mode 100644 index 0000000..a855e88 --- /dev/null +++ b/src/main/java/cn/hezhaohui/pc/annotation/PreAuthorize.java @@ -0,0 +1,18 @@ +package cn.hezhaohui.pc.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 自定义注解,实现鉴权 + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface PreAuthorize { + /** + * 权限标识符 + */ + public String value() default ""; +} diff --git a/src/main/java/cn/hezhaohui/pc/aspect/AuthorizeAspect.java b/src/main/java/cn/hezhaohui/pc/aspect/AuthorizeAspect.java new file mode 100644 index 0000000..0d1460f --- /dev/null +++ b/src/main/java/cn/hezhaohui/pc/aspect/AuthorizeAspect.java @@ -0,0 +1,30 @@ +package cn.hezhaohui.pc.aspect; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.springframework.stereotype.Component; + +@Component +@Aspect +public class AuthorizeAspect { + + @Pointcut("@annotation(cn.hezhaohui.pc.annotation.PreAuthorize)") + public void authorizePointCut() { + + } + + /** + * 对后端接口鉴权 + * 1. 获取当前用户角色 + * 2. 获取角色对应权限 + * 3. 判断当前权限标识符是否被包含 + * @return + */ + @Around("authorizePointCut()") + public Object handle(ProceedingJoinPoint joinPoint) throws Throwable { + // TODO + return joinPoint.proceed(); + } +}