ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

sa-token 注解式鉴权

2021-12-31 15:02:26  阅读:183  来源: 互联网

标签:拦截器 return add 认证 token 鉴权 注解 sa public


一.sa-token注解式鉴权

首先配置注解式拦截器

/**
 * @author Fetter
 * @ClassName SaTokenConfigure.java
 * @Description 拦截器
 * @createTime 2021年12月31日 11:39:00
 */
@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
    // 注册Sa-Token的注解拦截器,打开注解式鉴权功能
    @Override
    public void addInterceptors(InterceptorRegistry registry){
        // 注册注解拦截器,并排除不需要注解鉴权的接口地址 (与登录拦截器无关)
        registry.addInterceptor(new SaAnnotationInterceptor()).addPathPatterns("/**");
    }
}

1.1 用户登录访问
用户必须登录了,才能访问,否则登陆时 token无效,登录了token才有效果
controller

 @SaCheckLogin
    @GetMapping("/info")
    public String info() throws Exception {
        try {
            return "查询用户信息";
        }catch (Exception e){
            throw new Exception("用户未登录!"+e.getMessage());
        }
    }

测试
并没有登录(error),所以在获取loginId的时候为null,也抛出了token失效。
在这里插入图片描述

在这里插入图片描述
正常登录

在这里插入图片描述
1.2 角色认证


    // 角色认证:必须具有指定角色才能进入该方法
    @SaCheckPermission("super-admin")
    @GetMapping("/add")
    public String add(){
        return "添加成功";
    }

测试
必须用super-admin这个角色才能够添加

在这里插入图片描述

将角色放开从新访问
在这里插入图片描述
说明:
下面的测试不进行失败的截图了,失败的截图注释掉某个权限或者角色就可以了
1.3权限认证


    // 权限认证:必须具有指定权限才能进入该方法
    @SaCheckPermission("user-add")
    @GetMapping("/adds")
    public String adds() {
        return "用户增加";
    }

在这里插入图片描述
二级认证以及http basic认证还在研究 =_=
1.4 二级认证

  // 二级认证:必须二级认证之后才能进入该方法
    @SaCheckSafe()
    @GetMapping("/two_add")
    public String two_add() {
        return "(二级认证)用户增加";
    }
}

1.5 Http Basic 认证

  // Http Basic 认证:只有通过 Basic 认证后才能进入该方法
    @SaCheckBasic(account = "sa:123456")
    @RequestMapping("/httpBasicAdd")
    public String httpBasicAdd() {
        return "(http Basic)用户增加";
    }

标签:拦截器,return,add,认证,token,鉴权,注解,sa,public
来源: https://blog.csdn.net/qq_43816654/article/details/122254907

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有