sa-token整合springboot中的代碼示例展示
sa-token 是一個(gè)輕量級(jí)的 Java 權(quán)限認(rèn)證框架,它可以很方便地集成到 Spring Boot 項(xiàng)目中,以提供簡(jiǎn)潔的認(rèn)證和授權(quán)功能。雖然 sa-token 本身并不直接支持 OAuth 2.0 的集成,但你可以將 OAuth 2.0 的認(rèn)證流程與 sa-token 的權(quán)限控制結(jié)合起來(lái)使用。
以下是一個(gè)簡(jiǎn)單的示例,展示了如何將 sa-token 整合到 Spring Boot 項(xiàng)目中:
添加 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 過(guò)期時(shí)間, 單位秒 activity-timeout: -1 # 臨時(shí)token有效時(shí)間, 單位秒,-1表示永不過(guò)期 is-concurrent: true # 是否允許同一賬號(hào)并發(fā)登錄, 默認(rèn)false is-share: false # 在多個(gè)服務(wù)之間共享token時(shí),需要設(shè)置為true
- 創(chuàng)建一個(gè)配置類來(lái)初始化
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)限驗(yàn)證規(guī)則、登錄驗(yàn)證處理等
@Bean
public void initSaToken() {
// 初始化 Sa-Token,并設(shè)置全局的權(quán)限驗(yàn)證規(guī)則
SaHolder.setGlobalAuthHandler((request, response, exception) -> {
// 這里可以自定義全局的權(quán)限驗(yà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提供的注解來(lái)進(jìn)行權(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") // 這里會(huì)校驗(yàn)用戶是否具有 permission1 權(quán)限
public String needPermission() {
return "you have permission1";
}
@GetMapping("/needRole")
@SaCheckRole("admin") // 這里會(huì)校驗(yàn)用戶是否具有 admin 角色
public String needRole() {
return "you are admin";
}
}到此這篇關(guān)于sa-token整合springboot中的代碼的文章就介紹到這了,更多相關(guān)sa-token整合springboot內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
一文詳解如何在Java?Maven項(xiàng)目中使用JUnit?5進(jìn)行測(cè)試
這篇文章主要介紹了如何在Java?Maven項(xiàng)目中使用JUnit?5進(jìn)行測(cè)試的相關(guān)資料,JUnit5是一個(gè)流行的Java測(cè)試框架,它涵蓋了JUnit5的概述、環(huán)境配置、編寫(xiě)測(cè)試用例、運(yùn)行測(cè)試、高級(jí)特性和最佳實(shí)踐,需要的朋友可以參考下2025-04-04
NameNode?重啟恢復(fù)數(shù)據(jù)的流程詳解
這篇文章主要為大家介紹了NameNode?重啟恢復(fù)數(shù)據(jù)的流程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
java如何實(shí)現(xiàn)判斷文件的真實(shí)類型
本篇文章主要介紹了java如何實(shí)現(xiàn)判斷文件的真實(shí)類型,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08
使用Java實(shí)現(xiàn)2048小游戲代碼實(shí)例
這篇文章主要介紹了使用Java實(shí)現(xiàn)2048小游戲代碼實(shí)例,2048 游戲是一款益智類游戲,玩家需要通過(guò)合并相同數(shù)字的方塊,不斷合成更大的數(shù)字,最終達(dá)到2048,游戲規(guī)則簡(jiǎn)單,但挑戰(zhàn)性很高,需要玩家靈活運(yùn)用策略和計(jì)算能力,本文將使用Java代碼實(shí)現(xiàn),需要的朋友可以參考下2023-10-10
Java 詳細(xì)講解線程安全與同步附實(shí)例與注釋
線程安全是多線程編程時(shí)的計(jì)算機(jī)程序代碼中的一個(gè)概念。在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會(huì)通過(guò)同步機(jī)制保證各個(gè)線程都可以正常且正確的執(zhí)行,不會(huì)出現(xiàn)數(shù)據(jù)污染等意外情況2022-04-04
詳解spring Boot 集成 Thymeleaf模板引擎實(shí)例
本篇文章主要介紹了spring Boot 集成 Thymeleaf模板引擎實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-09-09
SpringBoot實(shí)現(xiàn)啟動(dòng)類的存放位置
這篇文章主要介紹了SpringBoot實(shí)現(xiàn)啟動(dòng)類的存放位置,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-01-01

