From 5333d94f4409dfe7cfcc7349c35dd8e34d6435bb Mon Sep 17 00:00:00 2001
From: Github_lizhw <171332584@qq.com>
Date: Tue, 14 Jan 2025 22:40:08 +0800
Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E7=BD=B2=E5=9C=A8docker=E4=B8=8A?=
=?UTF-8?q?=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-site/ruoyi-gateway/Dockerfile | 10 +-
ruoyi-site/ruoyi-gateway/pom.xml | 9 +-
.../dromara/gateway/filter/AuthFilter.java | 20 +--
.../dromara/gateway/sso/SsoController.java | 9 +-
.../src/main/resources/application-dev.yml | 13 +-
.../src/main/resources/application-local.yml | 153 ++++++++++++++++++
.../src/main/resources/application.yml | 19 ---
ruoyi-site/ruoyi-h5/Dockerfile | 10 +-
ruoyi-site/ruoyi-h5/pom.xml | 9 +-
.../src/main/resources/application-dev.yml | 11 +-
.../src/main/resources/application-local.yml | 8 +
ruoyi-site/ruoyi-sso-server/Dockerfile | 4 +-
.../src/main/resources/application-dev.yml | 9 --
script/docker_app/docker-compose.yml | 10 +-
14 files changed, 226 insertions(+), 68 deletions(-)
create mode 100644 ruoyi-site/ruoyi-gateway/src/main/resources/application-local.yml
diff --git a/ruoyi-site/ruoyi-gateway/Dockerfile b/ruoyi-site/ruoyi-gateway/Dockerfile
index de8673b4f..a1dbe02d7 100644
--- a/ruoyi-site/ruoyi-gateway/Dockerfile
+++ b/ruoyi-site/ruoyi-gateway/Dockerfile
@@ -5,20 +5,20 @@ FROM bellsoft/liberica-openjdk-debian:17.0.11-cds
LABEL maintainer="lizhw"
-RUN mkdir -p /ruoyi/gateway/logs \
- /ruoyi/gateway/temp \
+RUN mkdir -p /ruoyi/server/logs \
+ /ruoyi/server/temp \
/ruoyi/skywalking/agent
-WORKDIR /ruoyi/gateway
+WORKDIR /ruoyi/server
ENV SERVER_PORT=18000 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
EXPOSE ${SERVER_PORT}
-ADD ./target/ruoyi-gateway.jar ./app.jar
+ADD ./target/ruoyi-gateway.jar ./
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
#-Dskywalking.agent.service_name=ruoyi-gateway \
#-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
- -jar app.jar
+ -jar ruoyi-gateway.jar
diff --git a/ruoyi-site/ruoyi-gateway/pom.xml b/ruoyi-site/ruoyi-gateway/pom.xml
index a3069f005..f2dca926e 100644
--- a/ruoyi-site/ruoyi-gateway/pom.xml
+++ b/ruoyi-site/ruoyi-gateway/pom.xml
@@ -32,10 +32,11 @@
caffeine
-
-
-
-
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
diff --git a/ruoyi-site/ruoyi-gateway/src/main/java/org/dromara/gateway/filter/AuthFilter.java b/ruoyi-site/ruoyi-gateway/src/main/java/org/dromara/gateway/filter/AuthFilter.java
index 791297156..1c1e7aa2d 100644
--- a/ruoyi-site/ruoyi-gateway/src/main/java/org/dromara/gateway/filter/AuthFilter.java
+++ b/ruoyi-site/ruoyi-gateway/src/main/java/org/dromara/gateway/filter/AuthFilter.java
@@ -55,16 +55,16 @@ public class AuthFilter {
}
}
- // 检查 header 与 param 里的 clientid 与 token 里的是否一致
- String headerCid = request.getHeaders().getFirst(CLIENT_KEY);
- String paramCid = request.getQueryParams().getFirst(CLIENT_KEY);
- String clientId = StpUtil.getExtra(CLIENT_KEY).toString();
- if (!StringUtils.equalsAny(clientId, headerCid, paramCid)) {
- // token 无效
- throw NotLoginException.newInstance(StpUtil.getLoginType(),
- "-100", "客户端ID与Token不匹配",
- StpUtil.getTokenValue());
- }
+// // 检查 header 与 param 里的 clientid 与 token 里的是否一致
+// String headerCid = request.getHeaders().getFirst(CLIENT_KEY);
+// String paramCid = request.getQueryParams().getFirst(CLIENT_KEY);
+// String clientId = StpUtil.getExtra(CLIENT_KEY).toString();
+// if (!StringUtils.equalsAny(clientId, headerCid, paramCid)) {
+// // token 无效
+// throw NotLoginException.newInstance(StpUtil.getLoginType(),
+// "-100", "客户端ID与Token不匹配",
+// StpUtil.getTokenValue());
+// }
// 有效率影响 用于临时测试
// if (log.isDebugEnabled()) {
diff --git a/ruoyi-site/ruoyi-gateway/src/main/java/org/dromara/gateway/sso/SsoController.java b/ruoyi-site/ruoyi-gateway/src/main/java/org/dromara/gateway/sso/SsoController.java
index e83e9476d..218d5b845 100644
--- a/ruoyi-site/ruoyi-gateway/src/main/java/org/dromara/gateway/sso/SsoController.java
+++ b/ruoyi-site/ruoyi-gateway/src/main/java/org/dromara/gateway/sso/SsoController.java
@@ -5,9 +5,12 @@ import cn.dev33.satoken.sso.config.SaSsoClientConfig;
import cn.dev33.satoken.sso.model.SaCheckTicketResult;
import cn.dev33.satoken.sso.name.ParamName;
import cn.dev33.satoken.sso.processor.SaSsoClientProcessor;
+import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.StpUtil;
import cn.dev33.satoken.util.SaFoxUtil;
import cn.dev33.satoken.util.SaResult;
+import org.dromara.common.core.enums.DeviceType;
+import org.dromara.gateway.filter.AuthFilter;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@@ -104,7 +107,11 @@ public class SsoController {
@RequestMapping("/sso/doLoginByTicket")
public SaResult doLoginByTicket(@RequestParam() String ticket) {
SaCheckTicketResult ctr = SaSsoClientProcessor.instance.checkTicket(ticket, "/sso/doLoginByTicket");
- StpUtil.login(ctr.loginId, ctr.remainSessionTimeout);
+ SaLoginModel model = new SaLoginModel();
+ model.setDevice(DeviceType.PC.getDevice());
+ model.setTimeout(ctr.remainSessionTimeout);
+ model.setExtra(AuthFilter.CLIENT_KEY, SaSsoManager.getClientConfig().getClient());
+ StpUtil.login(ctr.loginId, model);
return SaResult.data(StpUtil.getTokenValue());
}
diff --git a/ruoyi-site/ruoyi-gateway/src/main/resources/application-dev.yml b/ruoyi-site/ruoyi-gateway/src/main/resources/application-dev.yml
index 594147145..ee26b0987 100644
--- a/ruoyi-site/ruoyi-gateway/src/main/resources/application-dev.yml
+++ b/ruoyi-site/ruoyi-gateway/src/main/resources/application-dev.yml
@@ -22,7 +22,7 @@ security:
spring:
data:
redis:
- host: localhost # Redis服务器地址
+ host: redis # Redis服务器地址
database: 0 # Redis数据库索引(默认为0)
port: 6379 # Redis服务器连接端口
password: Lzw8800580/
@@ -31,6 +31,13 @@ spring:
# 是否开启ssl
ssl.enabled: false
cloud:
+ nacos:
+ # nacos 服务地址
+ server-addr: http://nacos-registry:8848
+ discovery:
+ # 注册组
+ group: DUBBO_GROUP
+ namespace: c5c00044-93e6-4e66-8060-3f39aa7ab82b
# 网关配置
gateway:
# 打印请求日志(自定义)
@@ -38,7 +45,7 @@ spring:
discovery:
locator:
lowerCaseServiceId: true
- enabled: true
+ enabled: true #开启注册中心路由
routes:
# 认证中心
- id: ruoyi-auth
@@ -109,6 +116,8 @@ sa-token:
# SSO-Server 端主机地址
server-url: http://sa-sso-server.com:19000
auth-url: http://sa-sso-server.com:8701/?mode=ticket#/sso-login
+ # SSO-Server 端校验ticket地址
+ check-ticket-url: http://ruoyi-sso-server:19000
# pc 客户端id
client: e5cd7e4891bf95d1d19206ce24a7b32e
#jwt密钥
diff --git a/ruoyi-site/ruoyi-gateway/src/main/resources/application-local.yml b/ruoyi-site/ruoyi-gateway/src/main/resources/application-local.yml
new file mode 100644
index 000000000..d7c86f587
--- /dev/null
+++ b/ruoyi-site/ruoyi-gateway/src/main/resources/application-local.yml
@@ -0,0 +1,153 @@
+# 安全配置
+security:
+ # 不校验白名单
+ ignore:
+ whites:
+ - /auth/code
+ - /auth/logout
+ - /auth/login
+ - /auth/binding/*
+ - /auth/social/callback
+ - /auth/register
+ - /auth/tenant/list
+ - /resource/sms/code
+ - /resource/sse/close
+ - /*/v3/api-docs
+ - /*/error
+ - /csrf
+ - /sso/getSsoAuthUrl
+ - /sso/isLogin
+ - /sso/doLoginByTicket
+
+spring:
+ data:
+ redis:
+ host: 127.0.0.1 # Redis服务器地址
+ database: 0 # Redis数据库索引(默认为0)
+ port: 6379 # Redis服务器连接端口
+ password: Lzw8800580/
+ # 连接超时时间
+ timeout: 10s
+ # 是否开启ssl
+ ssl.enabled: false
+ cloud:
+ nacos:
+ # nacos 服务地址
+ server-addr: http://127.0.0.1:8848
+ discovery:
+ # 注册组
+ group: DUBBO_GROUP
+ namespace: c5c00044-93e6-4e66-8060-3f39aa7ab82b
+ # 网关配置
+ gateway:
+ # 打印请求日志(自定义)
+ requestLog: true
+ discovery:
+ locator:
+ lowerCaseServiceId: true
+ enabled: true
+ routes:
+ # 认证中心
+ - id: ruoyi-auth
+ uri: lb://ruoyi-auth
+ predicates:
+ - Path=/auth/**
+ filters:
+ - StripPrefix=1
+ # 代码生成
+ - id: ruoyi-gen
+ uri: lb://ruoyi-gen
+ predicates:
+ - Path=/tool/**
+ filters:
+ - StripPrefix=1
+ # 系统模块
+ - id: ruoyi-system
+ uri: lb://ruoyi-system
+ predicates:
+ - Path=/system/**,/monitor/**
+ filters:
+ - StripPrefix=1
+ # 资源服务
+ - id: ruoyi-resource
+ uri: lb://ruoyi-resource
+ predicates:
+ - Path=/resource/**
+ filters:
+ - StripPrefix=1
+ # workflow服务
+ - id: ruoyi-workflow
+ uri: lb://ruoyi-workflow
+ predicates:
+ - Path=/workflow/**
+ # 演示服务
+ - id: ruoyi-demo
+ uri: lb://ruoyi-demo
+ predicates:
+ - Path=/demo/**
+ filters:
+ - StripPrefix=1
+ # MQ演示服务
+ - id: ruoyi-h5
+ uri: lb://ruoyi-h5
+ predicates:
+ - Path=/ruoyi-h5/**
+ filters:
+ - StripPrefix=1
+
+
+# sa-token配置
+sa-token:
+ sign:
+ # API client和server之间调用 接口签名秘钥 (随便乱摁几个字母即可)
+ secret-key: kQwIOrYbtXmSDkwEiFngrKidMcdrgKor
+ # token名称 (同时也是cookie名称)
+ token-name: Authorization
+ # 允许从 header 读取 token
+ is-read-header: true
+ # 关闭 cookie 鉴权 从根源杜绝 csrf 漏洞风险
+ is-read-cookie: false
+ # 允许从 请求参数 读取 token
+ is-read-body: true
+ # 在多人登录同一账号时,是否共用一个token (为true(默认)时所有登录共用一个token, 为false时每次登录新建一个token),这个为false会导致登陆多次后redis内存的token不能很好释放
+ is-share: false
+ # SSO-相关配置
+ sso-client:
+ # SSO-Server 端主机地址
+ server-url: http://sa-sso-server.com:19000
+ auth-url: http://sa-sso-server.com:8701/?mode=ticket#/sso-login
+ # SSO-Server 端校验ticket地址
+ check-ticket-url: http://ruoyi-sso-server:19000
+ # pc 客户端id
+ client: e5cd7e4891bf95d1d19206ce24a7b32e
+ #jwt密钥
+ jwt-secret-key: abcdcosctlklmnopqrstuvwxyz
+ token-prefix: Bearer
+
+ # 配置Sa-Token单独使用的Redis连接 (此处需要和SSO-Server端连接同一个Redis)
+ alone-redis:
+ # Redis数据库索引 (默认为0)
+ database: ${spring.data.redis.database}
+ # Redis服务器地址
+ host: ${spring.data.redis.host}
+ # Redis服务器连接端口
+ port: ${spring.data.redis.port}
+ # Redis服务器连接密码(默认为空)
+ password: ${spring.data.redis.password}
+ # 连接超时时间
+ timeout: ${spring.data.redis.timeout}
+ lettuce:
+ pool:
+ # 连接池最大连接数
+ max-active: 200
+ # 连接池最大阻塞等待时间(使用负值表示没有限制)
+ max-wait: -1ms
+ # 连接池中的最大空闲连接
+ max-idle: 10
+ # 连接池中的最小空闲连接
+ min-idle: 1
+
+# 多租户配置
+tenant:
+ # 是否开启
+ enable: false
diff --git a/ruoyi-site/ruoyi-gateway/src/main/resources/application.yml b/ruoyi-site/ruoyi-gateway/src/main/resources/application.yml
index ae27210fc..9f9f022f2 100644
--- a/ruoyi-site/ruoyi-gateway/src/main/resources/application.yml
+++ b/ruoyi-site/ruoyi-gateway/src/main/resources/application.yml
@@ -12,22 +12,3 @@ spring:
profiles:
# 环境配置
active: @profiles.active@
-
-
---- # nacos 配置
-spring:
- cloud:
- nacos:
- # nacos 服务地址
- server-addr: http://localhost:8848
- discovery:
- # 注册组
- group: dev
- namespace: c5c00044-93e6-4e66-8060-3f39aa7ab82b
- config:
- # 配置组
- group: dev
- namespace: c5c00044-93e6-4e66-8060-3f39aa7ab82b
- config:
- import:
- - optional:nacos:application-common.yml
diff --git a/ruoyi-site/ruoyi-h5/Dockerfile b/ruoyi-site/ruoyi-h5/Dockerfile
index e87fe55a2..320d09464 100644
--- a/ruoyi-site/ruoyi-h5/Dockerfile
+++ b/ruoyi-site/ruoyi-h5/Dockerfile
@@ -5,22 +5,22 @@ FROM bellsoft/liberica-openjdk-debian:17.0.11-cds
LABEL maintainer="lizhw"
-RUN mkdir -p /ruoyi/resource/logs \
- /ruoyi/resource/temp \
+RUN mkdir -p /ruoyi/server/logs \
+ /ruoyi/server/temp \
/ruoyi/skywalking/agent
-WORKDIR /ruoyi/resource
+WORKDIR /ruoyi/server
ENV SERVER_PORT=19200 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
EXPOSE ${SERVER_PORT}
-ADD ./target/ruoyi-h5.jar ./app.jar
+ADD ./target/ruoyi-h5.jar ./
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
# 应用名称 如果想区分集群节点监控 改成不同的名称即可
#-Dskywalking.agent.service_name=ruoyi-h5 \
#-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
- -jar app.jar
+ -jar ruoyi-h5.jar
diff --git a/ruoyi-site/ruoyi-h5/pom.xml b/ruoyi-site/ruoyi-h5/pom.xml
index 101a8d7e9..6f4aa6f0c 100644
--- a/ruoyi-site/ruoyi-h5/pom.xml
+++ b/ruoyi-site/ruoyi-h5/pom.xml
@@ -61,10 +61,11 @@
ruoyi-common-encrypt
-
-
-
-
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
diff --git a/ruoyi-site/ruoyi-h5/src/main/resources/application-dev.yml b/ruoyi-site/ruoyi-h5/src/main/resources/application-dev.yml
index 0549e095c..3cbd01899 100644
--- a/ruoyi-site/ruoyi-h5/src/main/resources/application-dev.yml
+++ b/ruoyi-site/ruoyi-h5/src/main/resources/application-dev.yml
@@ -1,5 +1,13 @@
--- # spring 配置
spring:
+ cloud:
+ nacos:
+ # nacos 服务地址
+ server-addr: http://nacos-registry:8848
+ discovery:
+ # 注册组
+ group: DUBBO_GROUP
+ namespace: c5c00044-93e6-4e66-8060-3f39aa7ab82b
# 资源信息
messages:
# 国际化资源文件路径
@@ -76,7 +84,7 @@ spring:
# 连接池中的最大空闲连接
max-idle: 10
# 连接池中的最小空闲连接
- min-idle: 0
+ min-idle: 1
springdoc:
@@ -161,7 +169,6 @@ dubbo:
group: DUBBO_GROUP
parameters:
namespace: c5c00044-93e6-4e66-8060-3f39aa7ab82b
- # 消费者相关配置
consumer:
# 结果缓存(LRU算法)
# 会有数据不一致问题 建议在注解局部开启
diff --git a/ruoyi-site/ruoyi-h5/src/main/resources/application-local.yml b/ruoyi-site/ruoyi-h5/src/main/resources/application-local.yml
index 0549e095c..8acb671da 100644
--- a/ruoyi-site/ruoyi-h5/src/main/resources/application-local.yml
+++ b/ruoyi-site/ruoyi-h5/src/main/resources/application-local.yml
@@ -1,5 +1,13 @@
--- # spring 配置
spring:
+ cloud:
+ nacos:
+ # nacos 服务地址
+ server-addr: http://127.0.0.1:8848
+ discovery:
+ # 注册组
+ group: DUBBO_GROUP
+ namespace: c5c00044-93e6-4e66-8060-3f39aa7ab82b
# 资源信息
messages:
# 国际化资源文件路径
diff --git a/ruoyi-site/ruoyi-sso-server/Dockerfile b/ruoyi-site/ruoyi-sso-server/Dockerfile
index 8ef6a2f3d..30df21dbc 100644
--- a/ruoyi-site/ruoyi-sso-server/Dockerfile
+++ b/ruoyi-site/ruoyi-sso-server/Dockerfile
@@ -17,12 +17,12 @@ ENV CONTAINER_NAME ruoyi-sso-server
EXPOSE ${SERVER_PORT}
-ADD ./target/ruoyi-sso-server.jar ./app.jar
+ADD ./target/ruoyi-sso-server.jar ./
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -Dserver.port=${SERVER_PORT} \
# 应用名称 如果想区分集群节点监控 改成不同的名称即可
#-Dskywalking.agent.service_name=ruoyi-server \
#-javaagent:/ruoyi/skywalking/agent/skywalking-agent.jar \
-XX:+HeapDumpOnOutOfMemoryError -XX:+UseZGC ${JAVA_OPTS} \
- -jar app.jar
+ -jar ruoyi-sso-server.jar
diff --git a/ruoyi-site/ruoyi-sso-server/src/main/resources/application-dev.yml b/ruoyi-site/ruoyi-sso-server/src/main/resources/application-dev.yml
index 99a228887..a8111d3a2 100644
--- a/ruoyi-site/ruoyi-sso-server/src/main/resources/application-dev.yml
+++ b/ruoyi-site/ruoyi-sso-server/src/main/resources/application-dev.yml
@@ -105,7 +105,6 @@ security:
# dubbo
dubbo:
- config:
protocol:
name: tri
port: 20880
@@ -119,14 +118,6 @@ dubbo:
group: DUBBO_GROUP
parameters:
namespace: c5c00044-93e6-4e66-8060-3f39aa7ab82b
- # metadata-report:
- # address: redis://${spring.data.redis.host}:${spring.data.redis.port}
- # # 集群开关,目前单机
- # cluster: false
- # parameters:
- # database: 6
- # timeout: ${spring.data.redis.timeout}
- # 消费者相关配置
consumer:
# 结果缓存(LRU算法)
# 会有数据不一致问题 建议在注解局部开启
diff --git a/script/docker_app/docker-compose.yml b/script/docker_app/docker-compose.yml
index d8ecf8d33..3b11eaa82 100644
--- a/script/docker_app/docker-compose.yml
+++ b/script/docker_app/docker-compose.yml
@@ -4,7 +4,7 @@ services:
image: ruoyi-admin:latest
container_name: ruoyi-admin
ports:
- - 19100:19100
+ - "19100:19100"
environment:
- 'TZ="Asia/Shanghai"'
networks:
@@ -18,7 +18,7 @@ services:
image: ruoyi-sso-server:latest
container_name: ruoyi-sso-server
ports:
- - 19000:19000
+ - "19000:19000"
environment:
- 'TZ="Asia/Shanghai"'
networks:
@@ -32,7 +32,7 @@ services:
image: ruoyi-h5:latest
container_name: ruoyi-h5
ports:
- - 19200:19200
+ - "19200:19200"
environment:
- 'TZ="Asia/Shanghai"'
networks:
@@ -46,7 +46,7 @@ services:
image: ruoyi-gateway:latest
container_name: ruoyi-gateway
ports:
- - 18000:18000
+ - "18000:18000"
environment:
- 'TZ="Asia/Shanghai"'
networks:
@@ -60,7 +60,7 @@ services:
image: sso-server-vue3:latest
container_name: sso-server-vue3
ports:
- - 8701:80
+ - "8701:80"
environment:
- 'TZ="Asia/Shanghai"'
networks: