From bcb82395d51ac9434504cfadec418a8ec57963ab Mon Sep 17 00:00:00 2001 From: AppleOfGray Date: Tue, 12 Jan 2021 19:16:17 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86aop=E6=A8=A1=E5=BC=8F=E5=92=8C?= =?UTF-8?q?=E6=B3=A8=E5=86=8C=E6=8B=A6=E6=88=AA=E5=99=A8=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?=E8=AF=B4=E6=98=8E=E4=BD=8D=E7=BD=AE=E4=BA=92=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-doc/doc/use/at-check.md | 65 ++++++++++++-------------------- 1 file changed, 24 insertions(+), 41 deletions(-) diff --git a/sa-token-doc/doc/use/at-check.md b/sa-token-doc/doc/use/at-check.md index 2738b214..c29edd5b 100644 --- a/sa-token-doc/doc/use/at-check.md +++ b/sa-token-doc/doc/use/at-check.md @@ -4,23 +4,18 @@ - 尽管我们可以方便的一句代码完成权限验证,但是有时候我们仍希望可以将鉴权代码与我们的业务代码分离开来 - 怎么做?`sa-token`内置三个注解,帮助你使用注解完成鉴权操作 +## 1、AOP模式使用注解 -## 1、注册拦截器 -- 为了不为项目带来不必要的性能负担,`sa-token`默认没有强制为项目注册全局拦截器 -- 因此,为了使用注解式鉴权功能,你必须手动将`sa-token`的全局拦截器注册到你项目中 -- 以`springboot2.0`为例, 新建配置类`MySaTokenConfig.java` +在`pom.xml`里添加 -``` java - @Configuration - public class MySaTokenConfig implements WebMvcConfigurer { - // 注册sa-token的注解拦截器,打开注解式鉴权功能 - @Override - public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**"); - } - } +``` xml + + + cn.dev33 + sa-token-spring-aop + 1.12.0 + ``` -- 保证此类被`springboot`启动类扫描到 ## 2、使用注解 @@ -79,39 +74,27 @@ mode有两种取值: +## 4、注册拦截器 +- 为了不为项目带来不必要的性能负担,`sa-token`默认没有强制为项目注册全局拦截器 +- 因此,为了使用注解式鉴权功能,你必须手动将`sa-token`的全局拦截器注册到你项目中 +- 以`springboot2.0`为例, 新建配置类`MySaTokenConfig.java` -## 4、AOP模式使用注解 - -使用拦截器方式,只能把注解加到`Controller层`上,那么如果我想把注解写到项目的任意位置,比如`Service层`,应该怎么办?
-很简单,你只需要将拦截器模式更换为`SpringAOP模式`即可, 在`pom.xml`里添加 - -``` xml - - - cn.dev33 - sa-token-spring-aop - 1.12.0 - -``` - -然后你就可以在任意地方使用注解鉴权,例如: ``` java -@Service -public class UserService { - @SaCheckLogin - public List getList() { - System.out.println("getList"); - return new ArrayList(); + @Configuration + public class MySaTokenConfig implements WebMvcConfigurer { + // 注册sa-token的注解拦截器,打开注解式鉴权功能 + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**"); + } } -} ``` +- 保证此类被`springboot`启动类扫描到 +- 使用拦截器方式,只能把注解加到`Controller层`上 -**注意:拦截器模式和AOP模式不可同时集成,否则会在Controller层发生一个注解校验两次的bug** - - - - + +**`警告`:拦截器模式和AOP模式不可同时集成,否则会在Controller层发生一个注解校验两次的bug**