diff --git a/sa-token-doc/_sidebar.md b/sa-token-doc/_sidebar.md index 6a1f255f..261e7442 100644 --- a/sa-token-doc/_sidebar.md +++ b/sa-token-doc/_sidebar.md @@ -87,6 +87,7 @@ - [Quick-Login快速登录插件](/plugin/quick-login) - [Alone独立Redis插件](/plugin/alone-redis) - [缓存层扩展](/plugin/dao-extend) + - [自定义序列化插件](/plugin/custom-serializer) - [和 Thymeleaf 集成](/plugin/thymeleaf-extend) - [和 Freemarker 集成](/plugin/freemarker-extend) - [注解鉴权 SpEL 表达式](/plugin/spel-at) diff --git a/sa-token-doc/plugin/custom-serializer.md b/sa-token-doc/plugin/custom-serializer.md new file mode 100644 index 00000000..9669136b --- /dev/null +++ b/sa-token-doc/plugin/custom-serializer.md @@ -0,0 +1,105 @@ +# 自定义序列化插件 +--- + +引入此插件可以为 Sa-Token 提供一些有意思的序列化方案。(娱乐向,不建议上生产) + + + +``` xml + + + cn.dev33 + sa-token-serializer-features + ${sa.top.version} + +``` + +``` gradle +// Sa-Token 自定义 String 序列化方案合集 +implementation 'cn.dev33:sa-token-serializer-features:${sa.top.version}' +``` + + + +#### 1、SaSerializerForBase64UseTianGan +base64 编码,采用 十大天干、十二地支 等64个中文字符作为元字符集 + +``` java +// 设置序列化方案: base64 编码,采用 十大天干、十二地支 等64个中文字符作为元字符集 +@PostConstruct +public void rewriteComponent() { + SaManager.setSaSerializerTemplate(new SaSerializerForBase64UseTianGan()); +} +``` + +效果图: + +![sa-custom-serializer-tiangan.png](https://oss.dev33.cn/sa-token/doc/plugin/sa-custom-serializer-tiangan.png?x-oss-process=style/st 's-w') + + +#### 2、SaSerializerForBase64UsePeriodicTable +base64 编码,采用 元素周期表 前六十四位作为元字符集 + +``` java +// 设置序列化方案: base64 编码,采用 元素周期表 前六十四位作为元字符集 +@PostConstruct +public void rewriteComponent() { + SaManager.setSaSerializerTemplate(new SaSerializerForBase64UsePeriodicTable()); +} +``` + +效果图: + +![sa-custom-serializer-yszqb.png](https://oss.dev33.cn/sa-token/doc/plugin/sa-custom-serializer-yszqb.png?x-oss-process=style/st 's-w') + + + +#### 3、SaSerializerForBase64UseSpecialSymbols +base64 编码,采用64个特殊符号作为元字符集 + +``` java +// 设置序列化方案: base64 编码,采用64个特殊符号作为元字符集 +@PostConstruct +public void rewriteComponent() { + SaManager.setSaSerializerTemplate(new SaSerializerForBase64UseSpecialSymbols()); +} +``` + +效果图: + +![sa-custom-serializer-tsfh.png](https://oss.dev33.cn/sa-token/doc/plugin/sa-custom-serializer-tsfh.png?x-oss-process=style/st 's-w') + + +#### 4、SaSerializerForBase64UseEmoji +base64 编码,采用 64 个 Emoji 小黄脸作为元字符集,无填充字符 + +``` java +// 设置序列化方案: base64 编码,采用 64 个 Emoji 小黄脸作为元字符集,无填充字符 +@PostConstruct +public void rewriteComponent() { + SaManager.setSaSerializerTemplate(new SaSerializerForBase64UseEmoji()); +} +``` + +效果图: + +![sa-custom-serializer-emoji.png](https://oss.dev33.cn/sa-token/doc/plugin/sa-custom-serializer-emoji.png?x-oss-process=style/st 's-w') + +![sa-custom-serializer-emoji2.png](https://oss.dev33.cn/sa-token/doc/plugin/sa-custom-serializer-emoji2.png?x-oss-process=style/st 's-w') + + + + + + + + + + + + + + + + +