in src/main/java/com/aliyuncs/kms/secretsmanager/client/utils/CredentialsPropertiesUtils.java [93:132]
private static void initDkmsInstances(List<RegionInfo> regionInfoList, CredentialsProperties credentialsProperties) {
List<DKmsConfig> dKmsConfigs = new ArrayList<>();
String configJson = credentialsProperties.getSourceProperties().getProperty(CacheClientConstant.CACHE_CLIENT_DKMS_CONFIG_INFO_KEY);
if (!StringUtils.isEmpty(configJson)) {
try {
dKmsConfigs = gson.fromJson(configJson, dkmsInstancesType);
} catch (Exception e) {
throw new IllegalArgumentException(String.format("credentials config param[%s] is illegal", CacheClientConstant.CACHE_CLIENT_DKMS_CONFIG_INFO_KEY));
}
}
Map<RegionInfo, DKmsConfig> dKmsConfigsMap = new HashMap<>();
for (DKmsConfig dKmsConfig : dKmsConfigs) {
RegionInfo regionInfo = new RegionInfo();
if (StringUtils.isEmpty(dKmsConfig.getRegionId()) || StringUtils.isEmpty(dKmsConfig.getEndpoint())) {
throw new IllegalArgumentException("init properties 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);
try {
if (!StringUtils.isEmpty(dKmsConfig.getPasswordFromFilePath())) {
dKmsConfig.setPassword(ClientKeyUtils.readPasswordFile(dKmsConfig.getPasswordFromFilePath()));
} else {
dKmsConfig.setPassword(ClientKeyUtils.getPassword(credentialsProperties.getSourceProperties(), dKmsConfig.getPasswordFromEnvVariable(), dKmsConfig.getPasswordFromFilePathName()));
}
} catch (IllegalArgumentException e) {
if (StringUtils.isEmpty(credentialsProperties.getPassword())) {
throw e;
}
dKmsConfig.setPassword(credentialsProperties.getPassword());
}
if (StringUtils.isEmpty(dKmsConfig.clientKeyFile) && StringUtils.isEmpty(credentialsProperties.getPrivateKeyPath())) {
throw new IllegalArgumentException("client key file is not provided");
}
dKmsConfigsMap.put(regionInfo, dKmsConfig);
regionInfoList.add(regionInfo);
}
credentialsProperties.setDkmsConfigsMap(dKmsConfigsMap);
}