若依版本3.8.8,鉴权采用security框架,这种框架太重,项目中想实现对外提供接口功能。尽快减少修改原框架的逻辑基础上,采用satoken实现。
子模块引入
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot3-starter</artifactId>
<version>1.39.0</version>
</dependency>
配置文件
@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册 Sa-Token 拦截器,定义详细认证规则
registry.addInterceptor(new SaInterceptor(handler -> {
// 指定一条 match 规则
SaRouter
.match("/apis/**") // 拦截的 path 列表,可以写多个 */
.notMatch("/apis/member/test") // 排除掉的 path 列表,可以写多个
.check(r -> StpUtil.checkLogin()); // 要执行的校验动作,可以写完整的 lambda 表达式
})).addPathPatterns("/**");
}
@Bean
public StpLogic getStpLogicJwt() {
return new StpLogicJwtForSimple();
}
}
修改原securityConfig文件,剔除拦击路径
最后在你的子模块controller层可使用
@RequestMapping("test")
public AjaxResult getTest(){
// DtoSysDept sysDept=sysDeptService.getSysDeptById(100l);
//StpUtil.login(10001);
//log.info("获取登陆信息{}",StpUtil.getTokenInfo());
String token = SaTempUtil.createToken("10014", 200);
log.info("信息1{}",token);
String value = SaTempUtil.parseToken(token, String.class);
log.info("信息2{}",value);
return AjaxResult.success("获取成功");
}
测试下功能,顺利。