Spring Boot集成sa-token的項(xiàng)目實(shí)踐
sa-token
是一個(gè)輕量級(jí)且功能強(qiáng)大的權(quán)限認(rèn)證框架,它基于Java語(yǔ)言,專(zhuān)為Java開(kāi)發(fā)者設(shè)計(jì),以簡(jiǎn)化權(quán)限管理的復(fù)雜性。在Spring Boot項(xiàng)目中集成sa-token
,可以快速實(shí)現(xiàn)會(huì)話(huà)管理、權(quán)限控制等功能。本文將通過(guò)教程式寫(xiě)作,帶領(lǐng)讀者一步步實(shí)現(xiàn)Spring Boot與sa-token
的集成。
環(huán)境準(zhǔn)備
- JDK 1.8 或以上版本
- Maven 或 Gradle 作為構(gòu)建工具
- Spring Boot 2.x 版本
- IntelliJ IDEA 或 Eclipse 作為開(kāi)發(fā)IDE
集成步驟
添加依賴(lài)
首先,需要在項(xiàng)目的pom.xml
文件中添加sa-token
的依賴(lài)。以Maven為例:
<dependencies> <!-- 引入sa-token核心模塊 --> <dependency> <groupId>cn.dev33</groupId> <artifactId>sa-token-spring-boot-starter</artifactId> <version>1.21.0</version> </dependency> <!-- 其他Spring Boot依賴(lài) --> </dependencies>
配置文件
在application.properties
或application.yml
中,可以對(duì)sa-token
進(jìn)行一些基本配置,例如:
sa-token.token-name = sa-token sa-token.token-time = 3600
啟用sa-token
創(chuàng)建一個(gè)配置類(lèi),啟用sa-token
:
import org.springframework.context.annotation.Configuration; import cn.dev33.satoken.spring.SaTokenConfig; @Configuration public class SaTokenConfigDemo implements SaTokenConfig { @Override public void config() { // 此處可以配置sa-token的行為 } }
編寫(xiě)登錄邏輯
實(shí)現(xiàn)一個(gè)登錄方法,用于生成token:
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import cn.dev33.satoken.SaManager; import cn.dev33.satoken.SaToken; import cn.dev33.satoken.stp.SaLoginModel; @RestController public class LoginController { @PostMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password) { // 假設(shè)此處有數(shù)據(jù)庫(kù)校驗(yàn)邏輯 if ("admin".equals(username) && "123456".equals(password)) { // 賬號(hào)密碼校驗(yàn)成功后,使用sa-token進(jìn)行登錄 SaManager.login(10001); // 假設(shè)10001是當(dāng)前登錄用戶(hù)的id return "登錄成功"; } else { return "賬號(hào)或密碼錯(cuò)誤"; } } }
權(quán)限控制
使用@SaCheckPermission
注解實(shí)現(xiàn)權(quán)限控制:
import cn.dev33.satoken.annotation.SaCheckPermission; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class SecureController { @GetMapping("/secure") @SaCheckPermission("admin") // 只有擁有admin權(quán)限的才能訪問(wèn) public String secureInfo() { return "這是受保護(hù)的信息"; } }
示例代碼
以下是一些示例代碼的匯總,供讀者參考:
// SaTokenConfigDemo.java @Configuration public class SaTokenConfigDemo implements SaTokenConfig { @Override public void config() { // 配置sa-token行為 } } // LoginController.java @RestController public class LoginController { @PostMapping("/login") public String login(@RequestParam("username") String username, @RequestParam("password") String password) { // 登錄邏輯 } } // SecureController.java @RestController public class SecureController { @GetMapping("/secure") @SaCheckPermission("admin") public String secureInfo() { // 受保護(hù)的信息 } }
測(cè)試
啟動(dòng)應(yīng)用,訪問(wèn)/login
接口進(jìn)行登錄,然后嘗試訪問(wèn)/secure
接口,查看權(quán)限控制效果。
結(jié)語(yǔ)
通過(guò)以上步驟,我們已經(jīng)成功地將sa-token
集成到了Spring Boot項(xiàng)目中,實(shí)現(xiàn)了基本的登錄和權(quán)限控制功能。sa-token
的更多高級(jí)功能,如角色管理、權(quán)限細(xì)分等,可以通過(guò)閱讀官方文檔進(jìn)一步學(xué)習(xí)。
到此這篇關(guān)于Spring Boot集成sa-token的項(xiàng)目實(shí)踐的文章就介紹到這了,更多相關(guān)SpringBoot集成sa-token內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- sa-token整合springboot中的代碼示例展示
- SpringBoot整合Sa-Token實(shí)現(xiàn)?API?接口簽名安全校驗(yàn)功能
- SpringBoot使用Sa-Token實(shí)現(xiàn)賬號(hào)封禁、分類(lèi)封禁、階梯封禁的示例代碼
- springboot 整合 sa-token簡(jiǎn)介及入門(mén)教程
- SpringBoot?使用?Sa-Token?完成注解鑒權(quán)功能(權(quán)限校驗(yàn))
- SpringBoot使用Sa-Token實(shí)現(xiàn)權(quán)限認(rèn)證
- SpringBoot使用Sa-Token實(shí)現(xiàn)登錄認(rèn)證
- SpringBoot整合Sa-Token實(shí)現(xiàn)登錄認(rèn)證的示例代碼
相關(guān)文章
Java 根據(jù)網(wǎng)絡(luò)URL獲取該網(wǎng)頁(yè)上面所有的img標(biāo)簽并下載圖片
這篇文章主要介紹了Java 根據(jù)網(wǎng)絡(luò)URL獲取該網(wǎng)頁(yè)上面所有的img標(biāo)簽并下載圖片,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下2020-11-11java中實(shí)現(xiàn)兼容ie6 7 8 9的spring4+websocket
這篇文章主要介紹了java中實(shí)現(xiàn)兼容ie6 7 8 9的spring4+websocket程序代碼,十分的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下。2015-06-06Java使用PreparedStatement接口及ResultSet結(jié)果集的方法示例
這篇文章主要介紹了Java使用PreparedStatement接口及ResultSet結(jié)果集的方法,結(jié)合實(shí)例形式分析了PreparedStatement接口及ResultSet結(jié)果集的相關(guān)使用方法與操作注意事項(xiàng),需要的朋友可以參考下2018-07-07springboot接入netty實(shí)現(xiàn)在線(xiàn)統(tǒng)計(jì)人數(shù)
本文主要介紹了springboot接入netty實(shí)現(xiàn)在線(xiàn)統(tǒng)計(jì)人數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-03-03淺談Java double 相乘的結(jié)果偏差小問(wèn)題
下面小編就為大家?guī)?lái)一篇淺談Java double 相乘的結(jié)果偏差小問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01Spring?Data?JPA實(shí)現(xiàn)審計(jì)功能過(guò)程詳解
Spring?Data?JPA為跟蹤持久性層的變化提供了很好的支持。通過(guò)使用審核,我們可以存儲(chǔ)或記錄有關(guān)實(shí)體更改的信息,例如誰(shuí)創(chuàng)建或更改了實(shí)體以及何時(shí)進(jìn)行更改2023-02-02SpringBoot中AOP的動(dòng)態(tài)匹配和靜態(tài)匹配詳解
這篇文章主要介紹了SpringBoot中AOP的動(dòng)態(tài)匹配和靜態(tài)匹配詳解,在創(chuàng)建代理的時(shí)候?qū)δ繕?biāo)類(lèi)的每個(gè)連接點(diǎn)使用靜態(tài)切點(diǎn)檢查,如果僅通過(guò)靜態(tài)切點(diǎn)檢查就可以知道連接點(diǎn)是不匹配的,則在運(yùn)行時(shí)就不再進(jìn)行動(dòng)態(tài)檢查了,需要的朋友可以參考下2023-09-09關(guān)于Spring Boot獲取bean的3種方式
這篇文章主要介紹了關(guān)于Spring Boot獲取bean的3種方式,在spring中ApplicationContext這個(gè)上下文對(duì)象是獲取bean的基礎(chǔ),需要的朋友可以參考下2023-04-04@RequestMapping 如何使用@PathVariable 從URI中獲取參數(shù)
這篇文章主要介紹了@RequestMapping 如何使用@PathVariable 從URI中獲取參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-08-08