创建 mall-spring-boot-starter-security-user 模块,用于用户的认证拦截器

This commit is contained in:
YunaiV
2020-07-04 23:25:22 +08:00
parent d89e5bad98
commit 93c646890d
27 changed files with 345 additions and 186 deletions

View File

@@ -0,0 +1,18 @@
package cn.iocoder.security.annotations;
import java.lang.annotation.*;
/**
* 要求用户认证(登陆)注解。通过将该注解添加到 Controller 上,会自动校验用户是否登陆。
*
* 默认请求下,用户访问的 API 接口,无需登陆。主要的考虑是,
* 1. 需要用户登陆的接口,本身会获取在线用户的编号。如果不添加 @RequiresLogin 注解就会报错。
* 2. 大多数情况下,用户的 API 接口无需登陆。
*
* ps同样适用于管理员 Admin
*/
@Documented
@Target({ElementType.METHOD}) // 暂时不支持 ElementType.TYPE ,因为没有场景
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresAuthenticate {
}

View File

@@ -0,0 +1,12 @@
package cn.iocoder.security.annotations;
import java.lang.annotation.*;
/**
* 通过将该注解添加到 Controller 的方法上,声明无需进行登陆
*/
@Documented
@Target({ElementType.METHOD}) // 暂时不支持 ElementType.TYPE ,因为没有场景
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresNone {
}

View File

@@ -0,0 +1,24 @@
package cn.iocoder.security.annotations;
import java.lang.annotation.*;
/**
* 参考 Shiro @RequiresPermissions 设计 http://shiro.apache.org/static/1.3.2/apidocs/org/apache/shiro/authz/annotation/RequiresPermissions.html
*
* 通过将该注解添加到 Controller 的方法上,进行授权鉴定
*
* ps目前暂时只有管理员 Admin 使用到
*/
@Documented
@Target({ElementType.METHOD}) // 暂时不支持 ElementType.TYPE ,因为没有场景
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresPermissions {
/**
* 当有多个标识时,必须全部拥有权限,才可以操作
*
* @return 权限标识数组
*/
String[] value() default {};
}