Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
1534 commits
Select commit Hold shift + click to select a range
adeade1
fix: 调整执行阶段
mayinrain Mar 11, 2025
06f0d29
Merge pull request #769 from mayinrain/dev-1.12.0-webank
mayinrain Mar 11, 2025
a701cfa
code optimization (#770)
kinsanities Mar 11, 2025
3a25381
update python version
kinsanities Mar 11, 2025
9d7dccf
update ldap expire time to 20m
kinsanities Mar 12, 2025
c6a252d
update conf
kinsanities Mar 12, 2025
ba3f275
code optimization
kinsanities Mar 13, 2025
df91ac5
update progress
kinsanities Mar 13, 2025
e8b62ce
update code
kinsanities Mar 13, 2025
323920c
update progress
kinsanities Mar 13, 2025
2c33baa
code optimization
kinsanities Mar 13, 2025
e957b7a
code optimization
kinsanities Mar 14, 2025
0bc7f7b
Code optimization (#771)
v-kkhuang Mar 14, 2025
0032dec
print dynamic param
kinsanities Mar 14, 2025
e667ddd
Merge branch 'dev-1.12.0-webank' of https://github.com/WeDataSphere/l…
kinsanities Mar 14, 2025
ebe21ec
code review fix
kinsanities Mar 14, 2025
d55988f
code optimization
kinsanities Mar 17, 2025
c39bc26
code optimization
kinsanities Mar 17, 2025
7fa2a9f
code optimization
kinsanities Mar 18, 2025
012ee23
Security work order repair (#772)
v-kkhuang Mar 18, 2025
a087ade
code optimization
kinsanities Mar 19, 2025
315e76d
code optimization
kinsanities Mar 19, 2025
25c8e19
update max executors
kinsanities Mar 20, 2025
727aab3
Add Spark 3 default (#774)
v-kkhuang Mar 20, 2025
1819803
bug fix (#775)
v-kkhuang Mar 20, 2025
9464038
revent spring-webflux (#776)
v-kkhuang Mar 20, 2025
6d42456
Security work order repair (#777)
v-kkhuang Mar 20, 2025
e1503cb
add spark conf dir (#778)
v-kkhuang Mar 21, 2025
cc274cc
Dev 1.12.0 code review fix (#779)
v-kkhuang Mar 21, 2025
519819e
velocity exclusion (#780)
v-kkhuang Mar 25, 2025
ebba22a
update thymeleaf version (#781)
v-kkhuang Mar 26, 2025
cd3d634
update version to 1.13.0
kinsanities Apr 2, 2025
0e89a8b
Code optimization (#786)
v-kkhuang Apr 14, 2025
fb0b98f
优化 Hive 和 Spark 配置重置逻辑 (#785)
v-kkhuang Apr 14, 2025
f754dc5
HDFS file system request to add retry mechanism (#783)
v-kkhuang Apr 14, 2025
5acad6b
Spark supports forced conversion: user configuration, department conf…
v-kkhuang Apr 14, 2025
bedcfc6
[1.13.0]Python code adds exception command check (#784)
v-kkhuang Apr 15, 2025
a4f972e
[1.13.0]add datasource rpc GetInfoPublishedByUserIpPortAction (#787)
v-kkhuang Apr 15, 2025
9daf20c
[1.13.0]Spark supports forced conversion: user configuration, departm…
v-kkhuang Apr 15, 2025
f96b60a
Dev 1.13.0 webank temp (#789)
kinsanities Apr 15, 2025
d87ed6e
code optimization
kinsanities Apr 16, 2025
c81ff1e
code format
kinsanities Apr 16, 2025
86ce276
support conn param execute task (#792)
kinsanities Apr 16, 2025
eb993f5
[1.13.0]Data source supports automated publishing (#791)
v-kkhuang Apr 16, 2025
0260d55
fix compile error
kinsanities Apr 16, 2025
24226da
Merge branch 'dev-1.13.0-webank' of https://github.com/WeDataSphere/l…
kinsanities Apr 16, 2025
f9b8f7c
code optimization
kinsanities Apr 16, 2025
d102160
some code retry optimization
kinsanities Apr 17, 2025
2c0a0a3
upd: 样式优化
mayinrain Apr 17, 2025
8e6b43e
upd: 样式优化 (#794)
mayinrain Apr 17, 2025
c1fbe63
Dev 1.13.0 bug fix (#793)
v-kkhuang Apr 17, 2025
a2c0319
code optimization
kinsanities Apr 18, 2025
8e55a58
[1.13.0]code opmitization (#795)
v-kkhuang Apr 18, 2025
4cbcd6b
update jdbc
kinsanities Apr 18, 2025
538823d
upd: 依赖升级
mayinrain Apr 18, 2025
e6afbce
upd: 高度计算逻辑修改
mayinrain Apr 18, 2025
488df91
fix: handle conflict
mayinrain Apr 18, 2025
124d5c3
Merge pull request #796 from mayinrain/dev-1.13.0-webank
mayinrain Apr 18, 2025
2498bba
code optimization
kinsanities Apr 18, 2025
0474967
upd: 放大样式修改
mayinrain Apr 18, 2025
8d54b77
Merge branch 'dev-1.13.0-webank' of github.com:WeDataSphere/linkis in…
mayinrain Apr 18, 2025
afca287
Merge pull request #797 from mayinrain/dev-1.13.0-webank
mayinrain Apr 18, 2025
c99c172
compile error fix
kinsanities Apr 18, 2025
42eb462
upd: height adjustment
mayinrain Apr 18, 2025
a15f488
Merge branch 'dev-1.13.0-webank' of github.com:WeDataSphere/linkis in…
mayinrain Apr 18, 2025
a36a0f2
Merge pull request #798 from mayinrain/dev-1.13.0-webank
mayinrain Apr 18, 2025
865e166
code optimization
kinsanities Apr 21, 2025
f561b5e
Merge branch 'dev-1.13.0-webank' of https://github.com/WeDataSphere/l…
kinsanities Apr 21, 2025
448c44a
Dev 1.13.0 bug fix (#799)
v-kkhuang Apr 22, 2025
b73ce96
template conf optimization
kinsanities Apr 22, 2025
00513f4
classcastexception fix
kinsanities Apr 22, 2025
4a6ab9f
code optimization & format
kinsanities Apr 22, 2025
22b302b
code optimization
kinsanities Apr 23, 2025
772b45d
params optimization
kinsanities Apr 23, 2025
e29e89a
code optimization
kinsanities Apr 23, 2025
ca3a16e
fix: 逻辑兜底
mayinrain Apr 24, 2025
c5127e3
Merge branch 'dev-1.13.0-webank' of github.com:WeDataSphere/linkis in…
mayinrain Apr 24, 2025
e4234b5
Merge pull request #801 from mayinrain/dev-1.13.0-webank
mayinrain Apr 24, 2025
45b67f1
task error receiver sync
kinsanities Apr 24, 2025
2feb8ee
Merge branch 'dev-1.13.0-webank' of https://github.com/WeDataSphere/l…
kinsanities Apr 24, 2025
519b4e0
code optimization
kinsanities Apr 28, 2025
58d23a4
Dev 1.13.0 bug fix (#800)
v-kkhuang Apr 28, 2025
20156ef
add log
kinsanities Apr 28, 2025
74c2d1d
code update
kinsanities Apr 28, 2025
0497d34
add switch
kinsanities Apr 28, 2025
71e6cdd
update code to status rpc
kinsanities Apr 28, 2025
75a677a
add log
kinsanities Apr 29, 2025
63d7c8a
bug fix
kinsanities Apr 29, 2025
83f6f0c
code review fix
kinsanities May 7, 2025
304974b
code review fix (#802)
v-kkhuang May 7, 2025
5eb1a3e
Dev 1.13.0 code review fix (#803)
v-kkhuang May 9, 2025
80cd394
code optimization
kinsanities May 9, 2025
38144bf
add conf retry switch
kinsanities May 12, 2025
8fc7968
code uptate
kinsanities May 12, 2025
429e108
update code add retry code
kinsanities May 14, 2025
82f1fbe
Dev 1.13.0 code review fix (#804)
v-kkhuang May 14, 2025
f469b06
Dev 1.13.0 code review fix (#805)
v-kkhuang May 15, 2025
5b0a89e
Update version to 1.14.0
casionone May 15, 2025
a78fc70
close python safe check (#808)
v-kkhuang Jun 5, 2025
8859ad2
fix resource reset error (#807)
v-kkhuang Jun 5, 2025
901ea56
【1.14.0】Add Doctor functionality and support for switching between AI…
v-kkhuang Jun 5, 2025
282323c
Add BML client connection information retrieval function (#809)
v-kkhuang Jun 5, 2025
02508e4
support change engine type for aisql (#810)
casionone Jun 5, 2025
9682d87
fix todo & adjust interceptor (#811)
casionone Jun 5, 2025
12ffb45
Dev 1.14.0 ai sql support (#812)
v-kkhuang Jun 10, 2025
33284de
Fix resource statistics logic to correctly handle empty resources (#813)
v-kkhuang Jun 12, 2025
92cb02d
Dev 1.14.0 bug fix (#814)
v-kkhuang Jun 16, 2025
31b198d
Dev 1.14.0 bug fix (#815)
v-kkhuang Jun 17, 2025
2ec8fa2
code review fix (#816)
casionone Jun 17, 2025
540af07
Dev 1.14.0 bug fix (#817)
v-kkhuang Jun 17, 2025
ef3bf78
Dev 1.14.0 bug fix (#818)
v-kkhuang Jun 18, 2025
c9be3d4
Dev 1.14.0 bug fix (#819)
v-kkhuang Jun 19, 2025
19c5799
Dev 1.14.0 bug fix (#820)
v-kkhuang Jun 19, 2025
0ff28ab
Update version to 1.15.0-wds
casionone Jun 26, 2025
c0317e1
在JobHistory的搜索和查询接口中添加了runType参数,允许根据运行类型筛选作业历史记录 (#823)
v-kkhuang Jul 16, 2025
a2a50da
【1.15.0】Dev 1.15.0 sys user login (#822)
v-kkhuang Jul 18, 2025
ae34839
【1.15.0】Linkis token rsa (#821)
v-kkhuang Jul 18, 2025
f408749
spark3 dynamic params (#825)
v-kkhuang Jul 18, 2025
6adab49
linkis keytab (#824)
v-kkhuang Jul 18, 2025
17de8d7
upd: 令牌管理新增token查看;全局历史优化
mayinrain Jul 23, 2025
38e7760
Merge pull request #826 from mayinrain/dev-1.15.0-webank
mayinrain Jul 23, 2025
361a334
fix: 初始化问题修复
mayinrain Jul 23, 2025
3073448
Merge pull request #827 from mayinrain/dev-1.15.0-webank
mayinrain Jul 23, 2025
aa04987
upd: 格式化
mayinrain Jul 23, 2025
f26718a
Merge pull request #828 from mayinrain/dev-1.15.0-webank
mayinrain Jul 23, 2025
f3755ba
update conf & code format (#829)
casionone Jul 23, 2025
111bd88
Code optimization (#830)
v-kkhuang Jul 23, 2025
165d38f
i18n optimization
mayinrain Jul 25, 2025
cedd09e
Merge pull request #831 from mayinrain/dev-1.15.0-webank
mayinrain Jul 25, 2025
fb55a58
fix: 新增不禁用名字输入
mayinrain Jul 29, 2025
c60b8a8
Merge pull request #833 from mayinrain/dev-1.15.0-webank
mayinrain Jul 29, 2025
daf0f3c
Dev 1.15.0 code review fix (#832)
v-kkhuang Jul 30, 2025
7a0ba00
fix: has specific task id, ignore runtype
mayinrain Jul 31, 2025
ae90c04
Merge pull request #835 from mayinrain/dev-1.15.0-webank
mayinrain Jul 31, 2025
f7e96dc
Dev 1.15.0 code review fix (#834)
v-kkhuang Jul 31, 2025
a63330d
Dev 1.15.0 webank spark3 (#836)
casionone Jul 31, 2025
c82c5e2
add log for reuse engine
kinsanities Aug 4, 2025
5e8d559
add log
kinsanities Aug 5, 2025
f1a6a4e
update log
kinsanities Aug 5, 2025
ba729e7
update shuff
kinsanities Aug 5, 2025
9b08845
Dev 1.15.0 code review fix (#837)
v-kkhuang Aug 8, 2025
6b6f500
The openfile interface supports masking field information (#839)
v-kkhuang Aug 11, 2025
8da600e
Code optimization (#843)
v-kkhuang Aug 11, 2025
f5a82b9
update version to 1.8.0
casionone Aug 13, 2025
dac7e73
Upgrade `LINKIS_VERSION` to `1.8.0` to Fix Integration Test Failure i…
kazutoiris Aug 20, 2025
a29882a
entrance and linkismanager performance optimization (#853)
casionone Aug 21, 2025
7b6522c
add cache for ec reuse (#854)
casionone Aug 21, 2025
a2689d0
Dev 1.15.0 code review fix (#852)
v-kkhuang Aug 21, 2025
b03a4ce
update lock timeout
kinsanities Aug 21, 2025
27bcbd9
Dev 1.15.0 code review fix (#855)
v-kkhuang Aug 27, 2025
4ee7ea4
Fix KIND image loading, script typo, and cache directory creation (#5…
kazutoiris Aug 29, 2025
fc11506
Dev 1.15.0 code review fix (#856)
v-kkhuang Aug 29, 2025
8baf63a
Dev 1.15.0 code review fix (#857)
v-kkhuang Sep 1, 2025
75f23a1
chore: prepare to release 1.8.0 (#5254)
kazutoiris Sep 2, 2025
6da2f69
Dev 1.15.0 code review fix (#858)
v-kkhuang Sep 2, 2025
298e50f
Update version to 1.16.0
casionone Sep 8, 2025
d997570
add ai prompt base rule
kinsanities Sep 10, 2025
38dd1b2
[1.16.0]sensetive sql check (#860)
v-kkhuang Sep 12, 2025
3a30ffb
[1.16.0]feat: 历史任务信息获取接口添加brief参数优化 (#859)
v-kkhuang Sep 12, 2025
3a3ca19
feat: 从get接口读查openEngineLog用的参数 (#861)
daflyinbed Sep 12, 2025
d13d382
[1.16.0] get support engine log (#862)
v-kkhuang Sep 12, 2025
71c9d8e
refactor(web): remove request /ecrHistoryList (#863)
daflyinbed Sep 15, 2025
71b56c9
fix(web): 显示引擎日志的时候才显示UDF日志 (#864)
daflyinbed Sep 15, 2025
feadd39
Code optimization
v-kkhuang Sep 16, 2025
97b0c43
Merge pull request #865 from WeDataSphere/dev-1.16.0-code-review-fix
wushengyeyouya Sep 16, 2025
9a3d2f8
Code optimization
v-kkhuang Sep 17, 2025
cf96291
Code optimization
v-kkhuang Sep 17, 2025
39f99e7
Code optimization
v-kkhuang Sep 17, 2025
1d2eb9a
Code optimization
v-kkhuang Sep 17, 2025
370955e
Code optimization
v-kkhuang Sep 17, 2025
2bc4acc
Code optimization (#866)
v-kkhuang Sep 17, 2025
4148e73
Merge branch 'dev-1.16.0-webank' into dev-1.16.0-code-review-fix
v-kkhuang Sep 17, 2025
6e483c9
Code optimization
v-kkhuang Sep 17, 2025
7da37d6
Code optimization
v-kkhuang Sep 18, 2025
6db7f22
Dev 1.16.0 code review fix (#867)
v-kkhuang Sep 18, 2025
3fbc439
fix(web): 兼容老接口 (#868)
daflyinbed Sep 19, 2025
9a6c91f
Merge branch 'dev-1.16.0-webank' into dev-1.16.0-code-review-fix
v-kkhuang Sep 22, 2025
e406663
Code optimization
v-kkhuang Sep 22, 2025
8462339
Code optimization
v-kkhuang Sep 22, 2025
3eae827
Dev 1.16.0 code review fix (#869)
v-kkhuang Sep 22, 2025
7697578
support azure (#5214)
v-kkhuang Sep 22, 2025
872a492
chore(web): update axios (#870)
daflyinbed Sep 22, 2025
30a6af7
Merge branch 'dev-1.16.0-webank' into dev-1.16.0-code-review-fix
v-kkhuang Sep 23, 2025
db841d9
Code optimization
v-kkhuang Sep 23, 2025
37278bc
Merge pull request #871 from WeDataSphere/dev-1.16.0-code-review-fix
wushengyeyouya Sep 24, 2025
ffff2a4
Safety Work Order Repair
v-kkhuang Sep 25, 2025
bc68fac
Merge pull request #872 from WeDataSphere/dev-1.16.0-code-review-fix
wushengyeyouya Sep 25, 2025
7d58d35
Add OAuth2 authentication support (#5253)
kazutoiris Sep 28, 2025
59c29d7
fix azure compile error (#5264)
aiceflower Sep 30, 2025
feb03e5
remove default token (#5265)
aiceflower Oct 7, 2025
049ad8e
fix token security (#5266)
aiceflower Oct 8, 2025
cf6bc34
Merge upstream changes and apply additional improvements (#5279)
kazutoiris Oct 30, 2025
7a63e0f
docs(readme): remove underlines between badges (#5283)
kazutoiris Oct 31, 2025
2a3d1b1
feat(ci): add support for spark and hive engine integration tests (#5…
kazutoiris Nov 21, 2025
e0409b8
Merge Apache improvements to WDS linkis-commons (#913)
casionone Dec 26, 2025
b77404d
Merge computation governance to wds (#914)
casionone Dec 26, 2025
a441633
merge engineconn plugins (#915)
casionone Dec 26, 2025
2bc389d
merge pes (#917)
casionone Dec 29, 2025
610b7b5
merge linkis-mg (#918)
casionone Dec 29, 2025
a957dca
code merge
aiceflower Dec 30, 2025
8e781e2
fix compile error
kinghao007 Dec 31, 2025
9ec5d81
merge presto ec. scala to java
aiceflower Dec 31, 2025
f1b17dd
fix sparkMeasure support spark2 & spark3
kinghao007 Dec 31, 2025
1e76a0d
sparkMeasure support spark3
kinghao007 Dec 31, 2025
85e15c5
fix code compile error
kinghao007 Dec 31, 2025
46a9ec3
merge seatunnel
aiceflower Dec 31, 2025
e01fe24
Merge branch 'wds-master' of https://github.com/WeDataSphere/linkis i…
aiceflower Dec 31, 2025
a8ef133
code compile optimization
kinghao007 Dec 31, 2025
68d8c10
fix conflict
aiceflower Jan 4, 2026
25d8994
fix compile (#921)
casionone Jan 13, 2026
153cd49
feat(ci): add support for parallel build (#5330)
kazutoiris Mar 7, 2026
8d1ade2
#AI COMMIT# 增强 quick-build.sh 脚本版本自定义能力
kinghao007 Mar 10, 2026
b454d46
#AI COMMIT# fix: Update flatten-maven-plugin mode to oss
kinghao007 Mar 16, 2026
8769ef9
#AI commit# feat: Align default versions with dev-1.18.0-webank branch
kinghao007 Mar 20, 2026
7f01a24
#AI commit# fix: Add hbase-shims-1.2.1 module for default HBase 1.2.1…
kinghao007 Mar 20, 2026
ebacf49
update linkis gateway dependency
kinghao007 Mar 20, 2026
99c0f63
#AI COMMIT# update compile
kinghao007 Mar 23, 2026
5701485
#AI COMMIT# refactor: 优化 quick-build.sh 去除重复编译配置
aiceflower Mar 25, 2026
8851737
merge conflict
aiceflower Mar 25, 2026
115884b
#AI COMMIT# refactor: 优化代码结构和修复问题
aiceflower Mar 25, 2026
652e053
#AI COMMIT# refactor: 移除 known-dependencies.txt 中的注释
aiceflower Mar 25, 2026
b94c86c
#AI COMMIT# refactor: 更新 pom.xml 和 quick-build.sh
aiceflower Mar 25, 2026
395d06c
#AI COMMIT# fix: 更新 known-dependencies.txt 添加缺失的依赖
aiceflower Mar 25, 2026
de07000
#AI COMMIT# fix: 添加缺失的依赖到 known-dependencies.txt
aiceflower Mar 25, 2026
d8dce3f
Merge pull request #5345 from WeDataSphere/origin/dev-1.9.0
aiceflower Mar 26, 2026
744290a
Fix and update metrics information exception bug (#5296)
v-kkhuang Mar 26, 2026
2759fdc
The result set supports field truncation (#5297)
v-kkhuang Mar 26, 2026
e540d6e
Provide an interface for accessing available data sources (#5295)
v-kkhuang Mar 26, 2026
86f88c1
Merge branch 'master' into dev-1.9.0
aiceflower Mar 26, 2026
9847911
Fix mockito version property reference in pom.xml
aiceflower Mar 26, 2026
16b5183
#AI COMMIT# Refactor: simplify logger.error calls in engine services
aiceflower Mar 26, 2026
833afdc
#AI commit# feat: 优化bmlClient连接池参数 (#5359)
v-kkhuang Mar 26, 2026
3481d18
[feat][Linkis] integrate BES application server for domestic localiza…
aiceflower Mar 26, 2026
b245569
#AI commit# feat: AISQL支持starrocks切换 (#5363)
aiceflower Mar 26, 2026
6c553bd
[feat][Linkis] integrate BES application server for domestic localiza…
aiceflower Mar 26, 2026
8e196ad
#AI commit# feat: 优化bmlClient连接池参数 (#5366)
aiceflower Mar 26, 2026
3c0d6bf
#AI commit# 开发阶段:优化jdbc堆栈日志不全,monitor 清理定时任务时间优化,manager线程池优化 (#5368)
aiceflower Mar 26, 2026
177fc01
[feat][PES][datasource] add support for getting published datasource …
aiceflower Mar 26, 2026
2937222
#AI commit# 优化:解决引擎创建和复用时指标更新的空指针异常 (#5372)
aiceflower Mar 26, 2026
c6e38ac
#AI commit# 优化: AI规约文档提交,Linkis日志打印优化 (#5374)
aiceflower Mar 26, 2026
17af4ba
[feature][PES][datasource] add support for getting published datasour…
aiceflower Mar 26, 2026
7b130d9
#AI commit# perf: 优化引擎创建和复用服务性能 (#5378)
aiceflower Mar 26, 2026
cf2cbf3
#AI commit# feat: hadoop用户禁止登录管理台 (#5380)
aiceflower Mar 26, 2026
2354bd1
[feature][COM][commons] add log level filtering capability (#5382)
aiceflower Mar 26, 2026
0ec73b1
#AI commit# feat: 添加spark超时任务诊断功能和优化配置 (#5384)
aiceflower Mar 26, 2026
6085ce7
#AI commit# feat: 实现starrocks任务重试机制 (#5386)
aiceflower Mar 26, 2026
03e86df
#AI commit# feat: 添加批量队列资源获取功能 (#5388)
aiceflower Mar 26, 2026
f7a1822
#AI COMMIT# refactor: 代码格式化调整
aiceflower Mar 26, 2026
a9ef58d
#AI COMMIT# refactor: 移除 bes 相关依赖包
aiceflower Mar 26, 2026
f93a847
#AI COMMIT# ci: 更新 build-backend.yml 适配实际 Maven profile 配置
aiceflower Mar 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
#AI commit# feat: hadoop用户禁止登录管理台 (#5380)
Co-authored-by: v-kkhuang <420895376@qq.com>
  • Loading branch information
aiceflower and v-kkhuang authored Mar 26, 2026
commit cf2cbf3440df8f86d8b3d13cfbd409fd7a4cc31f
196 changes: 196 additions & 0 deletions docs/1.18.0/design/系统用户禁止登录改造_设计.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
# 阶段2:技术设计方案

## 1. 设计概述

### 1.1 设计目标
在现有登录拦截逻辑基础上进行增强,将登录来源判断方式从 request body 的 `source` 字段改为 HTTP Header 的 `webLogin` 字段。

### 1.2 设计原则
- **最小改动**: 复用现有拦截逻辑,仅修改来源判断方式
- **向后兼容**: 默认功能关闭,不影响现有系统
- **可配置性**: 支持配置开关和系统用户前缀列表

## 2. 架构设计

### 2.1 组件关系图

```
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Web Frontend │────>│ Gateway Server │────>│ Backend API │
│ │ │ │ │ │
│ Header: │ │ UserRestful │ │ │
│ webLogin=true │ │ ↓ │ │ │
└─────────────────┘ │ tryLogin() │ └─────────────────┘
│ ↓ │
│ isWebLogin() │
│ ↓ │
│ checkSystemUser │
└─────────────────┘
```

### 2.2 处理流程

```
┌─────────────────────────────────────────────────────────────────┐
│ 登录请求处理流程 │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────┐ ┌───────────────┐ ┌────────────────────┐ │
│ │ 接收请求 │───>│ 获取用户名密码 │───>│ 检查功能开关是否开启 │ │
│ └──────────┘ └───────────────┘ └─────────┬──────────┘ │
│ │ │
│ ┌─────────────┴─────────────┐ │
│ │ 开关状态? │ │
│ └─────────────┬─────────────┘ │
│ 关闭 │ │ 开启 │
│ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────────┐ │
│ │ 继续正常登录 │ │ 从Header获取 │ │
│ └─────────────┘ │ webLogin标识 │ │
│ └────────┬────────┘ │
│ │ │
│ ┌─────────────┴───────────┐ │
│ │ webLogin == "true"? │ │
│ └─────────────┬───────────┘ │
│ false │ │ true │
│ ▼ ▼ │
│ ┌─────────────┐ ┌───────────────┐ │
│ │ 继续正常登录 │ │ 检查用户名前缀 │ │
│ └─────────────┘ └───────┬───────┘ │
│ │ │
│ ┌───────────────┴─────────┐ │
│ │ 匹配系统用户前缀? │ │
│ └───────────────┬─────────┘ │
│ 否 │ │ 是 │
│ ▼ ▼ │
│ ┌─────────────┐ ┌─────────────┐ │
│ │ 继续正常登录 │ │ 返回错误信息 │ │
│ └─────────────┘ │ 拒绝登录 │ │
│ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```

## 3. 详细设计

### 3.1 配置项修改

**文件**: `GatewayConfiguration.scala`

| 配置项 | 当前值 | 修改后 |
|--------|--------|--------|
| PROHIBIT_LOGIN_PREFIX | `hduser,shduser` | `hadoop,hduser,shduser` |

**新增配置项**: 无需新增,复用现有配置

### 3.2 代码修改

**文件**: `UserRestful.scala`

#### 3.2.1 新增方法: isWebLogin

```scala
private val WEB_LOGIN_HEADER = "webLogin"

private def isWebLogin(gatewayContext: GatewayContext): Boolean = {
val headers = gatewayContext.getRequest.getHeaders
val webLoginValues = headers.get(WEB_LOGIN_HEADER)
if (webLoginValues != null && webLoginValues.nonEmpty) {
"true".equalsIgnoreCase(webLoginValues.head)
} else {
false // 默认为false
}
}
```

#### 3.2.2 修改tryLogin方法

**现有代码**:
```scala
if (
GatewayConfiguration.PROHIBIT_LOGIN_SWITCH.getValue &&
(!getRequestSource(gatewayContext).equals("client"))
) {
PROHIBIT_LOGIN_PREFIX.split(",").foreach { prefix =>
if (userName.toLowerCase().startsWith(prefix)) {
return Message.error("System users are prohibited from logging in(系统用户禁止登录)!")
}
}
}
```

**修改后**:
```scala
if (
GatewayConfiguration.PROHIBIT_LOGIN_SWITCH.getValue &&
isWebLogin(gatewayContext)
) {
PROHIBIT_LOGIN_PREFIX.split(",").foreach { prefix =>
if (userName.toLowerCase().startsWith(prefix)) {
return Message.error("System users are prohibited from logging in(系统用户禁止登录)!")
}
}
}
```

## 4. 接口设计

### 4.1 登录接口变更

**接口**: POST /api/rest_j/v1/user/login

**新增Header**:
| Header | 类型 | 必填 | 默认值 | 说明 |
|--------|------|------|--------|------|
| webLogin | String | 否 | false | Web页面登录标识 |

**请求示例**:
```http
POST /api/rest_j/v1/user/login HTTP/1.1
Host: gateway.linkis.com
Content-Type: application/json
webLogin: true

{
"userName": "testuser",
"password": "xxx"
}
```

**错误响应** (系统用户被拦截):
```json
{
"method": "/api/rest_j/v1/user/login",
"status": 1,
"message": "System users are prohibited from logging in(系统用户禁止登录)!"
}
```

## 5. 前端配合要求

前端在Web页面调用登录接口时,需要在HTTP请求header中添加:
```javascript
headers: {
'webLogin': 'true'
}
```

## 6. 配置示例

### 6.1 linkis.properties

```properties
# 开启系统用户禁止登录功能
linkis.system.user.prohibit.login.switch=true

# 系统用户前缀列表(逗号分隔)
linkis.system.user.prohibit.login.prefix=hadoop,hduser,shduser
```

## 7. 兼容性说明

| 场景 | 行为 |
|------|------|
| 旧前端(无webLogin header) | 默认webLogin=false,不拦截,正常登录 |
| 客户端登录(无webLogin header) | 默认webLogin=false,不拦截,正常登录 |
| 新前端(webLogin=true) + 普通用户 | 正常登录 |
| 新前端(webLogin=true) + 系统用户 | 拦截,返回错误 |
119 changes: 119 additions & 0 deletions docs/1.18.0/requirements/系统用户禁止登录改造_需求.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
# 阶段1:需求分析文档

## 1. 需求概述

### 1.1 背景
根据安全要求,Linkis管理台需要禁止系统用户(如hadoop、hduser、shduser等)通过Web页面登录,以降低安全风险。

### 1.2 目标
- 拦截系统用户的Web页面登录请求
- 不影响客户端(client)及其他渠道的登录
- 提供配置开关和系统用户前缀配置

## 2. 功能需求

### 2.1 登录拦截逻辑

| 编号 | 功能点 | 描述 | 优先级 |
|------|--------|------|--------|
| FR-001 | webLogin标识传递 | 前端在HTTP header中传递`webLogin`标识 | P0 |
| FR-002 | webLogin标识获取 | 后端从header获取标识,默认值为`false` | P0 |
| FR-003 | 系统用户拦截 | 当webLogin=true时,拦截系统用户前缀匹配的用户 | P0 |
| FR-004 | 非Web渠道放行 | webLogin=false或未传时不进行拦截 | P0 |

### 2.2 错误提示

| 编号 | 功能点 | 描述 | 优先级 |
|------|--------|------|--------|
| FR-005 | 统一错误信息 | 拦截时返回"系统用户禁止登录" | P0 |

### 2.3 配置管理

| 编号 | 功能点 | 描述 | 优先级 |
|------|--------|------|--------|
| FR-006 | 功能开关 | `linkis.system.user.prohibit.login.switch` 控制功能开启/关闭 | P0 |
| FR-007 | 系统用户前缀 | `linkis.system.user.prohibit.login.prefix` 配置系统用户前缀列表 | P0 |

## 3. 非功能需求

### 3.1 兼容性
- 现有客户端登录方式不受影响
- 配置项需向后兼容

### 3.2 安全性
- 拦截逻辑不可绕过
- webLogin标识仅用于识别登录来源,不用于认证

### 3.3 可配置性
- 功能可通过配置开关完全关闭
- 系统用户前缀列表可动态配置

## 4. 数据字典

### 4.1 配置项

| 配置项 | 类型 | 默认值 | 说明 |
|--------|------|--------|------|
| linkis.system.user.prohibit.login.switch | Boolean | false | 禁止系统用户登录功能开关 |
| linkis.system.user.prohibit.login.prefix | String | hadoop,hduser,shduser | 系统用户前缀列表,逗号分隔 |

### 4.2 HTTP Header

| Header名称 | 类型 | 默认值 | 说明 |
|------------|------|--------|------|
| webLogin | String | false | Web页面登录标识,true表示来自Web页面 |

## 5. 用例分析

### 5.1 正常场景

#### UC-001: 普通用户Web登录
- **前置条件**: 功能开关开启
- **输入**: 用户名=testuser, webLogin=true
- **预期**: 登录成功

#### UC-002: 系统用户Client登录
- **前置条件**: 功能开关开启
- **输入**: 用户名=hadoop, webLogin=false
- **预期**: 登录成功

### 5.2 异常场景

#### UC-003: 系统用户Web登录
- **前置条件**: 功能开关开启
- **输入**: 用户名=hadoop, webLogin=true
- **预期**: 登录失败,返回"系统用户禁止登录"

#### UC-004: hduser用户Web登录
- **前置条件**: 功能开关开启
- **输入**: 用户名=hduser01, webLogin=true
- **预期**: 登录失败,返回"系统用户禁止登录"

### 5.3 边界场景

#### UC-005: 功能开关关闭
- **前置条件**: 功能开关关闭
- **输入**: 用户名=hadoop, webLogin=true
- **预期**: 登录成功(不进行拦截)

#### UC-006: webLogin未传递
- **前置条件**: 功能开关开启
- **输入**: 用户名=hadoop, header中无webLogin
- **预期**: 登录成功(默认webLogin=false)

## 6. 影响范围分析

### 6.1 代码改动范围

| 文件 | 改动类型 | 改动内容 |
|------|---------|---------|
| GatewayConfiguration.scala | 修改 | 更新PROHIBIT_LOGIN_PREFIX默认值 |
| UserRestful.scala | 修改 | 修改登录拦截逻辑,从header获取webLogin |

### 6.2 风险评估

| 风险 | 等级 | 缓解措施 |
|------|------|---------|
| 影响正常用户登录 | 低 | 功能开关默认关闭 |
| 前端未传webLogin | 低 | 默认值为false,不拦截 |
| 配置错误导致无法登录 | 中 | 提供配置示例和文档 |
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,7 @@ object GatewayConfiguration {
val PROHIBIT_LOGIN_SWITCH = CommonVars("linkis.system.user.prohibit.login.switch", false)

val PROHIBIT_LOGIN_PREFIX =
CommonVars("linkis.system.user.prohibit.login.prefix", "hduser,shduser").getValue.toLowerCase()
CommonVars("linkis.system.user.prohibit.login.prefix", "hduser,shduser,hadoop").getValue
.toLowerCase()

}
Original file line number Diff line number Diff line change
Expand Up @@ -307,10 +307,13 @@ abstract class UserPwdAbstractUserRestful extends AbstractUserRestful with Loggi
return Message.error("Password can not be blank(密码不能为空)!")
}

if (
GatewayConfiguration.PROHIBIT_LOGIN_SWITCH.getValue && (!getRequestSource(gatewayContext)
.equals("client"))
) {
// 从header获取webLogin标识,默认为false
val headers = gatewayContext.getRequest.getHeaders
val webLoginHeaders = headers.getOrDefault("webLogin", Array("false"))
val webLogin = java.lang.Boolean.parseBoolean(webLoginHeaders.head)
// 如果是web登录,检查是否为系统用户(包括hadoop用户)
if (GatewayConfiguration.PROHIBIT_LOGIN_SWITCH.getValue && webLogin) {
// 检查是否为系统用户(包括hadoop用户)
PROHIBIT_LOGIN_PREFIX.split(",").foreach { prefix =>
if (userName.toLowerCase().startsWith(prefix)) {
return Message.error("System users are prohibited from logging in(系统用户禁止登录)!")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,18 +72,15 @@ class StaticAuthenticationStrategy(override protected val sessionMaxAliveTime: L
case userPwd: UserPwdAction =>
action.addRequestPayload("userName", userPwd.getUser)
action.addRequestPayload("password", userPwd.getPassword.getOrElse(pwd))
action.addRequestPayload("source", "client")
case userAction: UserAction =>
action.addRequestPayload("userName", userAction.getUser)
action.addRequestPayload("password", pwd)
action.addRequestPayload("source", "client")
case _ =>
if (StringUtils.isBlank(getClientConfig.getAuthTokenKey)) {
throw new AuthenticationFailedException(AUTHTOKENVALUE_BE_EXISTS.getErrorDesc)
}
action.addRequestPayload("userName", getClientConfig.getAuthTokenKey)
action.addRequestPayload("password", pwd)
action.addRequestPayload("source", "client")
}
action
}
Expand Down
2 changes: 2 additions & 0 deletions linkis-web/.env
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ VUE_APP_MN_CONFIG_SOCKET=/ws/api/entrance/connect
VUE_APP_VERSION=1.8.0
# Enable or disable Python Module feature (true/false)
VUE_APP_ENABLE_PYTHON_MODULE=false
VUE_APP_DISALLOW_LOGIN=true
VUE_APP_DISALLOW_LOGIN_PREFIX=hduser,shduser,hadoop
Loading
Loading