新增 txw-gateway 网关模块
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
f96d815796
commit
97d6deb769
0
txw-gateway/README.md
Normal file
0
txw-gateway/README.md
Normal file
58
txw-gateway/pom.xml
Normal file
58
txw-gateway/pom.xml
Normal file
@ -0,0 +1,58 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.css.ggzc</groupId>
|
||||
<artifactId>ggzc-framework-dependencies</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>txw-gateway</artifactId>
|
||||
<groupId>com.css.txw</groupId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<name>${project.artifactId}</name>
|
||||
<description>txw-gateway</description>
|
||||
<dependencyManagement>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.css.ggzc</groupId>
|
||||
<artifactId>ggzc-framework-starter</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</dependencyManagement>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.css.ggzc</groupId>
|
||||
<artifactId>ggzc-framework-starter-gateway</artifactId>
|
||||
</dependency>
|
||||
<!-- RPC 远程调用相关 -->
|
||||
<dependency>
|
||||
<groupId>com.css.ggzc</groupId>
|
||||
<artifactId>ggzc-framework-starter-rpc</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<!-- 设置构建的 jar 包名 -->
|
||||
<finalName>springboot</finalName>
|
||||
<plugins>
|
||||
<!-- 打包 -->
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<version>${spring.boot.version}</version> <!-- 如果 spring.boot.version 版本修改,则这里也要跟着修改 -->
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal> <!-- 将引入的 jar 打入其中 -->
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
61
txw-gateway/settings.xml
Normal file
61
txw-gateway/settings.xml
Normal file
@ -0,0 +1,61 @@
|
||||
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
|
||||
<!--<localRepository>[本地maven库目录]</localRepository>-->
|
||||
<!-- omitted xml -->
|
||||
<!-- 请妥善保管好您的配置,不要随意分享给他人 -->
|
||||
<servers>
|
||||
<server>
|
||||
<id>codingcorp-qyd_repo-mvn_public</id>
|
||||
<username>coding-user</username>
|
||||
<password>coding-pwd</password>
|
||||
</server>
|
||||
</servers>
|
||||
|
||||
<!-- omitted xml -->
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>Repository Proxy</id>
|
||||
<activation>
|
||||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
<repositories>
|
||||
<repository>
|
||||
<!--必须与 settings.xml 的 id 一致-->
|
||||
<id>codingcorp-qyd_repo-mvn_public</id>
|
||||
<name>mvn_public</name>
|
||||
<url>http://codingcorp-maven.pkg.codingstd.xc01.cloud.sat.tax/repository/qyd_repo/mvn_public/</url>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
</snapshots>
|
||||
</repository>
|
||||
</repositories>
|
||||
<pluginRepositories>
|
||||
<pluginRepository>
|
||||
<id>codingcorp-qyd_repo-mvn_public</id>
|
||||
<releases>
|
||||
<enabled>true</enabled>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
</snapshots>
|
||||
<url>http://codingcorp-maven.pkg.codingstd.xc01.cloud.sat.tax/repository/qyd_repo/mvn_public/</url>
|
||||
</pluginRepository>
|
||||
</pluginRepositories>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<mirrors>
|
||||
<mirror>
|
||||
<id>codingcorp-qyd_repo-mvn_public</id>
|
||||
<!-- 此配置避免了本仓库制品的拉取流量被切换到腾讯云镜像源,保证您在使用镜像加速的同时可以从本仓库拉取制品 -->
|
||||
<mirrorOf>central</mirrorOf>
|
||||
<name>mvn_public</name>
|
||||
<url>http://codingcorp-maven.pkg.codingstd.xc01.cloud.sat.tax/repository/qyd_repo/mvn_public/</url>
|
||||
</mirror>
|
||||
</mirrors>
|
||||
</settings>
|
||||
@ -0,0 +1,16 @@
|
||||
package com.css.txw.gateway.app;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.EnableAspectJAutoProxy;
|
||||
|
||||
/**
|
||||
* 仅开发使用,正式环境不使用,写在此处的配置在生产环境不会生效
|
||||
*/
|
||||
@SpringBootApplication
|
||||
@EnableAspectJAutoProxy(proxyTargetClass = true)
|
||||
public class DevAppStarter {
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(DevAppStarter.class, args);
|
||||
}
|
||||
}
|
||||
19
txw-gateway/src/main/resources/application.yaml
Normal file
19
txw-gateway/src/main/resources/application.yaml
Normal file
@ -0,0 +1,19 @@
|
||||
spring:
|
||||
main:
|
||||
allow-circular-references: true # 允许循环依赖,因为项目是三层架构,无法避免这个情况。
|
||||
css:
|
||||
application:
|
||||
version: 1.0.0
|
||||
base-package: com.css.ggzc.gateway
|
||||
swagger:
|
||||
title: ${spring.application.name}
|
||||
description: 网关服务
|
||||
version: ${css.application.version}
|
||||
base-package: ${css.application.base-package}
|
||||
tenant: # 多租户相关配置项
|
||||
enable: true
|
||||
gateway:
|
||||
api:
|
||||
checkAccessToken: http://sso-service/sso/oauth2/token/check
|
||||
# checkAccessToken: http://gateway.qydckts.tax.cn/sso/oauth2/token/check
|
||||
|
||||
22
txw-gateway/src/main/resources/bootstrap-env.yml
Normal file
22
txw-gateway/src/main/resources/bootstrap-env.yml
Normal file
@ -0,0 +1,22 @@
|
||||
|
||||
--- #################### 注册中心相关配置 ####################
|
||||
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: 10.23.10.91:8848
|
||||
discovery:
|
||||
namespace: qyd-txw # 命名空间。这里使用 dev 开发环境
|
||||
|
||||
--- #################### 配置中心相关配置 ####################
|
||||
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
|
||||
config:
|
||||
server-addr: 10.23.10.91:8848 # Nacos 服务器地址
|
||||
namespace: qyd-txw # 命名空间。这里使用 dev 开发环境
|
||||
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
|
||||
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId,默认为 spring.application.name
|
||||
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties
|
||||
27
txw-gateway/src/main/resources/bootstrap-local.yml
Normal file
27
txw-gateway/src/main/resources/bootstrap-local.yml
Normal file
@ -0,0 +1,27 @@
|
||||
--- #################### 注册中心相关配置 ####################
|
||||
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: 10.23.10.91:8848
|
||||
username: qyddev
|
||||
password: 9!1%Sw#QydNacosDev
|
||||
discovery:
|
||||
namespace: 0ac06fee-c2c9-4ca0-9a26-4921d553adde # 命名空间。这里使用开发环境
|
||||
metadata:
|
||||
version: 1.0.0-SNAPSHOT # 服务实例的版本号,可用于灰度发布
|
||||
|
||||
--- #################### 配置中心相关配置 ####################
|
||||
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
# Nacos Config 配置项,对应 NacosConfigProperties 配置属性类
|
||||
config:
|
||||
server-addr: 10.23.10.91:8848 # Nacos 服务器地址
|
||||
username: qyddev
|
||||
password: 9!1%Sw#QydNacosDev
|
||||
namespace: 0ac06fee-c2c9-4ca0-9a26-4921d553adde # 命名空间。这里使用 dev 开发环境
|
||||
group: DEFAULT_GROUP # 使用的 Nacos 配置分组,默认为 DEFAULT_GROUP
|
||||
name: ${spring.application.name} # 使用的 Nacos 配置集的 dataId,默认为 spring.application.name
|
||||
file-extension: yaml # 使用的 Nacos 配置集的 dataId 的文件拓展名,同时也是 Nacos 配置集的配置格式,默认为 properties
|
||||
107
txw-gateway/src/main/resources/bootstrap-nacos.yml
Normal file
107
txw-gateway/src/main/resources/bootstrap-nacos.yml
Normal file
@ -0,0 +1,107 @@
|
||||
spring:
|
||||
cloud:
|
||||
gateway:
|
||||
x-forwarded:
|
||||
prefix-enabled: false # 避免 Swagger 重复带上额外的 /ckts-api/system 前缀
|
||||
routes:
|
||||
- id: qyd-ckts-dlfw
|
||||
uri: grayLb://qyd-ckts-dlfw
|
||||
predicates:
|
||||
- Path=/dlfw/**
|
||||
- id: qyd-ckts-jszx
|
||||
uri: grayLb://qyd-ckts-jszx
|
||||
predicates:
|
||||
- Path=/jszx/**
|
||||
- id: qyd-ckts-mhzc
|
||||
uri: grayLb://qyd-ckts-mhzc
|
||||
predicates:
|
||||
- Path=/mhzc/**
|
||||
- id: qyd-ckts-ptgl
|
||||
uri: grayLb://qyd-ckts-ptgl
|
||||
predicates:
|
||||
- Path=/ptgl/**
|
||||
- id: qyd-ckts-sbzx
|
||||
uri: grayLb://qyd-ckts-sbzx
|
||||
predicates:
|
||||
- Path=/sbzx/**
|
||||
- id: qyd-ckts-sjcj
|
||||
uri: grayLb://qyd-ckts-sjcj
|
||||
predicates:
|
||||
- Path=/sjcj/**
|
||||
- id: qyd-ckts-sjfx
|
||||
uri: grayLb://qyd-ckts-sjfx
|
||||
predicates:
|
||||
- Path=/sjfx/**
|
||||
- id: qyd-ckts-sjjx
|
||||
uri: grayLb://qyd-ckts-sjjx
|
||||
predicates:
|
||||
- Path=/sjjx/**
|
||||
- id: qyd-ckts-sso
|
||||
uri: grayLb://qyd-ckts-sso
|
||||
predicates:
|
||||
- Path=/sso/**
|
||||
# API配置
|
||||
- id: qyd-ckts-sjcj-api
|
||||
uri: grayLb://qyd-ckts-sjcj
|
||||
predicates:
|
||||
- Path=/api/sjcj/**
|
||||
filters:
|
||||
- ApiGatewayFilter
|
||||
- RewritePath=/api/(?<segment>.*), /$\{segment}
|
||||
|
||||
|
||||
knife4j:
|
||||
# 聚合 Swagger 文档,参考 https://doc.xiaominfo.com/docs/action/springcloud-gateway 文档
|
||||
enable: true # 2.2 是否开启 Swagger 文档的 Knife4j UI 界面
|
||||
setting:
|
||||
language: zh_cn
|
||||
gateway:
|
||||
enabled: true
|
||||
routes:
|
||||
- name: qyd-ckts-dlfw
|
||||
service-name: qyd-ckts-dlfw
|
||||
url: /dlfw/v3/api-docs
|
||||
- name: qyd-ckts-jszx
|
||||
service-name: qyd-ckts-jszx
|
||||
url: /jszx/v3/api-docs
|
||||
- name: qyd-ckts-mhzc
|
||||
service-name: qyd-ckts-mhzc
|
||||
url: /mhzc/v3/api-docs
|
||||
- name: qyd-ckts-ptgl
|
||||
service-name: qyd-ckts-ptgl
|
||||
url: /ptgl/v3/api-docs
|
||||
- name: qyd-ckts-sbzx
|
||||
service-name: qyd-ckts-sbzx
|
||||
url: /sbzx/v3/api-docs
|
||||
- name: qyd-ckts-sjcj
|
||||
service-name: qyd-ckts-sjcj
|
||||
url: /sjcj/v3/api-docs
|
||||
- name: qyd-ckts-sjfx
|
||||
service-name: qyd-ckts-sjfx
|
||||
url: /sjfx/v3/api-docs
|
||||
- name: qyd-ckts-sjjx
|
||||
service-name: qyd-ckts-sjjx
|
||||
url: /sjjx/v3/api-docs
|
||||
- name: qyd-ckts-sso
|
||||
service-name: qyd-ckts-sso
|
||||
url: /sso/v3/api-docs
|
||||
|
||||
css:
|
||||
gateway:
|
||||
whitelist:
|
||||
urls:
|
||||
- /sso/verify/get
|
||||
- /sso/auth/login
|
||||
- /sso/auth/logout
|
||||
- /sso/auth/refresh-token
|
||||
- /oauth2/token/create
|
||||
- /oauth2/token/check
|
||||
- /open/oauth2/token
|
||||
- /sso/auth/sendMsg #新增短信验证码发送白名单 陈鑫洋 2024/10/16
|
||||
- /sso/auth/loginBySMS #新增短信验证登陆白名单 陈鑫洋 2024/10/16
|
||||
- /sso/admin/auth/login #新增后台登录白名单 陈鑫洋 2024/10/17
|
||||
- /sso/admin/auth/logout #新增后台登出白名单 陈鑫洋 2024/10/17
|
||||
- /sso/oauth2/token
|
||||
- /sso/oauth2/check-token
|
||||
- /sso/oauth2/remove-token
|
||||
- /api/**
|
||||
14
txw-gateway/src/main/resources/bootstrap.yml
Normal file
14
txw-gateway/src/main/resources/bootstrap.yml
Normal file
@ -0,0 +1,14 @@
|
||||
spring:
|
||||
application:
|
||||
name: txw-gateway
|
||||
profiles:
|
||||
active: local
|
||||
server:
|
||||
port: 9300
|
||||
servlet:
|
||||
context-path: /
|
||||
|
||||
# 日志文件配置。注意,如果 logging.file.name 不放在 bootstrap.yaml 配置文件,而是放在 application.yaml 中,会导致出现 LOG_FILE_IS_UNDEFINED 文件
|
||||
logging:
|
||||
file:
|
||||
name: ${user.dir}/logs/${spring.application.name}.log # 日志文件名,全路径
|
||||
76
txw-gateway/src/main/resources/logback-spring.xml
Normal file
76
txw-gateway/src/main/resources/logback-spring.xml
Normal file
@ -0,0 +1,76 @@
|
||||
<configuration>
|
||||
<!-- 引用 Spring Boot 的 logback 基础配置 -->
|
||||
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
|
||||
<conversionRule conversionWord="hhid" converterClass="com.css.ggzc.framework.common.log.LogbackPatternConverter"/>
|
||||
|
||||
<!-- 变量 yudao.info.base-package,基础业务包 -->
|
||||
<springProperty scope="context" name="css.application.base-package" source="css.application.base-package"/>
|
||||
<!-- 格式化输出:%d 表示日期,%X{tid} SkWalking 链路追踪编号,%thread 表示线程名,%-5level:级别从左显示 5 个字符宽度,%msg:日志消息,%n是换行符 -->
|
||||
<property name="PATTERN_DEFAULT"
|
||||
value="%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-dd HH:mm:ss.SSS}} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%thread] [%hhid:%X{TRACE_ID}] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
|
||||
|
||||
<!-- 控制台 Appender -->
|
||||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${PATTERN_DEFAULT}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 文件 Appender -->
|
||||
<!-- 参考 Spring Boot 的 file-appender.xml 编写 -->
|
||||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<encoder>
|
||||
<pattern>${PATTERN_DEFAULT}</pattern>
|
||||
</encoder>
|
||||
<!-- 日志文件名 -->
|
||||
<file>${LOG_FILE}</file>
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
|
||||
<!-- 滚动后的日志文件名 -->
|
||||
<fileNamePattern>
|
||||
${LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN:-${LOG_FILE}.%d{yyyy-MM-dd}.%i.gz}
|
||||
</fileNamePattern>
|
||||
<!-- 启动服务时,是否清理历史日志,一般不建议清理 -->
|
||||
<cleanHistoryOnStart>${LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START:-false}
|
||||
</cleanHistoryOnStart>
|
||||
<!-- 日志文件,到达多少容量,进行滚动 -->
|
||||
<maxFileSize>${LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE:-10MB}</maxFileSize>
|
||||
<!-- 日志文件的总大小,0 表示不限制 -->
|
||||
<totalSizeCap>${LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP:-0}</totalSizeCap>
|
||||
<!-- 日志文件的保留天数 -->
|
||||
<maxHistory>${LOGBACK_ROLLINGPOLICY_MAX_HISTORY:-30}</maxHistory>
|
||||
</rollingPolicy>
|
||||
</appender>
|
||||
<!-- 异步写入日志,提升性能 -->
|
||||
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
|
||||
<!-- 不丢失日志。默认的,如果队列的 80% 已满,则会丢弃 TRACT、DEBUG、INFO 级别的日志 -->
|
||||
<discardingThreshold>0</discardingThreshold>
|
||||
<!-- 更改默认的队列的深度,该值会影响性能。默认值为 256 -->
|
||||
<queueSize>256</queueSize>
|
||||
<appender-ref ref="FILE"/>
|
||||
</appender>
|
||||
|
||||
<!-- SkyWalking GRPC 日志收集,实现日志中心。注意:SkyWalking 8.4.0 版本开始支持 -->
|
||||
<!-- <appender name="GRPC" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
|
||||
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
|
||||
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.TraceIdPatternLogbackLayout">
|
||||
<pattern>${PATTERN_DEFAULT}</pattern>
|
||||
</layout>
|
||||
</encoder>
|
||||
</appender>-->
|
||||
|
||||
<!-- 本地环境 -->
|
||||
<springProfile name="local,jc,nacos,oracle">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
</root>
|
||||
</springProfile>
|
||||
<!-- 其它环境 -->
|
||||
<springProfile name="test,stage,prod,default,env">
|
||||
<root level="INFO">
|
||||
<appender-ref ref="STDOUT"/>
|
||||
<appender-ref ref="ASYNC"/>
|
||||
|
||||
</root>
|
||||
</springProfile>
|
||||
|
||||
</configuration>
|
||||
Loading…
Reference in New Issue
Block a user