Skip to content

Releases

v1.0.5

Choose a tag to compare

@erikwang2013 erikwang2013 released this 05 Nov 14:58

Fixed

  • MSRV 1.88:memcached feature 经 r2d2 解析到 scheduled-thread-pool 0.2.8(其依赖 parking_lot 0.13 要求 Rust 1.95),导致 CI 的 MSRV 任务失败;显式锁定 scheduled-thread-pool 0.2.7,恢复 1.88 兼容

v1.0.4

Choose a tag to compare

@erikwang2013 erikwang2013 released this 05 Nov 14:41

Security

  • 依赖安全更新:zstd / zstd-safe / zstd-sys、tokio、rustls / rustls-webpki / webpki-roots / webpki-root-certs 升级到修复版本;cargo audit 无漏洞

Fixed

  • redis / memcached 驱动在外部令牌 exp 为 i64 极值时 TTL 计算溢出 panic(debug 构建):改用饱和运算,并补回归断言

Changed

  • 文档 SVG 字体族全部改为开源字体(Source Han Sans SC / Noto Sans SC / WenQuanYi Micro Hei / DejaVu Sans),不再引用商业字体;同步重绘社交预览图
  • 清理 ASSETS-LICENSE.md 中不存在的第三方素材/字体文件引用
  • 仓库清理:移除本地 AI 工具生成的无效文件(不进入 crate 包,不影响 API)

v1.0.3

Choose a tag to compare

@erikwang2013 erikwang2013 released this 18 Oct 16:17

项目宠物重绘为卡通橘猫 Kee,12 种表情形态接入代码。

新增

  • mascot::Expression:12 种宠物表情形态(笑 / 欢乐 / 哭 / 沮丧 / 惊恐 / 愤怒 / 撒娇 / 卖萌 / 讨好 / 敲打 / 捂脸 / 吐舌头)编译期内嵌,提供 ALL / name() / cn_name() / svg()

变更

  • 项目宠物重绘为卡通橘猫 Kee:猫有九命=九种接入,八根胡须=八个框架适配层,爪中钥匙=JWT,颈圈蓝盾=校验与黑名单
  • docs/pet.svg、12 种表情 SVG、终端横幅、社交预览图、站点图标 / favicon 同步更新
  • README(中英)去除 HTML 标签,改用纯 Markdown;补英文表情表与 mascot::Expression 用法示例
  • Expression 查询方法补 #[must_use]

验证

  • cargo fmt --check
  • cargo test --all-features(本地无 redis / memcached 时以 JWT_TEST_SKIP_SERVICES=1 跳过服务用例;CI 使用真实服务)
  • cargo clippy --all-features --all-targets -- -D warnings
  • RUSTDOCFLAGS="-D warnings" cargo doc --all-features --no-deps

变更详情见 CHANGELOG.md;crates.io:jwt-rust 1.0.3

v1.0.2

Choose a tag to compare

@erikwang2013 erikwang2013 released this 11 Oct 10:15

安全与健壮性修复包 + 全库文档去 PHP 化。

修复(P1×3 / P2×8)

  • redis:缺省 servers 曾写死 memcached 端口导致静默错连;补齐 1 秒建连与读写超时(防半开连接无限阻塞)
  • leeway 上限校验(≤ 86400 秒):挡住在 debug 下 panic / release 下全量过期的配置笔误
  • memcached:单台宕机只剔除该台、其余照常服务(每服务器独立连接池 + 确定性哈希路由 + 读写锁并发)
  • RetryTokenStorage 保持 Config 错误类型;无 exp 令牌 blacklist() 显式报错(不再假成功)
  • file 驱动:已存在目录拒绝 group/other 可写 + 写探测;空路径不再落 CWD;空 jti / 超长 hex jti 键护栏
  • TOML 空 path 归一化;refresh() 中不可达的 expect 消除

安全

  • JwtConfig 的 Debug 输出打码 secret_key;HMAC 算法拒收 PEM 材料(公钥误配即万能伪造)
  • 新增安全负路径回归锁:篡改签名 / 算法混淆 / alg:"none" / future nbf / leeway / PEM 误配

文档

  • 全部文档与注释移除 PHP 引用,改按项目自身理由陈述行为取舍;中英 README 同步
  • 新增须知:axum attach 时序、is_blacklisted 的 fail-open、file 目录位置与权限、memcached 键长上限

工程化

  • 性能:Validation 预构建、SQLite prepare_cached、redis 关闭默认 feature、hex 编码免逐字节分配
  • CI 新增门禁:cargo doc -D warnings、cargo package、core-only + 逐单 feature 编译矩阵(本版本 CI 全绿)
  • 测试 134(93 单元 + 40 集成 + 1 doctest);redis / memcached 用例在真实服务下运行

变更详情见 CHANGELOG.md;crates.io:jwt-rust 1.0.2

v1.0.1

Choose a tag to compare

@erikwang2013 erikwang2013 released this 07 Oct 06:51

文档与工程化改进(代码不变)。

  • docs.rs 文档页纳入全部框架适配模块(all-features)
  • 英文版 README(README.en.md)与 CHANGELOG.md
  • README 徽章、「存储驱动是同步 IO(async 运行时须知)」
  • GitHub Actions CI:fmt / clippy / test(全 feature)/ MSRV 1.88 / cargo-audit

v1.0.0

Choose a tag to compare

@erikwang2013 erikwang2013 released this 07 Oct 03:00

Rust 多框架 JWT 认证插件首发。

  • 一套框架无关内核 + 九种接入方式:原生 Rust Guard 与 axum / actix-web / rocket / poem / salvo / warp / bee-rust / e-cat 八个框架适配(含 e-cat gRPC 拦截器)
  • 四种可插拔黑名单存储:file / redis / database / memcached,支持故障策略与自动重试
  • 刷新即轮换、统一 401 JSON 契约、JWT_* 环境变量
  • 中英双语文档图;项目宠物「钥匙小卫 Kee」

安装:cargo add jwt-rust --features axum(详见 README)