spring boot集成sa-token
时间: 2023-10-01 14:06:26 浏览: 195
集成 sa-token 可以让 Spring Boot 应用快速实现权限认证、RBAC、SSO、踢人下线等功能。下面是集成的步骤:
1. 引入 sa-token 的依赖
在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>cn.dev33.satoken</groupId>
<artifactId>sa-token-spring-boot-starter</artifactId>
<version>1.22.1-RELEASE</version>
</dependency>
```
2. 配置 sa-token
在 application.properties 或 application.yml 文件中添加以下配置:
```yaml
# sa-token 配置
sa-token:
# token 持久化类型:0-内存版、1-redis版、2-mongodb版、3-jwt版
store-type: 1
# redis 配置
redis:
mode: standalone
host: 127.0.0.1
port: 6379
database: 0
timeout: 0
# 其他配置...
```
其中,store-type 表示 sa-token 的持久化类型,可以选择内存版、redis版、mongodb版或 jwt 版。此处选择了 redis 版。
3. 开启 sa-token
在 Spring Boot 应用启动类上加上 @SaTokenApplication 注解即可开启 sa-token 的功能:
```java
@SpringBootApplication
@SaTokenApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
```
4. 使用 sa-token
现在,我们可以在代码中使用 sa-token 提供的 API 来实现权限认证、RBAC、SSO、踢人下线等功能了。比如:
```java
@RestController
public class MyController {
// 登录接口
@PostMapping("/login")
public String login(String account, String password) {
// 模拟登录
if ("admin".equals(account) && "123456".equals(password)) {
// 登录成功,生成token
String token = SaTokenManager.createToken(account);
// 返回token
return token;
} else {
// 登录失败
return "账号或密码错误";
}
}
// 需要登录才能访问的接口
@GetMapping("/user")
public String user() {
// 获取当前登录账号
String account = SaTokenManager.getAccount();
// 返回当前登录账号
return "当前登录账号:" + account;
}
// 需要权限才能访问的接口
@GetMapping("/admin")
public String admin() {
// 检查是否具有admin角色
boolean isAdmin = SaTokenManager.hasRole("admin");
if (isAdmin) {
return "欢迎管理员访问";
} else {
return "没有访问权限";
}
}
// 注销登录接口
@PostMapping("/logout")
public String logout() {
// 注销登录
SaTokenManager.logout();
return "注销成功";
}
}
```
以上是使用 sa-token 的基本示例,你可以根据自己的需求,使用 sa-token 提供的更多 API 实现更复杂的功能。
阅读全文