🔥🔥🔥Mall4j 2.0 发布拉~
Mall4j-2.0 重写授权逻辑
Mall4j开源登录重构啦!
此次开源登录重构更新了不少内容,详情如下:
-
去除Spring OAuth2使用自研的Token代替授权
去除
spring-security-oauth2
相关依赖,自己写TokenStore
来对Token进行管理,包括存储token并返回,刷新token,清除token,校验token等方法 -
使用Controller代替Filter进行登录授权
移除原本
LoginAuthenticationFilter
之类的登录过滤,使用AdminLoginController
和LoginController
进行登录授权 -
保留Spring Security作为Web防火墙,不使用security的认证授权登录
使用
MallWebSecurityConfigurerAdapter
来实现防火墙功能 -
将Token相关逻辑重新抽取,阅读起来简单易懂
- 将
yami-shop-security
模块拆分成三大块,分别为admin,api,common模块 - 移除原
com.yami.shop.security.exception
下的异常,使用YamiShopBindException
进行统一处理 - 统一了
SecurityUtils
中获取普通用户和平台用户信息的代码 - 移除原
yami-shop-api
模块下com.yami.shop.api.security
的代码,同时移除原yami-shop-admin
模块下com.yami.shop.admin.security
的代码
- 将
-
前端登录加密
- 前端使用密钥对时间戳+密码组成的字符串进行ASE加密
- 后台在
com.yami.shop.security.common.manager.PasswordManager
的decryptPassword
方法对前端传过来的密码进行解密
-
后台登录验证码更新
-
引入captcha做验证码功能
<dependency> <groupId>com.anji-plus</groupId> <artifactId>captcha</artifactId> <version>1.3.0</version> </dependency>
-
yami-shop-security/yami-shop-security-common/src/main/resources/captcha
新增资源文件 -
使用
CaptchaConfig
存储底图到redis中,CaptchaCacheServiceRedisImpl
适配验证码在redis中的储存
-
-
使用Kryo序列化替代原本的Fst序列化
为了兼容token和验证码相关序列化逻辑,此番Mall4j使用Kryo替代了原本的fst
- kryo版本:4.0.2
- 移除原本的
com.yami.shop.common.serializer.redis.FstRedisSerializer
,新增了com.yami.shop.common.serializer.redis.KryoRedisSerializer
做redis序列化
-
更新了版本依赖
-
spring-boot:2.3.12.RELEASE
-
升级了一系列第三方依赖库
-
hutool:5.7.15
-
swagger-bootstrap:1.9.6
-
redisson:3.12.5
-
由于redisson版本提升,相关配置文件也相对应更新了,删除了原本
singleServerConfig
的pingTimeout
、reconnectionTimeout
、failedAttempts
这三个配置 -
序列化由原本的
codec: class: com.yami.shop.common.serializer.redisson.FstCodec
修改为
codec: class: org.redisson.codec.KryoCodec
-
-
-
新增了版本依赖
- transmittable-thread-local:2.12.1
-