sa-token整合springboot中的代碼示例展示
sa-token
是一個輕量級的 Java 權(quán)限認(rèn)證框架,它可以很方便地集成到 Spring Boot 項目中,以提供簡潔的認(rèn)證和授權(quán)功能。雖然 sa-token
本身并不直接支持 OAuth 2.0 的集成,但你可以將 OAuth 2.0 的認(rèn)證流程與 sa-token
的權(quán)限控制結(jié)合起來使用。
以下是一個簡單的示例,展示了如何將 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 # 是否允許同一賬號并發(fā)登錄, 默認(rèn)false is-share: false # 在多個服務(wù)之間共享token時,需要設(shè)置為true
- 創(chuàng)建一個配置類來初始化
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 初始化代碼 // 例如:設(shè)置全局的權(quán)限驗證規(guī)則、登錄驗證處理等 @Bean public void initSaToken() { // 初始化 Sa-Token,并設(shè)置全局的權(quán)限驗證規(guī)則 SaHolder.setGlobalAuthHandler((request, response, exception) -> { // 這里可以自定義全局的權(quán)限驗證邏輯 // 例如:返回自定義的未授權(quán)提示信息 response.setContentType("application/json;charset=UTF-8"); response.getWriter().write("{\"code\":401,\"msg\":\"未授權(quán)\"}"); response.getWriter().flush(); response.getWriter().close(); }); } }
- 在你的 Controller 中使用
sa-token
提供的注解來進行權(quán)限控制:
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 權(quán)限 public String needPermission() { return "you have permission1"; } @GetMapping("/needRole") @SaCheckRole("admin") // 這里會校驗用戶是否具有 admin 角色 public String needRole() { return "you are admin"; } }
到此這篇關(guān)于sa-token整合springboot中的代碼的文章就介紹到這了,更多相關(guān)sa-token整合springboot內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳解如何在Java?Maven項目中使用JUnit?5進行測試
這篇文章主要介紹了如何在Java?Maven項目中使用JUnit?5進行測試的相關(guān)資料,JUnit5是一個流行的Java測試框架,它涵蓋了JUnit5的概述、環(huán)境配置、編寫測試用例、運行測試、高級特性和最佳實踐,需要的朋友可以參考下2025-04-04NameNode?重啟恢復(fù)數(shù)據(jù)的流程詳解
這篇文章主要為大家介紹了NameNode?重啟恢復(fù)數(shù)據(jù)的流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02詳解spring Boot 集成 Thymeleaf模板引擎實例
本篇文章主要介紹了spring Boot 集成 Thymeleaf模板引擎實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-09-09