輕量級 Java 權限認證框架Sa-Token初體驗
作為一個又菜又愛玩的程序猴(自我感覺離猿總差一點點),GitHub擁有7.7k的star項目,自然是要找時間試試的。
項目圖
第一次看到這個項目的時候,是在gitee的GVP推薦中看到的,一直都沒有時間深入的了解。最近可用于摸魚的時間多了起來,簡單看了下這個項目的文檔,驚訝于文檔的詳細,是我喜歡的樣子(中文文檔),所以決定寫兩行代碼試試。
先建一個基礎springboot項目
基礎項目
項目中僅包含spring-boot-starter、spring-boot-starter-test、spring-boot-starter-web
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.0.3.RELEASE</version>
</dependency>
隨便給指定一個端口
server:
port: 9999
啟動一下
沒有問題,接下來在項目中引入Sa-Token依賴
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.28.0</version>
</dependency>
重啟項目
引入成功
項目啟動時打印出來了Sa-Token的內容,引入成功。
新建一個Controller,用來測試基本功能
package com.demo.satoken;
import cn.dev33.satoken.stp.StpUtil;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
("/user/")
public class UserController {
// 測試登錄,瀏覽器訪問: http://localhost:9999/user/doLogin?username=zhang&password=123456
("doLogin")
public String doLogin(String username, String password) {
// 此處僅作模擬示例,真實項目需要從數據庫中查詢數據進行比對
if("zhang".equals(username) && "123456".equals(password)) {
StpUtil.login(10001);
return "登錄成功";
}
return "登錄失敗";
}
// 查詢登錄狀態,瀏覽器訪問: http://localhost:9999/user/isLogin
("isLogin")
public String isLogin() {
return "當前會話是否登錄:" + StpUtil.isLogin();
}
}
再次重啟項目
先在瀏覽器打開
http://localhost:9999/user/isLogin,查詢一下登錄狀態
未登錄
登錄一下
登錄
再次檢查登錄狀態
登錄成功
看得出來,比起Shiro、SpringSecurity這些被廣泛使用的鑒權項目,這個項目的集成使用方式可以簡單到令人發指。突然更有興趣了,后續我會繼續體驗這個項目,有興趣了解這個項目的請自行查看。
文檔地址:http://sa-token.dev33.cn/
項目地址:
https://gitee.com/dromara/sa-token