2.5 KiB
岗位地图服务端配置与认证锁修复
本说明属于“认证锁修复+地图超时配置化”新批次,不代表已部署。前一31文件/JAR的8秒/12秒仅是隔离候选对照,不能与本批实际默认值混用。
地图超时
| 属性 | 默认值 | 合法范围 |
|---|---|---|
| app.amap.connect-timeout-ms | 8000 | 500—10000毫秒 |
| app.amap.total-timeout-ms | 12000 | 1000—20000毫秒,并且严格大于连接预算 |
使用服务端配置绑定,不接受业务请求参数控制预算。非法值、非整数或非法预算关系导致启动失败,不静默退回默认值;错误不包含Key。
配置示例(不含凭据,可通过部署系统的外部配置注入):
app:
amap:
connect-timeout-ms: 8000
total-timeout-ms: 12000
总预算覆盖一次HTTP请求的响应头与响应体,超时取消异步请求。保持固定高德HTTPS目的地、禁止重定向、响应上限262144字节、失败关闭和企业/全局限流,不新增自动重试。
真实网络的1.5秒连接预算在本机多次失败,8秒连接/12秒总预算曾获得真实成功。这不保证所有环境必然成功,仍需同次新制品的真实调用、延迟和容量验证。前端请求预算需要容纳后端总预算和业务处理开销,避免短于后端预算就提前报失败;不建议无限等待或自动连续重试。
Key仍只通过安全配置 AMAP_WEB_SERVICE_KEY 或 app.amap.web-service-key 注入,不在源码或前端分发。没有修改原 application.yml,也不覆盖现有注销冷静期等运行配置。
认证锁顺序
登出在撤销auth_tokens前,先锁users当前用户行,与登录、刷新、密码变更统一 users -> auth_tokens 顺序。刷新先拿到锁时,登出等待刷新提交后才启动批量撤销;登出先拿到锁时,刷新随后看到已撤销状态,不能签发活动后继。
保留当前会话范围、幂等登出语义和既有角色/状态判断,不扩大到其它会话,不更改Token格式或API路径,不增加数据库迁移。
回归使用真实事务/SQL、提交前屏障和数据库阻塞观察,验证两个执行顺序、旧/新Access拒绝及其他会话不受影响。诊断时H2复现过残留,而MySQL同一交错未复现;不能用MySQL一次通过声称所有并发交错已穷尽。
验证与发布
新批次必须更新源码manifest并重新专项、全量及同次JAR验证,旧A2通过不自动继承。这里只提供配置与行为说明,不授予提交、推送、发布或服务器修改权限。