G2rain(谷雨)开源智能体平台项目文档,由 g2rain-spring-boot-starter 的 docs/releases/v1.0.6.md 自动同步生成;正文保留来源仓库的技术表述与历史名称。
# g2rain-spring-boot-starter v1.0.6

状态:发布草稿,构建验证未通过,暂不可正式发布。
整理日期:2026-10-30
目标版本:根 POM revision=1.0.6。
比较范围:v1.0.5..ce3b982。

本次版本聚焦依赖基线更新、Feign 调试日志可读性及 Web 登录守卫校验。项目继续按需提供 11 个 Starter 模块;根工程是聚合 POM,不应作为一个包含全部能力的业务 JAR 引入。

# 主要变化

# 1. 更新依赖与构建基线

项目 v1.0.5 v1.0.6 POM 声明
Java release 25 25
Spring Boot 4.0.5 4.1.2
Spring Cloud 2025.1.1 2025.1.4
g2rain-common 1.0.8 1.0.9
MyBatis 扩展 / 分页组件 1.0.4 1.0.5
Jackson 3 BOM 3.1.1 3.2.4
Jackson 2 BOM 未显式导入该 BOM 2.22.4
Redisson Starter 4.3.0 4.8.0
MyBatis 3.5.19 3.6.0
MyBatis Spring Boot Starter 4.0.1 4.1.0
SpringDoc 3.0.2 3.2.0
Caffeine 3.2.3 3.3.1

更新部分构建、检查及发布插件的版本属性,包含 Flatten 与 Central Publishing 插件。移除根工程和部分消息模块对 JetBrains annotations 等依赖的旧式显式覆盖。实际解析版本以 effective POM 与依赖树为准;不能将上述版本声明等同于完整兼容性或安全扫描结论。

# 2. 改善 Feign 主体名称日志

g2rain-starter-feign-plus 在请求与响应的 Debug 日志中,对主体名称及组织名称 Header 的日志副本进行 URL 解码,便于读取中文名称。

  • 仅对 x-name、x-organ-name 对应值进行解码。
  • 不回写请求模板或响应原始 Header,不改变实际传输编码。
  • 这不是通用敏感信息脱敏功能;生产环境开启 Debug 日志前仍需检查 Header 与正文记录范围。

# 3. 收紧登录主体有效性判断

g2rain-starter-web-infra 的登录守卫按会话类型读取主体 ID,要求 ID 存在且大于零:

会话类型 校验字段
USER、ANONYMOUS userId
PASSPORT passportId
MEMBER memberId

无有效主体 ID 时返回未认证错误。方法显式使用 @LoginGuard(require = false) 时仍跳过此登录校验;既有后台调用、非 Controller 方法及非 REQUEST 派发的处理分支保持。

本次新增 ANONYMOUS 会话具备正数 userId 时通过、缺少 userId 时拒绝的回归测试,并更新注解文档中对旧 anonymous 参数的描述;当前注解仅提供 require 属性。

# 升级注意事项

  1. 不是无条件向下兼容的依赖替换。 Spring Boot、Spring Cloud、Jackson、MyBatis 与 Redisson 均有基线变化,业务应用须核对依赖树、配置和自动配置结果。
  2. 匿名会话行为有变化。 v1.0.5 的 ANONYMOUS 分支直接放行;本次要求正数 userId。无主体的公开接口需要明确设计认证策略。不要为绕过失败而批量关闭登录守卫。
  3. USER 与 PASSPORT 从“非空 ID”收紧为“正数 ID”,需要检查零值或负值占位数据。
  4. MyBatis 数据隔离、Redis/消息、远程服务和链路追踪需要在实际环境联调;本次没有完成这些集成验证。
  5. SpringDoc 模块在本次比较范围内没有新增,不能把已有模块误写成本版新功能。

# Maven 引入方式

以下为目标版本示例,不表示 v1.0.6 已发布到 Maven Central;正式发布前不要据此切换生产依赖。

<dependency>
    <groupId>com.g2rain</groupId>
    <artifactId>g2rain-starter-web-infra</artifactId>
    <version>1.0.6</version>
</dependency>

其他 Starter 按实际需要选择,目标版本统一为 1.0.6,不要把聚合 POM 当作导入全部模块的 BOM 使用。

# 本次验证与发布阻断

2026-10-30 在 Windows、Oracle JDK 25.0.2、Maven 3.9.6 环境执行:

mvn -B clean verify

结果:BUILD FAILURE。

  • 根聚合工程、Web Infra 与 Identity Client 的 Reactor 阶段成功。
  • Web Infra 的 Surefire XML 报告共 51 项测试,0 失败、0 错误、0 跳过;其中 LoginGuardInterceptorTest 为 13 项。
  • g2rain-starter-tracing-otel 编译失败:OpenTelemetryTracingAutoConfiguration.java 导入的 com.g2rain.common.concurrent.ContextPropagator 与 Contexts 所属包在本次解析的编译依赖中不存在。
  • 其后 8 个 Reactor 项目跳过,不能声明整个套件测试通过,也不能沿用旧文档中的 101 项测试作为本版本验证结果。
  • 本次未验证 GPG 签名、Central 发布、生产环境或完整跨服务兼容性;未执行 deploy。

发布前需核对实际解析的 g2rain-common 制品与源码/版本是否一致,确认其包含需要的上下文传播 API,再重新执行完整 verify。不要仅以本地源码中存在相关类来替代制品验证,也不要跳过失败模块直接发布。

# 正式发布检查

  • [ ] 修复上下文传播依赖阻断,完整 Reactor verify 通过。
  • [ ] 固定发布提交,确认 README、CHANGELOG、POM 和目标标签一致。
  • [ ] 确认 g2rain-common 及 MyBatis 目标依赖已经在目标仓库可用。
  • [ ] 完成关键业务应用的升级回归与真实外部依赖验证。
  • [ ] 检查源码、Javadoc、签名与 Central 凭据。
  • [ ] 经维护者确认后再创建或推送 v1.0.6 标签、触发正式发布工作流。

推送版本标签或手动运行 release 工作流会触发 Maven Central 发布。本草稿生成不包含这些外部操作。

Last Updated: 2026-10-31T14:52:18.180Z