sa-token的配置类
时间: 2024-01-11 11:05:45 浏览: 33
sa-token的配置类是SaTokenConfigure.java。这个配置类使用@Configuration注解标记,并实现了WebMvcConfigurer接口。在该配置类中,通过addInterceptors方法注册了Sa-Token的注解拦截器,开启了注解式鉴权功能。在拦截器中,使用SaRouter来配置路由规则,并通过StpUtil来进行登录认证和权限验证。具体的配置内容可以参考引用\[3\]中的代码。
#### 引用[.reference_title]
- *1* *2* *3* [SpringBoot集成权限认证框架(Sa-Token)](https://blog.csdn.net/qq_36213352/article/details/123800553)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
相关问题
sa-token的全局配置
Sa-Token的全局配置可以通过在系统中添加SaTokenConfig类来实现。在SaTokenConfig类中,可以配置全局的鉴权规则、路由拦截鉴权和全局错误处理等。
首先,可以使用`@Configuration`注解将SaTokenConfig类标记为配置类。然后,可以使用`@Bean`注解将SaToken的配置对象进行实例化,并进行相应的配置。
在全局鉴权规则的配置中,可以使用`@Bean`注解将`AuthRule`对象进行实例化,并通过`addRule`方法添加鉴权规则。例如,可以使用`AuthRule.checkPermit()`方法添加一个允许所有请求通过的鉴权规则。
在路由拦截鉴权的配置中,可以使用`@Bean`注解将`RouterInterceptor`对象进行实例化,并通过`addPathPatterns`方法添加需要进行鉴权的路由路径。例如,可以使用`addPathPatterns("/**")`方法添加对所有路径的鉴权拦截。
在全局错误处理的配置中,可以使用`@Bean`注解将`ErrorRender`对象进行实例化,并通过`setError`方法进行错误处理的配置。例如,可以使用`setError(e -> gson.toJson(Result.bad(e.getMessage())))`方法将错误信息转换为JSON格式并返回。
通过以上配置,可以实现Sa-Token的全局配置,包括鉴权规则、路由拦截鉴权和全局错误处理等。这样,在系统中使用Sa-Token时,就可以按照全局配置进行鉴权和错误处理了。
#### 引用[.reference_title]
- *1* *2* *3* [Spring-Cloud-Gateway 整合 Sa-Token 全局过滤器之路由匹配](https://blog.csdn.net/m0_51810668/article/details/130980207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
spring boot集成sa-token
集成 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 实现更复杂的功能。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)