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
-
-


