From fe27e159ba285117f2e91e58d3bb6e8cdca2879d Mon Sep 17 00:00:00 2001 From: ZhangDT-sky <485918776@qq.com> Date: Fri, 10 Apr 2026 16:26:05 +0800 Subject: [PATCH] fix: retain existing credentials when updating datasource Signed-off-by: ZhangDT-sky <485918776@qq.com> --- .../alibaba/cloud/ai/dataagent/entity/Datasource.java | 6 +++--- .../service/datasource/impl/DatasourceServiceImpl.java | 9 +++++++-- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/entity/Datasource.java b/data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/entity/Datasource.java index 8c79de9e3..7ef02ee26 100644 --- a/data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/entity/Datasource.java +++ b/data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/entity/Datasource.java @@ -16,7 +16,7 @@ package com.alibaba.cloud.ai.dataagent.entity; import com.fasterxml.jackson.annotation.JsonFormat; -import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Builder; import org.springframework.format.annotation.DateTimeFormat; @@ -45,10 +45,10 @@ public class Datasource { private String username; - @JsonIgnore + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String password; - @JsonIgnore + @JsonProperty(access = JsonProperty.Access.WRITE_ONLY) private String connectionUrl; private String status; diff --git a/data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/service/datasource/impl/DatasourceServiceImpl.java b/data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/service/datasource/impl/DatasourceServiceImpl.java index e8100959a..7796b9cd1 100644 --- a/data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/service/datasource/impl/DatasourceServiceImpl.java +++ b/data-agent-management/src/main/java/com/alibaba/cloud/ai/dataagent/service/datasource/impl/DatasourceServiceImpl.java @@ -115,6 +115,11 @@ public Datasource createDatasource(Datasource datasource) { @Override public Datasource updateDatasource(Integer id, Datasource datasource) { + Datasource existingDatasource = datasourceMapper.selectById(id); + if (existingDatasource == null) { + throw new RuntimeException("Datasource not found with id: " + id); + } + // Regenerate connection URL DatasourceTypeHandler handler = datasourceTypeHandlerRegistry.getRequired(datasource.getType()); String connectionUrl = handler.resolveConnectionUrl(datasource); @@ -124,11 +129,11 @@ public Datasource updateDatasource(Integer id, Datasource datasource) { datasource.setId(id); if (datasource.getPassword() == null) { - datasource.setPassword(""); + datasource.setPassword(existingDatasource.getPassword()); } if (datasource.getUsername() == null) { - datasource.setUsername(""); + datasource.setUsername(existingDatasource.getUsername()); } datasourceMapper.updateById(datasource);