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