in src/main/java/com/aliyuncs/kms/secretsmanager/client/service/DefaultSecretManagerClientBuilder.java [334:363]
private void initDkmsInstancesFromEnv(Map<String, String> envMap) {
List<DKmsConfig> dKmsConfigs = new ArrayList<>();
String configJson = envMap.get(CacheClientConstant.CACHE_CLIENT_DKMS_CONFIG_INFO_KEY);
if (!StringUtils.isEmpty(configJson)) {
try {
Type configListType = new TypeToken<ArrayList<DKmsConfig>>() {
}.getType();
dKmsConfigs.addAll(new Gson().fromJson(configJson, configListType));
} catch (Exception e) {
throw new IllegalArgumentException(String.format("env param[%s] is illegal", CacheClientConstant.CACHE_CLIENT_DKMS_CONFIG_INFO_KEY));
}
}
for (DKmsConfig dKmsConfig : dKmsConfigs) {
RegionInfo regionInfo = new RegionInfo();
if (StringUtils.isEmpty(dKmsConfig.getRegionId()) || StringUtils.isEmpty(dKmsConfig.getEndpoint())) {
throw new IllegalArgumentException("init env fail,cause of cache_client_dkms_config_info param[regionId or endpoint] is null");
}
regionInfo.setRegionId(dKmsConfig.getRegionId());
regionInfo.setEndpoint(dKmsConfig.getEndpoint());
regionInfo.setKmsType(CacheClientConstant.DKMS_TYPE);
if (!StringUtils.isEmpty(dKmsConfig.getPasswordFromFilePath())) {
dKmsConfig.setPassword(ClientKeyUtils.readPasswordFile(dKmsConfig.getPasswordFromFilePath()));
} else {
dKmsConfig.setPassword(ClientKeyUtils.getPassword(envMap, dKmsConfig.getPasswordFromEnvVariable(), dKmsConfig.getPasswordFromFilePathName()));
}
dKmsConfigsMap.put(regionInfo, dKmsConfig);
regionInfos.add(regionInfo);
}
}