sa-token整合springboot中的代码示例展示

 更新时间:2024年04月25日 10:16:26   作者:xxq121389527  
sa-token 是一个轻量级的 Java 权限认证框架,它可以很方便地集成到 Spring Boot 项目中,以提供简洁的认证和授权功能,这篇文章主要介绍了sa-token整合springboot中的代码示例展示,需要的朋友可以参考下

sa-token 是一个轻量级的 Java 权限认证框架,它可以很方便地集成到 Spring Boot 项目中,以提供简洁的认证和授权功能。虽然 sa-token 本身并不直接支持 OAuth 2.0 的集成,但你可以将 OAuth 2.0 的认证流程与 sa-token 的权限控制结合起来使用。

以下是一个简单的示例,展示了如何将 sa-token 整合到 Spring Boot 项目中:

添加 sa-token 的依赖到你的 pom.xml 文件中:

<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>最新版本</version>
</dependency>

确保你使用的是最新的 sa-token 版本。

  • 在 application.yml 或 application.properties 中配置 sa-token
# application.yml 示例
sa-token:
token-name: Authorization # token名称 (header中key)
token-type: bearer # token类型 (header中value的前缀)
timeout: 3600 # token 过期时间, 单位秒
activity-timeout: -1 # 临时token有效时间, 单位秒,-1表示永不过期
is-concurrent: true # 是否允许同一账号并发登录, 默认false
is-share: false # 在多个服务之间共享token时,需要设置为true
  • 创建一个配置类来初始化 sa-token
import cn.dev33.satoken.context.SaHolder;
import cn.dev33.satoken.filter.SaTokenFilter;
import cn.dev33.satoken.integration.springboot.SaTokenAutoConfiguration;
import cn.dev33.satoken.integration.springboot.properties.SaTokenProperties;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
@AutoConfigureAfter(SaTokenAutoConfiguration.class)
public class SaTokenConfig {
@Bean
@ConditionalOnMissingBean
public SaTokenFilter saTokenFilter(SaTokenProperties saTokenProperties) {
return new SaTokenFilter(saTokenProperties);
}
// 你可以在这里添加自定义的 SaToken 初始化代码
// 例如:设置全局的权限验证规则、登录验证处理等
@Bean
public void initSaToken() {
// 初始化 Sa-Token,并设置全局的权限验证规则
SaHolder.setGlobalAuthHandler((request, response, exception) -> {
// 这里可以自定义全局的权限验证逻辑
// 例如:返回自定义的未授权提示信息
response.setContentType("application/json;charset=UTF-8");
response.getWriter().write("{\"code\":401,\"msg\":\"未授权\"}");
response.getWriter().flush();
response.getWriter().close();
});
}
}
  • 在你的 Controller 中使用 sa-token 提供的注解来进行权限控制:
import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.dev33.satoken.annotation.SaCheckRole;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class MyController {
@GetMapping("/needPermission")
@SaCheckPermission("permission1") // 这里会校验用户是否具有 permission1 权限
public String needPermission() {
return "you have permission1";
}
@GetMapping("/needRole")
@SaCheckRole("admin") // 这里会校验用户是否具有 admin 角色
public String needRole() {
return "you are admin";
}
}

到此这篇关于sa-token整合springboot中的代码的文章就介绍到这了,更多相关sa-token整合springboot内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaSE、JavaEE和JavaWeb三大工程目录详解

    JavaSE、JavaEE和JavaWeb三大工程目录详解

    这篇文章主要给大家介绍了关于JavaSE、JavaEE和JavaWeb三大工程目录的相关资料,很多对java不是很了解的同学在看到课程⼤纲的时候发现⾥⾯出现了JavaSE、JavaEE、JavaME、JavaWEB这些词,搞得⼀头雾⽔,需要的朋友可以参考下
    2023-07-07
  • ElasticSearch如何设置某个字段不分词浅析

    ElasticSearch如何设置某个字段不分词浅析

    最近在学习ElasticSearch官方文档过程中发现的某个问题,记录一下 希望能帮助到后面的朋友,下面这篇文章主要给大家介绍了关于ElasticSearch如何设置某个字段不分词的相关资料,需要的朋友可以参考下
    2022-04-04
  • Java 多线程实例讲解(一)

    Java 多线程实例讲解(一)

    本文主要介绍Java 多线程的知识,这里整理了详细的资料及简单示例代码有需要的小伙伴可以参考下
    2016-09-09
  • SpringBoot日期格式转换之配置全局日期格式转换器的实例详解

    SpringBoot日期格式转换之配置全局日期格式转换器的实例详解

    这篇文章主要介绍了SpringBoot日期格式转换之配置全局日期格式转换器的实例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • SpringBoot整合minio服务的示例代码

    SpringBoot整合minio服务的示例代码

    本文主要介绍了SpringBoot整合minio服务的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06
  • SpringBoot实战记录之数据访问

    SpringBoot实战记录之数据访问

    对于数据访问层,无论是SQL还是NOSQL,Spring Boot默认采用整合Spring Data的方式进行统一处理,添加大量自动配置,屏蔽了很多设置,下面这篇文章主要介绍了SpringBoot实战记录之数据访问,需要的朋友可以参考下
    2022-04-04
  • Java中包的概念和用法实战案例分析

    Java中包的概念和用法实战案例分析

    这篇文章主要介绍了Java中包的概念和用法,结合具体案例形式分析了java包的概念、原理、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • IDEA2020.1使用LeetCode插件运行并调试本地样例的方法详解

    IDEA2020.1使用LeetCode插件运行并调试本地样例的方法详解

    这篇文章主要介绍了IDEA2020.1使用LeetCode插件运行并调试本地样例的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-09-09
  • 使用spring boot开发时java对象和Json对象转换的问题

    使用spring boot开发时java对象和Json对象转换的问题

    这篇文章主要介绍了使用spring boot开发时java对象和Json对象转换的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Java实现斗地主案例

    Java实现斗地主案例

    这篇文章主要为大家详细介绍了Java实现斗地主案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04

最新评论