weicw-dshsa 7a90d79352 修复统一身份认证登录:补回从未提交的 gxmu.auth 配置
线上 /api/sso/login 报「学校统一身份认证未配置,请联系管理员」,
/api/sso/available 返回 false。根因不是代码,是配置:gxmu.auth 段
只存在于本地工作区,从未进入任何一次提交。

证据:git log -S GXMU_AUTH_APPID 只命中两处,都不是 application.yml ——
LyuapAuthClientIT 里硬编码的兜底值,以及 .scratch/student-sso/README.md
第 5.1 节那句「已写进 application.yml」。而 6f04a64(新增统一身份认证登录)
的 13 个文件全在 src/main/java 与 src/test,根本没碰 resources。

后果:GxmuAuthProperties.appId 默认为 null → available() 为 false →
login() 在凭据校验处直接抛异常,请求根本到不了认证平台。

之所以单测全绿而功能全废:SsoLoginServiceImplTest 把 GxmuAuthProperties
整个 mock 掉了(getAppId 固定返回 "gxmu-app"),这类测试永远发现不了
「yml 里没这一段」。Dify 那批配置当初踩的也是同一类坑。

- application.yml 补回 gxmu.auth 段:enabled/base-url/app-id/app-secret/
  timeout-ms/allow-unknown-user,与 openplat 凭证同样处理,默认值写入
  并保留 GXMU_AUTH_APPID / GXMU_AUTH_APPSECRET 环境变量覆盖
- 新增 GxmuAuthPropertiesBindingTest:照 DifyProdProfileBindingTest 的做法
  直接绑定 yml 断言,不启动容器、不依赖数据库与 Redis。四条用例先红后绿,
  最后一条是端到端语义 —— 配置齐备时 available() 必须为 true,而不只是
  「配置字段非空」

已联网验证(真实打到 cas.gxmu.edu.cn):available 由 false 变 true;
不存在的学号返回平台业务码「学号不存在,请确认后重试」,证明 appid 与
secret 已被平台认下。

注:TestMain / WebSoftApplicationTests 两项失败为预先存在,
已用 git stash 在改动前复现同一错误(serverEndpointExporter 的
ServerContainer not available),与本次改动无关。
2026-09-21 19:58:48 +08:00
2026-07-20 11:48:06 +08:00
2023-06-03 23:56:49 +08:00
2026-09-15 17:21:32 +08:00
2026-07-20 11:48:06 +08:00
2023-06-03 23:56:49 +08:00
2024-01-31 14:55:59 +08:00
2023-06-03 23:56:49 +08:00
2026-07-20 11:48:06 +08:00
2023-06-03 23:56:49 +08:00
2026-07-20 11:48:06 +08:00
2026-07-20 11:48:06 +08:00
2025-05-22 10:27:57 +08:00
S
Description
No description provided
13 MiB
Languages
Java 99.5%
Shell 0.5%