
com.netflix.spinnaker.kork.secrets.SecretSession Maven / Gradle / Ivy
package com.netflix.spinnaker.kork.secrets;
import java.nio.file.Path;
import java.util.HashMap;
import java.util.Map;
public class SecretSession {
private SecretManager secretManager;
Map secretCache = new HashMap<>();
Map secretFileCache = new HashMap<>();
public SecretSession(SecretManager secretManager) {
this.secretManager = secretManager;
}
public String decrypt(String encryptedSecret) {
if (secretCache.containsKey(encryptedSecret)) {
return secretCache.get(encryptedSecret);
} else {
String decryptedValue = secretManager.decrypt(encryptedSecret);
addCachedSecret(encryptedSecret, decryptedValue);
return decryptedValue;
}
}
public Path decryptAsFile(String encryptedSecret) {
if (secretFileCache.containsKey(encryptedSecret)) {
return secretFileCache.get(encryptedSecret);
}
Path decryptedFile = secretManager.decryptAsFile(encryptedSecret);
addCachedSecretFile(encryptedSecret, decryptedFile);
return decryptedFile;
}
public byte[] decryptAsBytes(String encrypted) {
return secretManager.decryptAsBytes(encrypted);
}
public void clearCachedSecrets() {
secretCache.clear();
secretFileCache.clear();
for (SecretEngine se : secretManager.getSecretEngineRegistry().getSecretEngineList()) {
se.clearCache();
}
}
public void addCachedSecret(String encrypted, String decrypted) {
secretCache.put(encrypted, decrypted);
}
public void addCachedSecretFile(String encrypted, Path decrypted) {
secretFileCache.put(encrypted, decrypted);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy