Files
starRiverProperty/docs/testing/release-visitor-noauth-verify-v20260430/README.md
T
反编译工作区 8b15445328 feat: add service config templates and extraction script
Former-commit-id: 1de24b7eb79676d1aba9d799a58c5a753290cf52
2026-05-01 19:38:01 +08:00

5.8 KiB
Raw Blame History

访客无鉴权策略验证发布包(v20260430)

1. 发布目标

本目录为“黄平访问蒙海文”无鉴权策略验证的版本化发布包,用于生产执行、结果留痕与归档。

当前对应代码发布版本:cw-elevator-application-2.0.9

2. 包内文件

  • README.md:发布说明(本文件)
  • 操作手册.md:完整操作步骤与判定规则
  • 执行流程设计-简化版.md:先明确流程再执行的最小闭环方案(推荐先读)
  • sql/黄平访客ID手工查询.sql:生产手工查询黄平访客 ID 的 SQL
  • sql/批量样本筛选-多公司多部门.sql:筛选多个公司/多个部门被访人样本 SQL
  • sql/人工核查最终楼层结果.sql:自定义访客 ID 集合时执行后核验
  • sql/标准批量25访客-执行后核验.sql:§4.0 单行命令固定 25 名访客号段后的执行后核验
  • python/quick_verify_visitor_floor_policy.py:执行脚本快照(支持纯 HTTP;可选连组织库/电梯库)
  • python/requirements.txtrequests + pymysql(预置样本拉取、--verify-local-db
  • python/requirements-min.txt:仅 requests(不连库时)
  • report/:脚本输出 JSON 汇总(打包时排除 *.json 历史文件)
  • 打包说明.txt:生产机 pip install、一键 zip、全量预置命令示例
  • MANIFEST.txt:交付清单

3. 关键基线参数

  • 被访人(蒙海文)personId=964454497399468032
  • 访客(黄平)personId=1102270499947507712
  • 租户 businessId=2524639890ba4f2cba9ba1a4eeaa4015
  • 策略语义(与电梯源码一致):未传 floorIds 且策略启用且 allow_zone_ids 非空时,生效楼层为 被访人 floorListallow_zone_ids(求交);无策略或 allow 为空则仍为 floorList 全集。详见 visitor-registration-business-flow.md租户组织人员访客-数据模型与用例.md

4. 测试执行(一行命令)

以下参数已由交付侧与现场环境对齐:组织 http://10.0.22.207:8089电梯 http://10.0.22.207:1611225 名测试访客 personId 为连续号段 91990001000000000019199000100000000025(预置脚本内置 25 个被访人样本,本命令不访问 MySQL)。

操作: 打开解压后的发布包目录(能看到子目录 python/),只粘贴下面整行,回车执行(自动安装缺失的 requests 并跑预置 25 人批量无鉴权探测):

python3 -m pip install -q -r python/requirements-min.txt && python3 python/quick_verify_visitor_floor_policy.py --mode noauth-probe --org-base-url "http://10.0.22.207:8089" --elevator-base-url "http://10.0.22.207:16112" --use-preset-cases --visitor-person-ids "$(python3 -c 'print(",".join(str(9199000100000000000+i) for i in range(1,26)))')" --probe-with-businessid --batch-output-summary "batch-preset-static-$(date +%Y%m%d-%H%M%S).json"

汇总 JSONreport/ 目录下文件名形如 batch-preset-static-<时间戳>.json

执行后须查库分析: 在目标环境 cw-elevator-application 库运行 sql/标准批量25访客-执行后核验.sql,将每名访客的 active_row_countzone_id 与 JSON 中的 derived.floor_countderived.floors 对齐;具体操作与判定要点见 操作手册.md §4.0.1、§4.6


附录 A:单样本(广发基金基线)

python3 python/quick_verify_visitor_floor_policy.py \
  --mode noauth-probe \
  --org-base-url "http://10.0.22.207:8089" \
  --elevator-base-url "http://10.0.22.207:16112" \
  --business-id "2524639890ba4f2cba9ba1a4eeaa4015" \
  --meng-person-id "964454497399468032" \
  --visitor-person-id "1102270499947507712" \
  --probe-with-businessid

该访客为存量人员:库表核验易与历史 image_rule_ref 混在一起;若以「本轮新增访客 + 证据」为目标,请以 §4 一行批量号段 919900… 为主。操作手册 §4.2 对上述边界有全文说明。

附录 B:连 MySQL 拉样本 / 库表比对

需与 HTTP 同属一套库的地址与账号由运维另行提供,不由本 README 承载;禁止使用与目标环境不一致的数据库串联验证。

附录 Csql/batch_cases.csv 批量

python3 python/quick_verify_visitor_floor_policy.py \
  --mode noauth-probe \
  --org-base-url "http://10.0.22.207:8089" \
  --elevator-base-url "http://10.0.22.207:16112" \
  --batch-input-csv "sql/batch_cases.csv" \
  --visitor-person-ids "1102270499947507712,1102270499947507713,1102270499947507714" \
  --visitor-names "黄志平A,黄志平B,黄志平C" \
  --probe-with-businessid \
  --batch-output-summary "batch-from-csv-$(date +%Y%m%d-%H%M%S).json"

附录 D:人员导出 CSV 自动筛选

python3 python/quick_verify_visitor_floor_policy.py \
  --mode noauth-probe \
  --org-base-url "http://10.0.22.207:8089" \
  --elevator-base-url "http://10.0.22.207:16112" \
  --batch-source-person-csv "../_cw_is_person__202604302030.csv" \
  --exclude-business-ids "2524639890ba4f2cba9ba1a4eeaa4015" \
  --sample-companies 3 \
  --sample-persons-per-company 2 \
  --visitor-person-ids "1102270499947507712,1102270499947507713,1102270499947507714" \
  --visitor-names "黄志平A,黄志平B,黄志平C" \
  --probe-with-businessid \
  --batch-output-summary "batch-from-export-$(date +%Y%m%d-%H%M%S).json"

说明:导出 CSV 需含列 BUSINESS_ID,ID,IS_DEL,NAME(等);无部门列时汇总中 department 可能为空。

5. 输出位置

脚本输出(均在发布包下 report/ 目录):

  • 单样本:quick-verify-<timestamp>.json
  • 标准批量:见 §4batch-preset-static-*.json
  • 其他批量:--batch-output-summary 指定名;默认 batch-summary.json