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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
SpringBoot日期格式转换之配置全局日期格式转换器的实例详解
这篇文章主要介绍了SpringBoot日期格式转换之配置全局日期格式转换器的实例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2020-12-12IDEA2020.1使用LeetCode插件运行并调试本地样例的方法详解
这篇文章主要介绍了IDEA2020.1使用LeetCode插件运行并调试本地样例的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧2020-09-09使用spring boot开发时java对象和Json对象转换的问题
这篇文章主要介绍了使用spring boot开发时java对象和Json对象转换的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03
最新评论