代码拉取完成,页面将自动刷新
同步操作将从 Bootx/Sa-Token-Plugin 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
Sa-Token第三方插件实现,基于Sa-Token-Core,提供一些与官方不同实现机制的的插件,未明确说明的情况下都是适用在Servlet环境下。版本号跟随Sa-Token官方版本号,当前版本号为 v1.25.0-SNAPSHOT
。
该插件的依赖未发布到maven中央仓库,引入时需要手动在根pom中添加一下jitpack
镜像仓库,推荐将jitpack
镜像放到最后一个
<repositories>
<!-- 放在其他镜像配置之后 -->
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
介绍
与官方实现思想不同,这个插件式聚合了官方多个redis
插件包的功能,在原有功能基础上扩展了FastJson
序列化,后期将将支持JRedis
和Lucence
的配置切换。同时在配置方式上与官方插件有区别,通过继承SaTokenRedisConfiguration
后重写方法可以进行精细化的自定义配置。
注意,不可以与官方Redis存储插件一起引入,否则会有冲突
<dependency>
<groupId>com.gitee.bootx</groupId>
<artifactId>sa-token-plugin-redis</artifactId>
<version>${sa-token.plugin.version}</version>
</dependency>
yaml参数配置项
sa-token:
plugins:
redis:
# 序列化方式, 支持JDK、JACKSON、FASTJSON三种
serialization: fastjson
# 是否开启独立redis存储
alone: true
# 独立redis存储配置,同redis配置项
alone-redis:
xxx: xxx
自定义配置
/**
* 自定义配置
* @author xxm
* @date 2021/7/30
*/
@Configuration
@RequiredArgsConstructor
public class MySaTokenDaoRedisConfiguration extends SaTokenRedisConfiguration {
private final ObjectMapper objectMapper;
/**
* 自定义jdk序列化方式
*/
@Override
protected JdkSerializationRedisSerializer JdkRedisSerializer() {
return super.JdkRedisSerializer();
}
/**
* jackson序列化
*/
@Override
protected GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer() {
return super.jackson2JsonRedisSerializer();
}
/**
* 处理ObjectMapper对象,使用jackson序列化情况下, 可以重写这个方法进行自定义ObjectMapper,用于支持java8
* LocalDateTime等一些类
*/
@Override
protected ObjectMapper objectMapper() {
return super.objectMapper();
}
/**
* 自定义FastJson序列化
*/
@Override
protected GenericFastJsonRedisSerializer fastJsonRedisSerializer() {
return super.fastJsonRedisSerializer();
}
/**
* 扩展redis存储时的序列化方式,默认提供jdk、Jackson和FastJson三种
*/
@Override
public RedisSerializer<Object> redisSerializer() {
return super.redisSerializer();
}
/**
* 自定义redis连接方式,当前提供lettuce方式的连接
*/
@Override
protected RedisConnectionFactory redisConnectionFactory() {
return super.redisConnectionFactory();
}
/**
* StringRedisTemplate
*/
@Override
protected StringRedisTemplate stringRedisTemplate() {
return super.stringRedisTemplate();
}
/**
* RedisTemplate 存储非字符串的数据是的redis客户端
*/
@Override
protected RedisTemplate<String, Object> objectRedisTemplate() {
return super.objectRedisTemplate();
}
/**
* 重写自定义的Sa-Token持久层接口
*/
@Override
public SaTokenDao saTokenDaoRedis() {
return super.saTokenDaoRedis();
}
}
介绍
有时候我们会有一些接口不需要登录就可以访问,但专门在配置文件中配置也比较麻烦,所以提供一个在接口上添加注解就可以忽略权限验证的插件。
添加pom依赖
<dependency>
<groupId>com.gitee.bootx</groupId>
<artifactId>sa-token-plugin-ignore</artifactId>
<version>${sa-token.plugin.version}</version>
</dependency>
注册到拦截器中
@Configuration
public class SaTokenConfigure implements WebMvcConfigurer {
// 注册拦截器
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 注册Sa-Token的路由拦截器
registry.addInterceptor(new SaRouteInterceptor(
new SaRouteInterceptor((req, res, handler)->
// 将match中的SaFunction function参数设置为IgnoreSaRouteFunction对象,就可以实现添加注解忽略权限验证
SaRouter.match(Collections.singletonList("/**"),
Collections.singletonList("/login"),
new IgnoreSaRouteFunction(handler)))
.addPathPatterns("/**");
}
}
注解形式
// 添加 IgnoreAuth 注解后,将忽略本接口的权限认证,不适用与aop模式
@IgnoreAuth
@ApiOperation("测试")
@GetMapping("/hello")
public ResResult<String> hello(){
return Res.ok("hello");
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。