Sa-Token使用要点
Sa-Token是一款很不错的一个轻量级 Java 权限认证框架,相比于Shiro、Spring Security,我认为更容易学习和使用,也贴近实际开发情况!
Sa-Token虽然好用,但再使用过程中还是会遇到一些问题,官方文档也不是面面俱到,在这里总结一下。
一、alone-redis插件的设计很好,可以把认证用的redis和业务用的redis分开设置,但是在配置时要注意:
1、Sa-Token的redis的客户端是基于lettuce实现的要使用lettuce配置连接池;
2、配置redis集群时,需要配置pattern: cluster这个属性,否则集群配置无法生效。
alone-redis:pattern: cluster
二、与Spring Cloud Gateway集成
由于Spring Cloud Gateway使用的时WebFlux,因此引入的包有所不同,参见官方文档,不再赘述。
Gateway使用Sa-Token的API,需要在SaReactorFilter过滤器中使用,在其它地方比如网关的GlobalFilter使用,会报“SaTokenContext 上下文尚未初始化”错误。需要先执行以下代码写入全局上下文。
SaReactorSyncHolder.setContext(exchange);
三、动态设置activeTimeout
有些特殊账户超时时间不按照默认配置,可以自由设置。如果要在程序中动态设置activeTimeout,需要dynamicActiveTimeout配置为true,启用动态 activeTimeout 功能。如不需要请设置为 false,节省缓存请求次数。
开发心得记录下来,也希望能帮到别人!上一篇文章居然是2022年发的,时间过的真快!