1、编写自定义注解类
/**
* 自定义Access注解
* 若使用在类上,这个类的所有方法都进行权限校验,暂不支持
* 若使用在方法上,这个方法进行权限校验
*/
@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Access {
/**
* 表明该方法允许哪些角色id访问
* @return
*/
RoleEnum[] roles() default {};
/**
* 备注
*/
String comment();
}
2、定义枚举值
/**
* 角色枚举类
*/
public enum RoleEnum {
C2C_SELLER(1,"C2C商家"),
CSR(2,"客服"),
FINANCE_ADMIN(5,"财务"),
SUPER_ADMIN(7,"超级管理员"),
EM_ADMIN(10,"电商管理员"),
KOL_ADMIN(25,"市场运营"),
UNKNOWN(-100,"未知角色"),
BRAND_SELLER(100,"供应商"),
;
RoleEnum(Integer roleId, String desc) {
this.roleId = roleId;
this.desc = desc;
}
/**
* 角色ID
*/
private Integer roleId;
/**
* 角色描述
*/