application-local.yaml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387
  1. server:
  2. port: 48080
  3. --- #################### 数据库相关配置 ####################
  4. spring:
  5. # 数据源配置项
  6. autoconfigure:
  7. exclude:
  8. - com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceAutoConfigure # 排除 Druid 的自动配置,使用 dynamic-datasource-spring-boot-starter 配置多数据源
  9. datasource:
  10. druid: # Druid 【监控】相关的全局配置
  11. web-stat-filter:
  12. enabled: true
  13. stat-view-servlet:
  14. enabled: true
  15. allow: # 设置白名单,不填则允许所有访问
  16. url-pattern: /druid/*
  17. login-username: # 控制台管理用户名和密码
  18. login-password:
  19. filter:
  20. stat:
  21. enabled: true
  22. log-slow-sql: true # 慢 SQL 记录
  23. slow-sql-millis: 100
  24. merge-sql: true
  25. wall:
  26. config:
  27. multi-statement-allow: true
  28. dynamic: # 多数据源配置
  29. druid: # Druid 【连接池】相关的全局配置
  30. initial-size: 5 # 初始连接数
  31. min-idle: 10 # 最小连接池数量
  32. max-active: 20 # 最大连接池数量
  33. max-wait: 600000 # 配置获取连接等待超时的时间,单位:毫秒
  34. time-between-eviction-runs-millis: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位:毫秒
  35. min-evictable-idle-time-millis: 300000 # 配置一个连接在池中最小生存的时间,单位:毫秒
  36. max-evictable-idle-time-millis: 900000 # 配置一个连接在池中最大生存的时间,单位:毫秒
  37. validation-query: SELECT 1 FROM DUAL # 配置检测连接是否有效
  38. test-while-idle: true
  39. test-on-borrow: false
  40. test-on-return: false
  41. primary: master
  42. datasource:
  43. master:
  44. name: ruoyi-vue-pro
  45. url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.master.name}?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
  46. driver-class-name: com.mysql.jdbc.Driver
  47. username: root
  48. password: 123456
  49. slave: # 模拟从库,可根据自己需要修改
  50. name: ruoyi-vue-pro
  51. url: jdbc:mysql://127.0.0.1:3306/${spring.datasource.dynamic.datasource.slave.name}?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
  52. driver-class-name: com.mysql.jdbc.Driver
  53. username: root
  54. password: 123456
  55. # Redis 配置。Redisson 默认的配置足够使用,一般不需要进行调优
  56. redis:
  57. host: 127.0.0.1 # 地址
  58. port: 6379 # 端口
  59. database: 0 # 数据库索引
  60. --- #################### 定时任务相关配置 ####################
  61. # Quartz 配置项,对应 QuartzProperties 配置类
  62. spring:
  63. quartz:
  64. scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName
  65. job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。
  66. wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true
  67. properties: # 添加 Quartz Scheduler 附加属性,更多可以看 http://www.quartz-scheduler.org/documentation/2.4.0-SNAPSHOT/configuration.html 文档
  68. org:
  69. quartz:
  70. # Scheduler 相关配置
  71. scheduler:
  72. instanceName: schedulerName
  73. instanceId: AUTO # 自动生成 instance ID
  74. # JobStore 相关配置
  75. jobStore:
  76. class: org.quartz.impl.jdbcjobstore.JobStoreTX # JobStore 实现类
  77. isClustered: true # 是集群模式
  78. clusterCheckinInterval: 15000 # 集群检查频率,单位:毫秒。默认为 15000,即 15 秒
  79. misfireThreshold: 60000 # misfire 阀值,单位:毫秒。
  80. # 线程池相关配置
  81. threadPool:
  82. threadCount: 25 # 线程池大小。默认为 10 。
  83. threadPriority: 5 # 线程优先级
  84. class: org.quartz.simpl.SimpleThreadPool # 线程池类型
  85. jdbc: # 使用 JDBC 的 JobStore 的时候,JDBC 的配置
  86. initialize-schema: NEVER # 是否自动使用 SQL 初始化 Quartz 表结构。这里设置成 never ,我们手动创建表结构。
  87. --- #################### 配置中心相关配置 ####################
  88. # Apollo 配置中心
  89. apollo:
  90. bootstrap:
  91. enabled: true # 设置 Apollo 在启动阶段生效
  92. eagerLoad:
  93. enabled: true # 设置 Apollo 在日志初始化前生效,可以实现日志的动态级别配置
  94. jdbc: # 自定义的 JDBC 配置项,用于数据库的地址
  95. dao: cn.iocoder.yudao.adminserver.modules.infra.dal.mysql.config.InfConfigDAOImpl
  96. url: ${spring.datasource.dynamic.datasource.master.url}
  97. username: ${spring.datasource.dynamic.datasource.master.username}
  98. password: ${spring.datasource.dynamic.datasource.master.password}
  99. --- #################### 服务保障相关配置 ####################
  100. # Lock4j 配置项
  101. lock4j:
  102. acquire-timeout: 3000 # 获取分布式锁超时时间,默认为 3000 毫秒
  103. expire: 30000 # 分布式锁的超时时间,默认为 30 毫秒
  104. # Resilience4j 配置项
  105. resilience4j:
  106. ratelimiter:
  107. instances:
  108. backendA:
  109. limit-for-period: 1 # 每个周期内,允许的请求数。默认为 50
  110. limit-refresh-period: 60s # 每个周期的时长,单位:微秒。默认为 500
  111. timeout-duration: 1s # 被限流时,阻塞等待的时长,单位:微秒。默认为 5s
  112. register-health-indicator: true # 是否注册到健康监测
  113. --- #################### 监控相关配置 ####################
  114. # Actuator 监控端点的配置项
  115. management:
  116. endpoints:
  117. web:
  118. base-path: /actuator # Actuator 提供的 API 接口的根目录。默认为 /actuator
  119. exposure:
  120. include: '*' # 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。
  121. # Spring Boot Admin 配置项
  122. spring:
  123. boot:
  124. admin:
  125. # Spring Boot Admin Client 客户端的相关配置
  126. client:
  127. url: http://127.0.0.1:${server.port}/${spring.boot.admin.context-path} # 设置 Spring Boot Admin Server 地址
  128. instance:
  129. prefer-ip: true # 注册实例时,优先使用 IP
  130. # Spring Boot Admin Server 服务端的相关配置
  131. context-path: /admin # 配置 Spring
  132. # 日志文件配置
  133. logging:
  134. file:
  135. name: ${user.home}/logs/${spring.application.name}.log # 日志文件名,全路径
  136. --- #################### 芋道相关配置 ####################
  137. # 芋道配置项,设置当前项目所有自定义的配置
  138. yudao:
  139. security:
  140. token-header: Authorization
  141. token-secret: abcdefghijklmnopqrstuvwxyz
  142. token-timeout: 1d
  143. session-timeout: 30m
  144. mock-enable: true
  145. mock-secret: test
  146. file:
  147. base-path: http://127.0.0.1:${server.port}${yudao.web.api-prefix}/infra/file/get/
  148. xss:
  149. enable: false
  150. exclude-urls: # 如下两个 url,仅仅是为了演示,去掉配置也没关系
  151. - ${spring.boot.admin.context-path}/** # 不处理 Spring Boot Admin 的请求
  152. - ${management.endpoints.web.base-path}/** # 不处理 Actuator 的请求
  153. demo: false # 关闭演示模式
  154. # ums core
  155. ums:
  156. one-click-login:
  157. # 一键登录是否开启, 默认 false
  158. enable: true
  159. # 一键登录请求处理 url, 默认 /authentication/one-click
  160. login-processing-url: /authentication/one-click
  161. # token 参数名称, 默认: accessToken
  162. token-param-name: accessToken
  163. # 其他请求参数名称列表(包括请求头名称), 此参数会传递到 OneClickLoginService.callback(String, Map)
  164. # 与 UserDetailsRegisterService.registerUser(String, Map); 默认为: 空
  165. other-param-names:
  166. - imei
  167. # ================ 第三方授权登录相关配置 ================
  168. oauth:
  169. # 第三方授权登录后如未注册用户是否支持自动注册功能, 默认: true
  170. auto-sign-up: true
  171. # 第三方授权登录后如未注册用户不支持自动注册功能, 则跳转到此 url 进行注册逻辑, 此 url 必须开发者自己实现; 默认: /signUp.html;
  172. # 注意: 当 autoSignUp = false 时, 此属性才生效.
  173. # 例如: 1. 设置值 "/signUp", 则跳转指定到 "/signUp" 进行注册.
  174. # 2. 想返回自定义 json 数据到前端, 这里要设置 null , 在 Auth2LoginAuthenticationFilter 设置的 AuthenticationSuccessHandler
  175. # 上处理返回 json; 判断是否为临时用户的条件是: Authentication.getPrincipal() 是否为 TemporaryUser 类型.
  176. sign-up-url: null
  177. # 用于第三方授权登录时, 未开启自动注册且用户是第一次授权登录的临时用户密码, 默认为: "". 注意: 生产环境更换密码
  178. temporary-user-password: ""
  179. # 用于第三方授权登录时, 未开启自动注册且用户是第一次授权登录的临时用户的默认权限, 多个权限用逗号分开, 默认为: "ROLE_TEMPORARY_USER"
  180. temporary-user-authorities: ROLE_TEMPORARY_USER
  181. # 抑制反射警告, 支持 JDK11, 默认: false , 在确认 WARNING: An illegal reflective access operation has occurred 安全后, 可以打开此设置, 可以抑制反射警告.
  182. suppress-reflect-warning: true
  183. # 第三方服务商: providerId, 支持所有 JustAuth 支持的第三方授权登录, 目前有 32 家第三方授权登录
  184. github:
  185. # 根据是否有设置 clientId 来动态加载相应 JustAuth 的 AuthXxxRequest
  186. client-id: 4d4ee00e82f669f2ea8d
  187. client-secret: 4050be113a83556b63bd991d606fded437b05235
  188. scopes:
  189. # - 'repo:status'
  190. # - 'public_repo'
  191. # - 'repo:invite'
  192. # - 'user:follow'
  193. gitee:
  194. client-id: eb5e3298cc10ead57cd40f9f36e7154ab2ea54dcb519684d7e10ca3fec5b1c1a
  195. client-secret: 495b5542dc007e2d46d316c527bd05dac586f2ec31b96c551e164387b5edb1cb
  196. scopes:
  197. - user_info
  198. # # 自定义 OAuth2 Login
  199. # customize:
  200. # client-id: c971cf1634460e18310a5d7cb0f55d7d143a72015b2f29aee6a0e8911efac7eb
  201. # client-secret: 309c9521721e3eb385a99a6bde2755f3107c7e15f3b8e0527c9f3ea4d1ce33bb
  202. # # 自定义第三方授权登录时, 当 Auth2Properties#customize 时有效, 此字段必须以驼峰方式命名.
  203. # # 比如此字段的值为 umsCustomize, 那么 /auth2/authorization/customize 会替换为 /auth2/authorization/umsCustomize
  204. # customize-provider-id: giteeCustomize
  205. # # 自定义第三方授权登录, 当 Auth2Properties#customize 时有效, 设置第三方是否在国外, 默认: false.
  206. # # 如果为 false 时, 设置 {@link HttpConfig} 的超时时间为 ums.oauth.proxy.timeout 的值.
  207. # # 如果为 true 时, 设置 {@link HttpConfig} 的超时时间为 ums.oauth.proxy.foreignTimeout 的值.
  208. # customize-is-foreign: false
  209. # 第三方登录授权登录 url 前缀, 不包含 ServletContextPath,默认为 /auth2/authorization.
  210. auth-login-url-prefix: /api/auth2/authorization
  211. # 第三方登录回调处理 url 前缀 ,也就是 RedirectUrl 的前缀, 不包含 ServletContextPath,默认为 /auth2/login.
  212. redirect-url-prefix: /api/auth2/login
  213. # 第三方登录回调的域名, 例如:http://localhost:9090 默认为 "http://127.0.0.1",
  214. # redirectUrl 直接由 {domain}/{servletContextPath}/{redirectUrlPrefix}/{providerId}(ums.oauth.[qq/gitee/weibo])组成
  215. domain: http://localhost:48080
  216. # 第三方授权登录成功后的默认权限, 多个权限用逗号分开, 默认为: "ROLE_USER"
  217. default-authorities: ROLE_USER
  218. # 是否支持内置的第三方登录用户表(user_connection) 和 auth_token 表. 默认: true.
  219. # 注意: 如果为 false, 则必须重新实现 ConnectionService 接口.
  220. enable-user-connection-and-auth-token-table: true
  221. # 是否支持内置的第三方登录 token 表(auth_token). 默认: true.
  222. enable-auth-token-table: true
  223. # ================ start: 定时刷新 access token 定时任务相关配置 ================
  224. # 是否支持定时刷新 AccessToken 定时任务. 默认: false.
  225. # 支持分布式(分布式 IOC 容器中必须有 RedisConnectionFactory, 也就是说, 是否分布式执行依据 IOC 容器中是否有 RedisConnectionFactory)
  226. enableRefreshTokenJob: false
  227. # A cron-like expression. 0 * 2 * * ? 分别对应: second/minute/hour/day of month/month/day of week,
  228. # 默认为: "0 * 2 * * ?", 凌晨 2 点启动定时任务, 支持分布式(分布式 IOC 容器中必须有 {@link RedisConnectionFactory},
  229. # 也就是说, 是否分布式执行依据 IOC 容器中是否有 {@link RedisConnectionFactory})
  230. refresh-token-job-cron: 0 0/5 * * * ?
  231. # 定时刷新 accessToken 任务时, 批处理数据库的记录数. 注意: 分布式应用时, 此配置不同服务器配置必须是一样的. batchCount 大小需要根据实际生产环境进行优化
  232. batch-count: 1000
  233. # accessToken 的剩余有效期内进行刷新 accessToken, 默认: 24, 单位: 小时. 注意: 需要根据实际生产环境进行优化
  234. remaining-expire-in: 24
  235. # ================ start: 定时刷新 access token 定时任务相关配置 ================
  236. # JustAuth 内部参数设置
  237. just-auth:
  238. # 忽略校验 state 参数,默认不开启。当 ignoreCheckState 为 true 时, me.zhyd.oauth.request.AuthDefaultRequest.login(AuthCallback) 将不会校验 state 的合法性。
  239. # 使用场景:当且仅当使用自实现 state 校验逻辑时开启
  240. # 以下场景使用方案仅作参考:
  241. # 1. 授权、登录为同端,并且全部使用 JustAuth 实现时,该值建议设为 false;
  242. # 2. 授权和登录为不同端实现时,比如前端页面拼装 authorizeUrl,并且前端自行对state进行校验,后端只负责使用code获取用户信息时,该值建议设为 true;
  243. # 如非特殊需要,不建议开启这个配置
  244. # 该方案主要为了解决以下类似场景的问题:Since: 1.15.6, See Also: https://github.com/justauth/JustAuth/issues/83
  245. ignoreCheckState: false
  246. # 默认 state 缓存过期时间:3分钟(PT180S) 鉴于授权过程中,根据个人的操作习惯,或者授权平台的不同(google等),每个授权流程的耗时也有差异,
  247. # 不过单个授权流程一般不会太长 本缓存工具默认的过期时间设置为3分钟,即程序默认认为3分钟内的授权有效,超过3分钟则默认失效,失效后删除
  248. # 注意: 这是为了测试打断点时用的, 生产环境自己设置为合适数组或默认
  249. timeout: PT1800S
  250. # JustAuth state 缓存类型, 默认 session
  251. cacheType: session
  252. # JustAuth state 缓存 key 前缀
  253. cacheKeyPrefix: 'JUST_AUTH:'
  254. # 用于 JustAuth 的代理(HttpClient)设置
  255. proxy:
  256. # 是否支持代理, 默认为: false.
  257. enable: false
  258. # 针对国外服务可以单独设置代理类型, 默认 Proxy.Type.HTTP, enable = true 时生效.
  259. proxy: HTTP
  260. # 代理 host, enable = true 时生效.
  261. hostname:
  262. # 代理端口, enable = true 时生效.
  263. port:
  264. # 用于国内代理(HttpClient)超时, 默认 PT3S
  265. timeout: PT3S
  266. # 用于国外网站代理(HttpClient)超时, 默认 PT15S
  267. foreign-timeout: PT150S
  268. # =============== start: 第三方登录时用的数据库表 user_connection 与 auth_token 添加 redis cache ===============
  269. cache:
  270. # redisCacheManager 设置, 默认实现: 对查询结果 null 值进行缓存, 添加时更新缓存 null 值.
  271. redis:
  272. # 是否开启缓存, 默认 false
  273. open: false
  274. # 是否使用 spring IOC 容器中的 RedisConnectionFactory, 默认: false
  275. # 如果使用 spring IOC 容器中的 RedisConnectionFactory,则要注意 cache.database-index 要与 spring.redis.database 一样。
  276. use-ioc-redis-connection-factory: true
  277. cache:
  278. # redis cache 存放的 database index, 默认: 0
  279. database-index: 1
  280. # 设置缓存管理器管理的缓存的默认过期时间, 默认: 200s
  281. default-expire-time: PT200S
  282. # cache ttl 。使用 0 声明一个永久的缓存。 默认: 180, 单位: 秒<br>
  283. # 取缓存时间的 20% 作为动态的随机变量上下浮动, 防止同时缓存失效而缓存击穿
  284. entry-ttl: PT180S
  285. # Names of the default caches to consider for caching operations defined in the annotated class.
  286. # 此设置不对 user_connection 与 auth_token 使用的缓存名称(UCC/UCHC/UCHACC)产生影响.
  287. cache-names:
  288. - cacheName
  289. # =============== end: 第三方登录时用的数据库表 user_connection 与 auth_token 添加 redis cache ===============
  290. # =============== start: 线程池配置 ===============
  291. executor:
  292. # 启动第三方授权登录用户的 accessToken 的定时任务时的 Executor 属性, 注意: 需要根据实际生产环境进行优化
  293. job-task-scheduled-executor:
  294. # 线程池中空闲时保留的线程数, 默认: 0
  295. core-pool-size: 0
  296. # keep alive time, 默认: 10
  297. keep-alive-time: 0
  298. # keepAliveTime 时间单位, 默认: 毫秒
  299. time-unit: milliseconds
  300. # 线程池名称, 默认: accessTokenJob
  301. pool-name: accessTokenJob
  302. # 拒绝策略, 默认: ABORT
  303. rejected-execution-handler-policy: abort
  304. # 线程池关闭过程的超时时间, 默认: PT10S
  305. executor-shutdown-timeout: PT10S
  306. # 更新第三方授权登录用户的 accessToken 的执行逻辑, 向本地数据库 auth_token 表获取过期或在一定时间内过期的 token 记录,
  307. # 用 refreshToken 向第三方服务商更新 accessToken 信息的 Executor 属性,
  308. # 注意: 定时刷新 accessToken 的执行逻辑是多线程的, 需要根据实际生产环境进行优化
  309. refresh-token:
  310. # 程池中空闲时保留的线程数, 默认: 0
  311. core-pool-size: 0
  312. # 最大线程数, 默认: 本机核心数
  313. maximum-pool-size: 8
  314. # keep alive time, 默认: 5
  315. keep-alive-time: 5
  316. # keepAliveTime 时间单位, 默认: 秒
  317. time-unit: seconds
  318. # blocking queue capacity, 默认: maximumPoolSize * 2
  319. blocking-queue-capacity: 16
  320. # 线程池名称, 默认: refreshToken
  321. pool-name: refreshToken
  322. # 拒绝策略, 默认: CALLER_RUNS 注意: 一般情况下不要更改默认设置, 没有实现 RefreshToken 逻辑被拒绝执行后的处理逻辑, 除非自己实现RefreshTokenJob.refreshTokenJob() 对 RefreshToken 逻辑被拒绝执行后的处理逻辑.
  323. rejected-execution-handler-policy: caller_runs
  324. # 线程池关闭过程的超时时间, 默认: 10 秒
  325. executor-shutdown-timeout: PT10S
  326. # 第三方授权登录时, 异步更新用户的第三方授权用户信息与 token 信息的 Executor 属性,
  327. # 注意: 第三方授权登录时是异步更新第三方用户信息与 token 信息到本地数据库时使用此配置, 需要根据实际生产环境进行优化
  328. user-connection-update:
  329. # 程池中空闲时保留的线程数, 默认: 5
  330. core-pool-size: 5
  331. # 最大线程数, 默认: 本机核心数
  332. maximum-pool-size: 8
  333. # keep alive time, 默认: 10
  334. keep-alive-time:
  335. # keepAliveTime 时间单位, 默认: 秒
  336. time-unit: seconds
  337. # blocking queue capacity, 默认: maximumPoolSize * 2
  338. blocking-queue-capacity: 16
  339. # 线程池名称, 默认: updateConnection
  340. pool-name: updateConnection
  341. # 拒绝策略, 默认: CALLER_RUNS 注意: 一般情况下不要更改默认设置, 除非自己实现Auth2LoginAuthenticationProvider更新逻辑;
  342. # 改成 ABORT 也支持, 默认实现 Auth2LoginAuthenticationProvider 是异步更新被拒绝执行后, 会执行同步更新.
  343. rejected-execution-handler-policy: caller_runs
  344. # 线程池关闭过程的超时时间, 默认: PT10S
  345. executor-shutdown-timeout: PT10S
  346. # =============== end: 线程池配置 ===============
  347. # =============== start: user_connection repository 配置 ===============
  348. repository:
  349. # 第三方登录用户数据库表的字段 accessToken 与 refreshToken 加密专用密码
  350. text-encryptor-password: 7ca5d913a17b4942942d16a974e3fecc
  351. # 第三方登录用户数据库表的字段 accessToken 与 refreshToken 加密专用 salt
  352. text-encryptor-salt: cd538b1b077542aca5f86942b6507fe2
  353. # 是否在启动时检查并自动创建 userConnectionTableName 与 authTokenTableName, 默认: TRUE
  354. enableStartUpInitializeTable: true
  355. # 其他的有: 数据库表名称, 字段名称, curd sql 语句 等设置, 一般不需要更改,
  356. # 如果要添加字段: 具体查看 RepositoryProperties 与 Auth2JdbcUsersConnectionRepository
  357. # =============== end: user_connection repository 配置 ===============