Files
core/.workbuddy/memory/2026-07-23.md
赵忠林 61d8c6317e fix(security): 允许 sendSmsCaptchaByAdmin 接口免登录访问
- 在 SecurityConfig 的 permitAll 白名单中添加 `/api/sendSmsCaptchaByAdmin`
- 解决该接口因未登录被拦截导致返回 401 的问题
- 确保管理员手机号校验逻辑不受影响,接口可正常发送验证码
- 方便通过代理路径 `/api/_server/sendSmsCaptchaByAdmin` 访问接口
- 修复线上调用失败问题,保证服务正常可用
2026-07-23 16:39:58 +08:00

1.4 KiB
Raw Blame History

2026-07-23 工作记录

短信验证码接口 sendSmsCaptchaByAdmin 发送失败排查

  • 现象:线上 https://site.websoft.top/api/_server/sendSmsCaptchaByAdmin 调用手机 15678895934 失败,返回 401 请先登录
  • 根因:com/gxwebsoft/common/core/security/SecurityConfig.javapermitAll 白名单里只有 /api/sendSmsCaptcha/api/sendEmailCaptcha,没有 /api/sendSmsCaptchaByAdmin。该接口被 Spring Security 拦截,未登录请求直接 401控制器逻辑未执行验证码未发出。
  • 已修复:在 SecurityConfig 的 permitAll antMatchers 中加入 /api/sendSmsCaptchaByAdmin(位于 /api/sendSmsCaptcha 之后)。
  • 说明:接口内部已有 getByPhoneAndAdmin 管理员手机号校验,开放 permitAll 安全;线上代理前缀为 /api/_server/**,转发到后端 /api/**
  • 验证方式:用 curl 直接打 /api/_server/sendSmsCaptchaByAdmin 复现 401同前缀的 /api/sendSmsCaptcha 因在白名单可正常进入(需确认部署后 ByAdmin 不再 401

关键文件

  • SecurityConfig.javacom/gxwebsoft/common/core/security/SecurityConfig.java
  • MainController.sendSmsCaptchaByAdmincom/gxwebsoft/common/system/controller/MainController.java:656
  • 管理员校验 SQLUserMapper.xml selectAdminByPhoneCrossTenantsys_user.deleted=0 AND phone=? AND (is_super_admin=1 OR is_admin=1)