mcpField
S
sa-token-integration

sa-token-integration

github.com/full-stack-skillsSecurity770 installsUpdated 4w ago
Repository

About sa-token-integration

sa-token-integration is a Sa-Token integration skill for developers configuring authentication components. It covers JWT, Redis, AOP, template engines, and RPC, with setup guidance and scope boundaries.

Key features

  1. 01Three JWT integration modes
  2. 02Redis persistence and isolation
  3. 03Service-layer annotation checks
  4. 04Quick-login page integration
  5. 05Template-engine auth tags
  6. 06RPC context propagation

Use cases

  1. 01Configure stateless JWT authentication
  2. 02Share sessions across service instances
  3. 03Apply annotation checks in service layers
  4. 04Control content visibility in templates

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/full-stack-skills/java-skills --skill sa-token-integration

After installing, type/sa-token-integrationin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

evaluation-report.html
agents/
openai.yaml
examples/
integration-demo.md
references/
dao-extend.md
jwt-extend.md

Details

From the project README

Sa-Token 集成扩展

基于 sa-token-doc/plugin/ 集成类文档。

适用场景

当用户需要以下场景时,激活此技能:

  • JWT无状态认证 — 将登录信息编码到Token中,减少Redis查询,适合高并发场景
  • 分布式Session共享 — 多实例部署时需要共享会话数据
  • Redis缓存隔离 — 将Sa-Token的Redis与业务Redis物理分开
  • Service层注解鉴权 — 在Service层(非Controller)使用@SaCheckLogin等注解
  • 快速搭建登录页面 — 开发环境或内管系统零代码登录页
  • 模板引擎鉴权标签 — Thymeleaf/Freemarker页面中控制按钮显隐

Workflow

Step 1. 确定集成需求 — 选择JWT/Redis/AOP/模板等模块 Step 2. 引入依赖 — 添加对应Maven/Gradle依赖 Step 3. 配置参数 — 配置jwt-secret-key/Redis连接/Alone-Redis等 Step 4. 注入实现 — 注入StpLogic、注册过滤器、配置模板引擎 Step 5. 验证测试 — 确认集成生效,测试核心功能是否正常

Capability Boundaries

✅ Strong Suits
  1. JWT集成 — Simple/Mixin/Stateless三种模式选择
  2. Redis持久化 — JDK序列化/JSON序列化两种方式
  3. Alone-Redis独立Redis — 认证缓存与业务缓存物理隔离
  4. AOP注解鉴权 — 在Service层使用@SaCheckLogin等注解
  5. SpEL表达式 — @SaCheckEL使用Spring表达式
  6. Quick-Login快速登录 — 零代码注入登录页面
  7. JSON序列化扩展 — Jackson/Fastjson/Fastjson2/Snack3/Snack4
  8. 模板引擎集成 — Thymeleaf/Freemarker自定义标签
  9. RPC集成 — Dubbo/Dubbo3/gRPC上下文传播
⚠️ Requirements
  1. JWT需要配置 jwt-secret-key
  2. Redis需要配置 spring.redis 连接信息
  3. AOP注解与拦截器注解不能同时使用
❌ Out of Scope
  1. 基础登录/权限/注解鉴权 → sa-token
  2. SSO → sa-token-sso
  3. OAuth2.0 → sa-token-oauth2
  4. 微服务鉴权 → sa-token-micro

参考文档

主题文件来源
JWT三模式(Simple/Mixin/Stateless)references/jwt-extend.mdGitHub
Redis持久化+Alone-Redisreferences/dao-extend.mddao-extend、integ-redis

FAQ

Q: JWT三种模式怎么选? A: Simple模式推荐(功能完整:踢人、封禁、会话管理都支持)。需要无状态选Stateless(但踢人/封禁不可用)。Mixin介于两者之间。

Q: Redis两种序列化方式选哪个? A: 推荐RedisTemplate JSON序列化(数据可读,方便排查)。JDK序列化兼容性更好但数据是乱码。

Q: Alone-Redis和普通Redis有什么区别? A: Alone-Redis使用独立的Redis连接和数据库,与业务Redis完全隔离,保证认证缓存不受业务影响。

Q: AOP注解鉴权和拦截器鉴权能同时用吗? A: 不能同时使用。AOP用于Service层,拦截器用于Controller层,选择一种即可。

Q: Quick-Login适合生产环境吗? A: 适合小系统或内部管理系统。生产环境建议自定义登录页面。

Q: 模板引擎标签支持哪些功能? A: 支持 sa:login(登录校验)、sa:hasRole(角色判断)、sa:hasPermission(权限判断)等标签。

Gotchas

  1. Simple模式 is-share 恒等于false — 与Extra数据不兼容,无法共用token
  2. Mixin模式 is-concurrent 必须为true — 否则踢人下线API不可用
  3. JWT集成后Token变为JWT格式 — 不再是uuid格式,内容可解码查看
  4. Alone-Redis有独立的配置前缀 sa-token-alone-redis — 不是 spring.redis
  5. Redis JSON序列化后Session数据在Redis中可读 — 可在Redis客户端中直接查看
  6. AOP注解和拦截器注解不能混用 — 选了AOP就不能再用拦截器
  7. Quick-Login默认账号密码 sa/123456 — 生产环境务必修改
  8. Dubbo集成自动处理上下文传播 — 无需额外代码,引入依赖即可

Data Privacy

本技能不收集、存储或传输任何用户数据。所有代码示例仅供本地开发参考。

Comments

Markdown supported