lili
28bd5339d4
feat(passport): WU1 端点+配置+防明文+单测——两 @PermitAll 端点/remoteAddr/stdout 屏蔽
照 WU1 设计 §3.2/§3.3/§3.4:
- AppPassportController 加 password-register/password-login 两 @PermitAll 端点,IP 一律取连接层
request.getRemoteAddr()(不读可伪造 XFF,§3.3 命门);@ApiAccessLog(sanitizeKeys=password)。
- ApiAccessLogInterceptor 代码级屏蔽两 password URI 的 stdout body 打印(不受 sanitizeKeys 约束的第二条
链路,防明文密码进控制台,不只靠 logging.level)。
- application-staging.yaml wanxiang.passport 加 password-auth-enabled(true)/register-ip-limit(20,60)/
login-ip-limit(30,100)。
- 单测:本地 mvn 34 通过(PassportServiceImplTest 31 + PassportSmsIpCounterRedisDAOTest 3),覆盖用户名占用、
登录防枚举(统一错误码+假 hash 对齐耗时)、禁用拒登、并发撞名兜底、IP 越限 429、Redis fail-open、outbox 原子落、
/me 空安全。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>