Skip to content

v2.7.4

Choose a tag to compare

@lujiafa lujiafa released this 23 Jun 12:41

✨ New Features

  • New houtu-id module (ported from 3.5.3): Snowflake + SnowflakeX (second-level timestamp + optional custom segment), Redis/DB-backed WorkerIdProvider (lease + heartbeat, 300s expiry / 30s heartbeat), auto-configured via
    houtu.id.work-id.type.
  • web-security signature / anti-replay enhancements: anti-replay extracted into a standalone validator with configurable expiry; signature additional-params and anti-replay fields are now list-based, with multi-field
    extraction by source (HEADER/BODY/BOTH).
  • Configurable exception fallback for web: houtu.web.exception-fallback.

🔧 Refactors

  • JsonUtils and web response handling migrated to fastjson2; added Fastjson2HttpMessageConverter.
  • MapUtils unified Object→Map conversion; merged and removed IntrospectorUtils.

🐛 Key Fixes (incl. security)

  • ⚠️ SignUtils.verifyMd5 compared raw bytes instead of the MD5 digest, causing signature verification to always fail — fixed.
  • ⚠️ SecurityWatchAspect multiple security failures & design flaws fixed (data-security).
  • loadbalancer: NoClassDefFoundError from SpringCloudNacosLoadBalancerConfiguration when Nacos is absent — fixed.
  • core: Transfer* builders dropped in immutable chained calls broke cross-thread context propagation — fixed.
  • cache: fragile @lock aspect pointcut binding corrected.
  • access-log: removed duplicate AccessLogCombineModelMapConfiguration definition.

⚠️ Breaking Changes / Migration Notes (must go in Release Notes)

  1. JSON engine switch: JsonUtils / web response serialization moved from Jackson to fastjson2; serialization behavior (date format, null handling, field order) may differ — regression-test downstream API contracts.
  2. Removed IntrospectorUtils — callers must migrate to MapUtils.
  3. Removed invalid DateUtils.toDate(long, ZoneId) overload.
  4. Feign exception-source-trace pass-through retired, and AutoFeign.responseBody() removed.
  5. Removed GatewaySecurityAutoConfiguration (dead shell).
  6. loadbalancer hint key unified to spring.cloud.loadbalancer.hint — update old keys.