Skip to content

Commit 799a84f

Browse files
author
gitlab
committed
Merge branch 'fix/ZSTAC-80664' into '5.5.12'
<fix>[core]: add @nologging to sensitive config fields See merge request zstackio/zstack!9171
2 parents 3e02188 + aaeaf39 commit 799a84f

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

header/src/main/java/org/zstack/header/storage/addon/primary/ExternalPrimaryStorageInventory.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
import org.zstack.header.storage.primary.PrimaryStorageInventory;
55
import org.zstack.utils.gson.JSONObjectUtil;
66

7+
import java.util.ArrayList;
78
import java.util.LinkedHashMap;
89
import java.util.List;
10+
import java.util.Map;
911
import java.util.stream.Collectors;
1012

1113
@Inventory(mappingVOClass = ExternalPrimaryStorageVO.class)
@@ -59,6 +61,7 @@ public ExternalPrimaryStorageInventory(ExternalPrimaryStorageVO lvo) {
5961
super(lvo);
6062
identity = lvo.getIdentity();
6163
config = JSONObjectUtil.toObject(lvo.getConfig(), LinkedHashMap.class);
64+
desensitizeConfig(config);
6265
addonInfo = JSONObjectUtil.toObject(lvo.getAddonInfo(), LinkedHashMap.class);
6366
outputProtocols = lvo.getOutputProtocols().stream().map(PrimaryStorageOutputProtocolRefVO::getOutputProtocol).collect(Collectors.toList());
6467
defaultProtocol = lvo.getDefaultProtocol();
@@ -68,6 +71,35 @@ public static ExternalPrimaryStorageInventory valueOf(ExternalPrimaryStorageVO l
6871
return new ExternalPrimaryStorageInventory(lvo);
6972
}
7073

74+
private static void desensitizeConfig(Map config) {
75+
if (config == null) return;
76+
desensitizeUrlList(config, "mdsUrls");
77+
desensitizeUrlList(config, "mdsInfos");
78+
}
79+
80+
private static void desensitizeUrlList(Map config, String key) {
81+
Object urls = config.get(key);
82+
if (urls instanceof List) {
83+
List<String> desensitized = new ArrayList<>();
84+
for (Object url : (List) urls) {
85+
desensitized.add(desensitizeUrl(String.valueOf(url)));
86+
}
87+
config.put(key, desensitized);
88+
}
89+
}
90+
91+
private static String desensitizeUrl(String url) {
92+
int atIndex = url.lastIndexOf('@');
93+
if (atIndex > 0) {
94+
int schemeIndex = url.indexOf("://");
95+
if (schemeIndex >= 0 && schemeIndex < atIndex) {
96+
return url.substring(0, schemeIndex + 3) + "***" + url.substring(atIndex);
97+
}
98+
return "***" + url.substring(atIndex);
99+
}
100+
return url;
101+
}
102+
71103
public String getIdentity() {
72104
return identity;
73105
}

0 commit comments

Comments
 (0)