【微服务】springboot 整合 SA-Token 使用详解
    		       		warning:
    		            这篇文章距离上次修改已过421天,其中的内容可能已经有所变动。
    		        
        		                
                
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import cn.dev33.satoken.SaManager;
import cn.dev33.satoken.config.SaTokenConfig;
import cn.dev33.satoken.stp.StpInterface;
import cn.dev33.satoken.spring.SaTokenSpringUtil;
 
/**
 * Sa-Token 配置类 
 */
@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
 
    // 配置Sa-Token的全局配置参数
    @Bean
    public SaTokenConfig getSaTokenConfig() {
        return new SaTokenConfig()
                .setTokenName("satoken")
                .setTimeout(1800) // 指定token的默认超时时间为30分钟
                .setActivityTimeout(-1); // 指定用户活跃时间为-1,代表永不过期
    }
 
    // 注册Sa-Token的接口实现
    @Bean
    public StpInterface getStpInterface() {
        return new StpInterface() {
            // 返回一个用户的唯一标识,如用户id
            @Override
            public Object getLoginId(Object user) {
                return ((User) user).getId();
            }
 
            // 返回此用户的权限字符串集合,例如:Set<String> 
            @Override
            public List<String> getPermissionList(Object loginId, String loginType) {
                // 这里可以根据实际情况,从数据库获取用户权限集合
                return null;
            }
 
            // 返回此用户的角色字符串集合,例如:Set<String> 
            @Override
            public List<String> getRoleList(Object loginId, String loginType) {
                // 这里可以根据实际情况,从数据库获取用户角色集合
                return null;
            }
        };
    }
 
    // 注册Sa-Token的SpringUtil
    @Bean
    public SaTokenSpringUtil getSaTokenSpringUtil() {
        return new SaTokenSpringUtil();
    }
 
    // 注册Sa-Token的拦截器
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // 注册Sa-Token的Session拦截器,打开注解功能
        registry.addInterceptor(new SaInterceptor(SaManager.getConfig()))
                .addPathPatterns("/**") // 拦截所有请求
                .excludePathPatterns("/static/**", "/login"); // 排除静态资源与登录接口
    }
}这段代码展示了如何在Spring Boot项目中配置和使用Sa-Token。首先,我们定义了一个SaTokenConfigure类,实现了WebMvcConfigurer接口,在这个类中我们配置了Sa-Token的全局配置参数,并注册了自定义的
评论已关闭