From 74dd0a6af24dea3539bed2f4696a996dbcaf3c33 Mon Sep 17 00:00:00 2001 From: chenxing Date: Thu, 13 Aug 2026 12:41:41 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=90=8E=E7=AB=AF=E5=8A=A0=20context-pa?= =?UTF-8?q?th=3D/bschclass=20=E5=AF=B9=E9=BD=90=20UserBase=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20CAS=20=E7=99=BB=E5=BD=95=E5=9B=9E=E8=B7=B3?= =?UTF-8?q?=E4=B8=A2=20/bschclass=20=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Caddy 后端代理同步由 handle_path(剥离前缀)改为 handle(保留前缀), 使 CAS 客户端基于 requestURI 拼出的 service URL 正确包含 /bschclass; ci.yml 探活路径同步改为 /bschclass/。 --- .gitea/workflows/ci.yml | 8 +++++--- src/main/resources/application-prod.yml | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 7db2c64..490c015 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -103,7 +103,8 @@ jobs: # bootstrap.yml 默认 nacos.config.enabled=false(本地不连);CI 必须注入 NACOS_CONFIG_ENABLED=true 才会拉配置 # SPRING_PROFILES_ACTIVE=prod 激活生产 profile # namespace/凭据用顶层 SPRING_CLOUD_NACOS_* env(bootstrap 的 ${...} 占位符才能解析到) - # ⚠️ 后端无 context-path,caddy 已剥离 /bschclass 前缀,故容器内监听 8087、不加 context-path + # ⚠️ 后端有 context-path=/bschclass(application-prod.yml),caddy 用 handle(不剥离 /bschclass 前缀), + # 故 CAS 客户端拼出的 service URL 正确包含 /bschclass,登录回跳地址不会丢前缀。 docker run -d --name bschclass-service --restart unless-stopped --network infra-infra-net -p 8087:8087 \ --add-host sso.yunhaixingtong.com:192.168.10.160 \ -e SPRING_PROFILES_ACTIVE=prod \ @@ -113,11 +114,12 @@ jobs: -e SPRING_CLOUD_NACOS_USERNAME=yh-reader \ -e SPRING_CLOUD_NACOS_PASSWORD=123456 \ "$IMG" - # 健康检查:Spring 起来后根路径返回 404(无映射控制器),000 表示未起来(无 context-path,故用 8087 根) + # 健康检查:context-path=/bschclass 后,context root 为 /bschclass/(无欢迎页返回 404); + # 000 表示应用未起来(端口不通),非 000 即视为已启动。探 /bschclass/ 而非 / 更准确。 OK=0 for i in $(seq 1 30); do sleep 5 - CODE=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8087/ 2>/dev/null || true) + CODE=$(curl -s -o /dev/null -w '%{http_code}' http://localhost:8087/bschclass/ 2>/dev/null || true) if [ "$CODE" != "000" ]; then OK=1; break; fi done if [ "$OK" = "0" ]; then diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 8186d19..8bb96c4 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,6 +1,10 @@ server: address: 0.0.0.0 port: 8087 + servlet: + # 对齐 UserBase:后端加 context-path,配合 Caddy 用 handle(不剥离 /bschclass 前缀), + # 使 CAS 客户端拼出的 service URL 正确包含 /bschclass(否则登录回跳会丢前缀)。 + context-path: /bschclass yh: sso: