Skip to content

Commit 96f06c7

Browse files
fix: preserve CAS callback compatibility and clarify connection checks
1 parent aed8c4c commit 96f06c7

13 files changed

Lines changed: 124 additions & 1 deletion

File tree

‎frontend/src/i18n/en.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -940,6 +940,7 @@
940940
"invalid": "Invalid",
941941
"valid": "Valid",
942942
"cas_settings": "CAS Settings",
943+
"cas_connection_success": "CAS login endpoint is reachable. Sign in to verify the callback and account.",
943944
"callback_domain_name": "Callback Domain",
944945
"callback_domain_name_error": "Callback URL must match the current access domain",
945946
"field_mapping": "User Attribute Mapping",

‎frontend/src/i18n/ko-KR.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -940,6 +940,7 @@
940940
"invalid": "유효하지 않음",
941941
"valid": "유효함",
942942
"cas_settings": "CAS 설정",
943+
"cas_connection_success": "CAS 로그인 엔드포인트에 연결할 수 있습니다. 실제 로그인으로 콜백과 계정을 확인하세요.",
943944
"callback_domain_name": "콜백 도메인",
944945
"callback_domain_name_error": "콜백 URL은 현재 접속 도메인과 일치해야 합니다",
945946
"field_mapping": "사용자 속성 매핑",

‎frontend/src/i18n/th-TH.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -940,6 +940,7 @@
940940
"invalid": "ไม่ถูกต้อง",
941941
"valid": "ถูกต้อง",
942942
"cas_settings": "การตั้งค่า CAS",
943+
"cas_connection_success": "เข้าถึงปลายทางเข้าสู่ระบบ CAS ได้ โปรดเข้าสู่ระบบจริงเพื่อตรวจสอบ callback และบัญชี",
943944
"callback_domain_name": "ที่อยู่เรียกกลับ",
944945
"callback_domain_name_error": "ที่อยู่เรียกกลับต้องเป็นโดเมนที่ใช้เข้าถึงอยู่ในปัจจุบัน",
945946
"field_mapping": "การจับคู่คุณสมบัติผู้ใช้",

‎frontend/src/i18n/zh-CN.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -940,6 +940,7 @@
940940
"invalid": "无效",
941941
"valid": "有效",
942942
"cas_settings": "CAS 设置",
943+
"cas_connection_success": "CAS 登录端点可达,请通过实际登录验证回调及账号。",
943944
"callback_domain_name": "回调地址",
944945
"callback_domain_name_error": "回调地址必须是当前访问域名",
945946
"field_mapping": "用户属性映射",

‎frontend/src/i18n/zh-TW.json‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -940,6 +940,7 @@
940940
"invalid": "無效",
941941
"valid": "有效",
942942
"cas_settings": "CAS 設定",
943+
"cas_connection_success": "CAS 登入端點可達,請透過實際登入驗證回呼及帳號。",
943944
"callback_domain_name": "回調位址",
944945
"callback_domain_name_error": "回調位址必須是目前的存取網域名稱",
945946
"field_mapping": "使用者屬性對應",

‎frontend/src/views/system/authentication/CasEditor.vue‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const validateCbUrl = (rule, value, callback) => {
3838
const addr = getSQLBotAddr()
3939
if (value === addr || `${value}/` === addr) {
4040
callback()
41+
return
4142
}
4243
callback(new Error(t('authentication.callback_domain_name_error')))
4344
}
@@ -187,7 +188,7 @@ const validate = () => {
187188
.patch(url, data)
188189
.then((res) => {
189190
if (res) {
190-
ElMessage.success(t('ds.connection_success'))
191+
ElMessage.success(t('authentication.cas_connection_success'))
191192
} else {
192193
ElMessage.error(t('ds.connection_failed'))
193194
}

‎tests/browser/README.md‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,3 +130,16 @@ npm --prefix tests/browser test -- --config=welcome-language.config.mjs
130130
不访问业务数据库或 LLM,不替代完整 SDK 握手、真实鉴权和持久化验收。
131131
后端 `tests/test_assistant_welcome_defaults.py` 提取真实 Schema 和保存函数,验证空字符串覆盖、
132132
省略字段保留、会话提交和缓存失效;它同样隔离鉴权与数据库。
133+
134+
## CAS 地址与编辑组件回归
135+
136+
```sh
137+
npm --prefix tests/browser test -- --config=cas.config.mjs
138+
```
139+
140+
复用已安装的 frontend 依赖,独立 Vite 夹具仅监听 `127.0.0.1:4219`,加载真实
141+
`CasEditor.vue`。HTTP 请求边界替换为内存记录,不访问或修改认证源配置。覆盖根回调
142+
有无尾斜杠、历史 IdpUri 提交、错误回调拒绝、校验回调仅执行一次及连接检查提示。
143+
组件库只采纳首次校验结果,因此用原始校验函数的调用计数补充 DOM 提交断言。
144+
这不验证真实持久化、客户 CAS 服务或最终用户登录;后端地址、编码和票据回归在
145+
独立 xpack 仓库的 `tests/test_cas_urls.py`。

‎tests/browser/cas.config.mjs‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { defineConfig } from '@playwright/test'
2+
import base from './playwright.config.mjs'
3+
export default defineConfig({
4+
...base,
5+
webServer: { command: 'node fixtures/cas/server.mjs', url: 'http://127.0.0.1:4219', reuseExistingServer: false, timeout: 30000 },
6+
projects: [{ name: 'cas', testMatch: 'cas.spec.mjs', use: { baseURL: 'http://127.0.0.1:4219' } }],
7+
outputDir: 'output/cas-results'
8+
})
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// Replace only the request boundary; no actual authentication configuration is changed.
2+
export const getSQLBotAddr = () => location.origin + location.pathname
3+
window.savedConfigs = []
4+
export const request = {
5+
get: async () => null,
6+
patch: async () => true,
7+
post: async (url, data) => { window.savedConfigs.push(data); return 1 },
8+
put: async (url, data) => { window.savedConfigs.push(data); return 1 },
9+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div id="app"></div><script type="module" src="/main.mjs"></script>

0 commit comments

Comments
 (0)