in src/main/java/com/aliyuncs/kms/secretsmanager/client/SecretCacheClient.java [66:85]
public SecretInfo getSecretInfo(final String secretName) throws CacheSecretException {
if (StringUtils.isEmpty(secretName)) {
throw new IllegalArgumentException("the argument[secretName] must not be null");
}
CacheSecretInfo cacheSecretInfo = this.cacheSecretStoreStrategy.getCacheSecretInfo(secretName);
if (checkCacheSecretInfoIsValid(cacheSecretInfo)) {
return cacheHook.get(cacheSecretInfo);
} else {
synchronized (secretName.intern()) {
cacheSecretInfo = this.cacheSecretStoreStrategy.getCacheSecretInfo(secretName);
if (checkCacheSecretInfoIsValid(cacheSecretInfo)) {
return cacheHook.get(cacheSecretInfo);
} else {
SecretInfo secretInfo = getSecretValue(secretName);
storeAndRefresh(secretName, secretInfo);
return cacheHook.put(secretInfo) == null ? null : cacheHook.put(secretInfo).getSecretInfo();
}
}
}
}