自定義注解+aop實現接口訪問權限

控制

一、自定義注解

1.1 定義注解


@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface Access {
    String[] value() default {};
}

1.2 使用注解


@RestController
public class TestController {
    @Access(value = {"admin"})
    @GetMapping("/test")
    public String test(){
        return "test";
    }
}

二、AOP實現接口訪問權限控制

2.1 定義切面


@Aspect
@Component
public class AccessAspect {
    @Pointcut("@annotation(com.example.demo.annotation.Access)")
    public void access() {
    }
    @Before("access()")
    public void doBefore(JoinPoint joinPoint) {
        MethodSignature signature = (MethodSignature) joinPoint.getSignature();
        Method method = signature.getMethod();
        Access access = method.getAnnotation(Access.class);
        if (access == null) {
            return;
        }
        String[] values = access.value();
        // 校驗用戶是否有權限
        // ...
    }
}

2.2 啟用AOP


@Configuration
@EnableAspectJAutoProxy
public class AopConfig {
}
主站蜘蛛池模板: 国产精品合集一区二区三区| 久久人妻av一区二区软件| 精品一区二区三人妻视频| 国模私拍一区二区三区| 午夜精品一区二区三区在线观看| 海角国精产品一区一区三区糖心 | 国精产品一区一区三区MBA下载 | 色老板在线视频一区二区| 日本精品夜色视频一区二区| 国产亚洲综合精品一区二区三区 | 97av麻豆蜜桃一区二区| 国产日韩精品一区二区三区在线| 亚洲乱码一区二区三区国产精品 | 亚洲国模精品一区| 一区二区国产在线播放| 中文字幕一区二区三区免费视频 | 久久精品国内一区二区三区| 视频一区二区三区免费观看| 大伊香蕉精品一区视频在线 | 久久精品一区二区三区日韩 | 一区二区三区伦理高清| 一区二区视频在线播放| 男人的天堂av亚洲一区2区| 久久久不卡国产精品一区二区| 人妻av无码一区二区三区| 国产一区风间由美在线观看| 无码精品国产一区二区三区免费| 国产成人一区二区三区免费视频 | 久久精品黄AA片一区二区三区| 在线免费视频一区二区| 少妇精品无码一区二区三区| 国产伦一区二区三区免费| 精品人妻一区二区三区浪潮在线| 国产一区韩国女主播| 国产一区二区三区乱码网站| 人妻少妇一区二区三区| 国产一区二区视频免费| 亚洲综合在线一区二区三区| 国产自产在线视频一区| 亚洲一区二区三区无码影院| 亚洲欧美国产国产一区二区三区 |