fix: 适配南昌理工学院自研 CAS→IAP 混合登录(学校ID匹配,独立于通用IAP/CAS逻辑)
ci/woodpecker/tag/build Pipeline was successful

该校登录链路与标准金智 IAP/Apereo CAS 均不同:
- /portal/login → /iap/login 页面实际转发到学校自研 CAS(my.nut.edu.cn/cas/login),
  表单为 username/password/authcode/execution/_eventId 风格
- 登录成功后 302 回跳 /iap/loginSuccess?sessionToken=xxx&ticket=ST-... 建立 IAP 会话
- 密码加密特殊:先反转,明文块按小端 16-bit digit 装配后直接 m^e mod n
  (无 PKCS#1 填充),公钥由 /cas/v2/getPubKey 动态获取,hex 空格分隔
- 每次登录均需图形验证码(/cas/kaptcha),OCR 识别失败自动重试最多3次

新增 nut_login.go 专用实现,CpdailyLogin 按 school.ID 匹配路由,不动通用 IAP/CAS 代码。
This commit is contained in:
becomer
2026-08-30 22:03:09 +08:00
parent 49e1cef31c
commit 2f93e24a39
3 changed files with 323 additions and 0 deletions
+3
View File
@@ -26,3 +26,6 @@ Thumbs.db
# Docker
*.tar
# Local DB
backed/*.db