private static void initDkmsInstances()

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);
    }