application-dev.yml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. server:
  2. port: 8989
  3. spring:
  4. datasource:
  5. type: com.alibaba.druid.pool.DruidDataSource
  6. driver-class-name: com.mysql.cj.jdbc.Driver
  7. url: jdbc:mysql://rm-2vc2zl1990od9qvg0eo.mysql.cn-chengdu.rds.aliyuncs.com:3306/zs_test?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
  8. username: root
  9. password: 1KQaNI+vPz8^xfYcb%l6
  10. data:
  11. redis:
  12. database: 10
  13. host: 192.168.1.242
  14. port: 6379
  15. password: FaajjVy8rl(k
  16. timeout: 10s
  17. lettuce:
  18. pool:
  19. # 连接池最大连接数 默认8 ,负数表示没有限制
  20. max-active: 8
  21. # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认-1
  22. max-wait: -1
  23. # 连接池中的最大空闲连接 默认8
  24. max-idle: 8
  25. # 连接池中的最小空闲连接 默认0
  26. min-idle: 0
  27. cache:
  28. enabled: false
  29. # 缓存类型 redis、none(不使用缓存)
  30. type: redis
  31. # 缓存时间(单位:ms)
  32. redis:
  33. time-to-live: 3600000
  34. # 缓存null值,防止缓存穿透
  35. cache-null-values: true
  36. caffeine:
  37. spec: initialCapacity=50,maximumSize=1000,expireAfterWrite=600s
  38. # 邮件配置
  39. mail:
  40. host: smtp.youlai.tech
  41. port: 587
  42. username: your-email@example.com
  43. password: 123456
  44. properties:
  45. mail:
  46. smtp:
  47. auth: true
  48. starttls:
  49. enable: true
  50. # 邮件发送者
  51. from: youlaitech@163.com
  52. # 第三方认证配置
  53. third-party:
  54. jwt:
  55. secret: "vgct1TZ4ZikKjaaeIiq3LUwIvpmcgYa6ABCD1234EFGH5678IJKL9012MNOP3456"
  56. expire: 7200
  57. mybatis-plus:
  58. mapper-locations: classpath*:/mapper/**/*.xml
  59. global-config:
  60. db-config:
  61. # 主键ID类型
  62. id-type: none
  63. # 逻辑删除对应的全局属性名(注意:须是对象属性名,不能是表字段名,如 isDeleted 而非 is_deleted,否则逻辑删除失效)
  64. logic-delete-field: isDeleted
  65. # 逻辑删除-删除值
  66. logic-delete-value: 1
  67. # 逻辑删除-未删除值
  68. logic-not-delete-value: 0
  69. configuration:
  70. # 驼峰下划线转换
  71. map-underscore-to-camel-case: true
  72. # 这个配置会将执行的sql打印出来,在开发或测试的时候可以用
  73. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  74. # 异步线程池配置
  75. async:
  76. thread-pool:
  77. core-pool-size: 10
  78. max-pool-size: 50
  79. queue-capacity: 1000
  80. keep-alive-seconds: 60
  81. thread-name-prefix: "business-async-"
  82. allow-core-thread-timeout: false
  83. await-termination-seconds: 30
  84. # 安全配置
  85. security:
  86. session:
  87. type: jwt # 会话方式 jwt/redis-token
  88. access-token-time-to-live: 7200 # 访问令牌 有效期(单位:秒),默认 2 小时,-1 表示永不过期
  89. refresh-token-time-to-live: 604800 # 刷新令牌有效期(单位:秒),默认 7 天,-1 表示永不过期
  90. jwt:
  91. secret-key: SecretKey012345678901234567890123456789012345678901234567890123456789 # JWT密钥(HS256算法至少32字符)
  92. redis-token:
  93. allow-multi-login: true # 是否允许多设备登录
  94. # 安全白名单路径,仅跳过 AuthorizationFilter 过滤器,还是会走 Spring Security 的其他过滤器(CSRF、CORS等)
  95. ignore-urls:
  96. - /api/v1/auth/login/** # 登录接口(账号密码登录、手机验证码登录和微信登录)
  97. - /api/v1/auth/captcha # 验证码获取接口
  98. - /api/v1/auth/refresh-token # 刷新令牌接口
  99. - /api/v1/auth/logout # 开放退出登录
  100. - /api/v1/auth/wx/** # 微信相关所有接口
  101. - /ws/** # WebSocket接口
  102. - /applet/v1/homePage/** # 用户端分页查询站点信息
  103. - /charge-business/charge-business/v1/linkData/query_token
  104. - /applet/v1/station/connector/detail
  105. # 非安全端点路径,完全绕过 Spring Security 的安全控制
  106. unsecured-urls:
  107. - ${springdoc.swagger-ui.path}
  108. - /doc.html
  109. - /doc.html/**
  110. - /swagger-ui.html
  111. - /swagger-ui/**
  112. - /swagger-resources/**
  113. - /v3/api-docs
  114. - /v3/api-docs/**
  115. - /webjars/**
  116. - /favicon.ico
  117. - /charge-business/v1/linkData/**
  118. - /applet/v1/homePage/** # 用户端分页查询站点信息
  119. # 只走第三方过滤器、不走其他安全链
  120. third-party-urls:
  121. - /charge-business/v1/linkData/notification_start_charge_result
  122. - /charge-business/v1/linkData/notification_equip_charge_status
  123. - /charge-business/v1/linkData/notification_stop_charge_result
  124. - /charge-business/v1/linkData/notification_charge_order_info
  125. - /charge-business/v1/linkData/notification_stationStatus
  126. # XSS 和 SQL 注入防护过滤器配置
  127. filter:
  128. # 是否启用 XSS 防护
  129. xss-enabled: true
  130. # 是否启用 SQL 注入防护
  131. sql-injection-enabled: true
  132. # SQL 注入检测严格模式
  133. # true: 严格模式,可能误判一些正常输入
  134. # false: 宽松模式,减少误判但可能漏掉一些攻击
  135. sql-strict-mode: true
  136. # 排除的 URL 路径(不进行安全检查,注意:默认已经排除了 /doc.html、/swagger-ui 等接口文档相关路径)
  137. exclude-urls:
  138. - /api/v1/auth/captcha # 验证码接口
  139. - /charge-business/v1/linkData/ # 第三方充电平台接口(数据为加密的Base64,会误判)
  140. - /charge-business/v1/linkData/notification_charge_order_info
  141. - /charge-business/v1/linkData/notification_start_charge_result
  142. - /charge-business/v1/linkData/notification_equip_charge_status
  143. - /charge-business/v1/linkData/notification_stop_charge_result
  144. - /charge-business/v1/linkData/notification_stationStatus
  145. - /charge-business/v1/linkData/query_token
  146. - /applet/v1/homePage/test # 首页测试接口(包含加密数据)
  147. # 额外需要检查的请求头(默认已检查 User-Agent、Referer、X-Forwarded-For)
  148. check-headers:
  149. - X-Forwarded-For
  150. okhttp:
  151. connect-timeout: 30s
  152. read-timeout: 120s
  153. write-timeout: 60s
  154. retry-on-connection-failure: true
  155. max-retry-count: 3
  156. connection-pool:
  157. max-idle-connections: 200
  158. keep-alive-duration: 300s
  159. # 文件存储配置
  160. oss:
  161. # OSS 类型 (目前支持aliyun、minio、local)
  162. type: aliyun
  163. # MinIO 对象存储服务
  164. minio:
  165. # MinIO 服务地址
  166. endpoint: http://localhost:9000
  167. # 访问凭据
  168. access-key: minioadmin
  169. # 凭据密钥
  170. secret-key: minioadmin
  171. # 存储桶名称
  172. bucket-name: zsElectric
  173. # (可选) 自定义域名:配置后,文件 URL 会使用该域名格式
  174. custom-domain:
  175. # 阿里云OSS对象存储服务
  176. aliyun:
  177. # 服务Endpoint
  178. endpoint: oss-cn-beijing.aliyuncs.com
  179. # 访问凭据`
  180. access-key-id: LTAI5tJscqbev7wSugGCrEtt
  181. # 凭据密钥
  182. access-key-secret: xJkoJR1ILpXNSF2ERnxNq71UZTQNcB
  183. # 存储桶名称
  184. bucket-name: national-motion
  185. # 本地存储
  186. local:
  187. # 文件存储路径 请注意下,mac用户请使用 /Users/your-username/your-path/,否则会有权限问题,windows用户请使用 D:/your-path/
  188. storage-path: /Users/theo/home/
  189. # 短信配置
  190. sms:
  191. # 阿里云短信
  192. aliyun:
  193. accessKeyId: xxx
  194. accessKeySecret: xxx
  195. domain: dysmsapi.aliyuncs.com
  196. regionId: cn-shanghai
  197. signName: 中数未来
  198. templates:
  199. # 注册短信验证码模板
  200. register: SMS_22xxx771
  201. # 登录短信验证码模板
  202. login: SMS_22xxx772
  203. # 修改手机号短信验证码模板
  204. change-mobile: SMS_22xxx773
  205. # springdoc配置: https://springdoc.org/properties.html
  206. springdoc:
  207. swagger-ui:
  208. path: /swagger-ui.html
  209. operations-sorter: alpha
  210. tags-sorter: alpha
  211. api-docs:
  212. path: /v3/api-docs
  213. group-configs:
  214. - group: "系统管理"
  215. paths-to-match: "/**"
  216. packages-to-scan:
  217. - com.zsElectric.boot.auth.controller
  218. - com.zsElectric.boot.system.controller
  219. - com.zsElectric.boot.platform.file.controller
  220. - com.zsElectric.boot.platform.codegen.controller
  221. - com.zsElectric.boot.charging.controller
  222. - com.zsElectric.boot.business.controller
  223. - com.zsElectric.boot.business.controller.applet
  224. default-flat-param-object: true
  225. # knife4j 接口文档配置
  226. knife4j:
  227. # 是否开启 Knife4j 增强功能
  228. enable: true # 设置为 true 表示开启增强功能
  229. # 生产环境配置
  230. production: false # 设置为 true 表示在生产环境中不显示文档,为 false 表示显示文档(通常在开发环境中使用)
  231. setting:
  232. language: zh_cn
  233. # xxl-job 定时任务配置
  234. xxl:
  235. job:
  236. # 定时任务开关
  237. enabled: false
  238. admin:
  239. # 调度中心地址,多个逗号分隔
  240. addresses: http://127.0.0.1:8080/xxl-job-admin
  241. accessToken: default_token
  242. # 执行器配置
  243. executor:
  244. appname: xxl-job-executor-${spring.application.name} # 执行器AppName
  245. address: # 执行器注册地址,默认为空,多网卡时可手动设置
  246. ip: # 执行器IP,默认为空,多网卡时可手动设置
  247. port: 9999 # 执行器通讯端口
  248. logpath: /data/applogs/xxl-job/jobhandler # 任务运行日志文件存储磁盘路径
  249. logretentiondays: 30 # 日志保存天数,值大于3时生效
  250. # 验证码配置
  251. captcha:
  252. # 验证码类型 circle-圆圈干扰验证码|gif-Gif验证码|line-干扰线验证码|shear-扭曲干扰验证码
  253. type: circle
  254. # 验证码宽度
  255. width: 120
  256. # 验证码高度
  257. height: 40
  258. # 验证码干扰元素个数
  259. interfere-count: 2
  260. # 文本透明度(0.0-1.0)
  261. text-alpha: 0.8
  262. # 验证码字符配置
  263. code:
  264. # 验证码字符类型 math-算术|random-随机字符
  265. type: math
  266. # 验证码字符长度,type=算术时,表示运算位数(1:个位数运算 2:十位数运算);type=随机字符时,表示字符个数
  267. length: 1
  268. # 验证码字体
  269. font:
  270. # 字体名称 Dialog|DialogInput|Monospaced|Serif|SansSerif
  271. name: SansSerif
  272. # 字体样式 0-普通|1-粗体|2-斜体
  273. weight: 1
  274. # 字体大小
  275. size: 24
  276. # 验证码有效期(秒)
  277. expire-seconds: 120
  278. # 微信小程序配置
  279. wx:
  280. miniapp:
  281. # 微信小程序 AppID(在微信公众平台获取)
  282. app-id: wx9894a01b9e92c368
  283. # 微信小程序 AppSecret(在微信公众平台获取)
  284. app-secret: b1e83dbcf83af310c38c0a138739ddcf
  285. # ==================== AI 命令系统配置 ====================
  286. ai:
  287. # 是否启用 AI 功能
  288. enabled: false
  289. # 当前使用的提供商:qwen、deepseek、openai
  290. provider: qwen
  291. # 所有提供商配置(统一管理,扩展性强)
  292. providers:
  293. # 阿里通义千问(推荐:有免费额度)
  294. qwen:
  295. # API Key(https://bailian.console.aliyun.com/ 获取)
  296. api-key: ${QWEN_API_KEY:sk-c2941d05bf2f411ca80424fcxxxxxxxx}
  297. # Base URL(OpenAI 兼容端点)
  298. base-url: https://dashscope.aliyuncs.com/compatible-mode/v1
  299. # 模型:qwen-plus(推荐)、qwen-turbo、qwen-max、qwen-long
  300. model: qwen-plus
  301. # 显示名称
  302. display-name: 阿里通义千问
  303. # 超时时间(秒)
  304. timeout: 30
  305. # DeepSeek
  306. deepseek:
  307. api-key: ${DEEPSEEK_API_KEY:}
  308. base-url: https://api.deepseek.com/v1
  309. model: deepseek-chat
  310. display-name: DeepSeek
  311. timeout: 30
  312. # OpenAI(添加新提供商只需配置,无需修改代码)
  313. openai:
  314. api-key: ${OPENAI_API_KEY:}
  315. base-url: https://api.openai.com/v1
  316. model: gpt-4
  317. display-name: OpenAI GPT-4
  318. timeout: 60
  319. # 安全配置
  320. security:
  321. enable-audit: true
  322. dangerous-operations-confirm: true
  323. function-whitelist:
  324. - deleteUser
  325. - updateUser
  326. - queryUsers
  327. - assignRole
  328. sensitive-params:
  329. - password
  330. - idCard
  331. - bankCard
  332. - token
  333. # 限流配置
  334. rate-limit:
  335. max-executions-per-minute: 10
  336. max-executions-per-day: 100