Files
railwaysystem/RuoYi-Vue/ruoyi-admin/src/main/resources/application_230.yml
T
buliping 1def568f24 refactor(iot): 移除 MQTT 传输层,仅保留设备开放接口与门禁写操作策略
- 依赖:删除根 pom 的 paho.version 与 org.eclipse.paho.client.mqttv3 依赖声明,
  同步移除 ruoyi-iot 模块中的 Paho 依赖,模块描述改为“iot设备数据与开放接口”
- MQTT 协议栈整体删除:IotMqttConfig、IotMqttProperties、MqttClientManager、
  MqttMessageDispatcher、MqttCallbackHandler、MqttConnectionCallback、
  IMqttMessageListener、MqttMessageDTO、MqttPublishRequest、MqttMessageEvent、
  IMqttService/MqttServiceImpl、IotMqttController,以及 lock 侧 topic 订阅与
  LockMessageListener、AccessRecordHandler、CommandRespHandler、
  GatewayOnlineHandler、LockSignalHandler
- MQTT 报文留痕链路删除:LockMqttLog 实体、LockMqttLogMapper(+XML)、
  ILockMqttLogService/LockMqttLogServiceImpl、LockMqttLogController,
  以及对应的前端页面 build_ui/src/views/iot/mqttlog 与 API build_ui/src/api/iot/mqttlog.js
- 命令下发改为仅落库:LockCommandServiceImpl 派发时直接置 TRANSPORT_DISABLED 失败,
  retryPending 返回 0;删除 GatewayOfflineCheckTask、LockCommandRetryTask、
  LockDeviceOfflineCheckTask 等依赖 MQTT 的补偿与离线检查定时任务
- 保留与传输无关的门禁写操作策略:新增 IotLockSecurityProperties(iot.lock-security),
  RealIotSecurityGate 及其测试改用该配置类
- 配置与调用处清理:application*.yml 中 iot.mqtt 段迁移为 iot.lock-security,
  删除 broker-url/client-id/username/password/topics/will/qos 等连接参数,
  修正 iot.face 环境标识注释引用;QA 工具启动参数改用 --iot.lock-security.*,
  并移除 browser_regression.js 的 mqttlog 路由
- 测试同步:删除依赖 MQTT 与传输层的 CommandRespHandlerMockTest、
  Round5sEgressIsolationTest、Round5sExecutionIntegrationTest、
  Round5v4BrowserFixture、Round5v4KingbaseIntegrationTest;
  更新 RealIotSecurityGateTest、FaceExtractClientMockTest、
  TrainIotLockAuthBridgeMockTest

说明:数据库侧 lock_mqtt_log 表结构与历史验收文档保留,未做数据迁移;
前端若仍配置了“MQTT报文日志”菜单,需在后台菜单管理中一并移除。
2026-11-10 16:06:23 +08:00

219 lines
6.7 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 项目相关配置
ruoyi:
# 名称
name: RuoYi
# 版本
version: 3.9.2
# 版权年份
copyrightYear: 2026
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
profile: ./uploadPath
# 获取ip地址开关
addressEnabled: false
# 验证码类型 math 数字计算 char 字符验证
captchaType: math
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
port: 8096
servlet:
# 应用的访问路径
context-path: /
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# 连接数满后的排队数,默认为100
accept-count: 1000
threads:
# tomcat最大线程数,默认为200
max: 800
# Tomcat启动初始化的线程数,默认值10
min-spare: 100
# 日志配置
logging:
level:
com.ruoyi: debug
org.springframework: warn
# 用户配置
user:
password:
# 密码最大错误次数
maxRetryCount: 5
# 密码锁定时间(默认10分钟)
lockTime: 10
# Spring配置
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: druid
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 50MB
# 设置总上传的文件大小
max-request-size: 100MB
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
data:
# redis 配置
redis:
# 地址
host: localhost
# 端口,默认为6379
port: 6379
# 数据库索引 (独立 QA 测试隔离使用 14 库)
database: 14
# 密码
password:
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 人脸识别设备 API 配置
face:
# 人脸识别服务端地址(设备未启用时仅用于模拟响应,不实际调用)
api-base-url: http://192.168.1.202:9025
#api-base-url: http://192.168.1.230:9000
# 是否实际调用人脸识别设备:false=返回模拟响应,true=真实调用
enabled: true
# 培训与门禁业务配置
train:
# QA 环境业务桥接引擎配置:显式使用自主 iot 门锁授权桥接
lock:
auth-engine: ${TRAIN_LOCK_AUTH_ENGINE:iot}
student:
identity:
encryption-key: ${TRAIN_STUDENT_IDENTITY_ENCRYPTION_KEY:}
hash-key: ${TRAIN_STUDENT_IDENTITY_HASH_KEY:}
# 模拟设备打卡开关:默认 false(禁用),仅允许在独立测试/QA 环境显式开启 true
mock:
device:
enabled: false
# token配置
token:
# 令牌自定义标识
header: Authorization
# 令牌密钥
secret: tBTCXCgTTrO32NvcpWm2+OQjk3w938P0FkOw0GuRFIee9oRHo3QaTCIeha1N1erESpCeNj7KjCovk4Gns+aiFA==
# 令牌有效期(默认30分钟)
expireTime: 600
# MyBatis配置
mybatis:
# 搜索指定包别名
typeAliasesPackage: com.ruoyi.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
# PageHelper分页插件
pagehelper:
# 方言由 PageHelper 根据数据源自动识别(已内置 MySQL 与 KingbaseES)
# 如需强制指定,MySQL 填写 mysql,KingbaseES 填写 kingbase
supportMethodsArguments: true
params: count=countSql
# Springdoc配置
springdoc:
api-docs:
path: /v3/api-docs
swagger-ui:
enabled: true
path: /swagger-ui.html
tags-sorter: alpha
group-configs:
- group: 'default'
display-name: '测试模块'
paths-to-match: '/**'
packages-to-scan: com.ruoyi.web.controller.tool,com.ruoyi.web.controller.device
# 防盗链配置
referer:
# 防盗链开关
enabled: false
# 允许的域名列表
allowed-domains: localhost,127.0.0.1,ruoyi.vip,www.ruoyi.vip
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
# IOT设备接入(MQTT)
iot:
# 设备 HMAC 验签开关:本地联调可临时关闭(无需 X-Signature 头);生产环境务必改回 true 或删除该段
hmac:
enabled: false
#base-url: http://localhost:8096 # 相对路径拼接后端 base URL 用;本地联调用默认值即可,生产环境改成公网地址(如 http://<公网IP>:<端口>)
# 人脸特征提取服务(数据库 lock_service_config 中 config_type=02 的配置优先级更高)
face:
# 必须与 iot.lock-security.environment-id 一致,否则 requireFaceIdentity 判定环境不一致而拒绝人脸提取授权
environment-id: railway-iot-01
#endpoint: http://192.168.1.202:8802/bdws_api/Third/Api/Easen/getFaceFeatureData
endpoint: http://192.168.1.230:8802/bdws_api/Third/Api/Easen/getFaceFeatureData
# 特征提取服务地址白名单(fail-closed 护栏,endpoint 必须显式列入,否则提取被拒)
allowed-endpoints:
#- http://192.168.1.202:8802/bdws_api/Third/Api/Easen/getFaceFeatureData
- http://192.168.1.230:8802/bdws_api/Third/Api/Easen/getFaceFeatureData
# 调用超时(毫秒)
timeout: 10000
# 第三方开放接口:关闭时接口返回 404;启用后调用方需带请求头 X-API-Key
openapi:
enabled: true
api-key: please-change-me
path-prefix: /openapi/iot
# 门禁写操作安全策略(原 MQTT 配置中与传输无关的策略项,MQTT 已整体移除)
lock-security:
enabled: true
mock: false
protocol-verified: true
environment-id: railway-iot-01
real-device-write-enabled: true
device-whitelist: [
'807104B5', '80745D79','80745D95','80745D6F',
'80745DA3','80745D78','80745D89','80745D93',
'80745D75','80745D9A','80745D99','80745D73',
'80745D9F','80745D92','80745D7A','80745D8E',
'80745DA7','80745D86','80745D72','80745DA8',
'80745D90','80745D77','80745D76','80745D96',
'80745D7B','80745DA4','80745D7E','80745D9C',
'80745D71','80745DA2','80745D82','80745DAA',
'80745D8D','80745D7F','80745D97','80745D8A',
'80745D6E','80745D9B','80745D94','80745D84',
'80745D9D','80745D6A','80745D7D','80745D70',
'80745DA5','80745D8C','80745D74','80745D6D',
'80745D8B','80745D6C','80745D98','80745D88',
'80745DAB','80745D87','80745D8F','80745DA1',
'80745DA9','80745D91','80745D6B','80745DA6',
'80745D81','80745D9E','80745D83','80745DA0',
'E8F7AFF69483']