我在Vault中存储了一些数据库凭据 如何在Hibernate init之前获取/使用Hibernate的凭据?
答案 0 :(得分:1)
您宁愿为数据源提供凭据而不是Hibernate。没有集成将凭据注入persistence.xml
配置。
根据您的申请和设置,您要么采取@StanislavL建议的路线。
如果您的应用程序是基于Spring Boot的,那么请查看Spring Cloud Vault MySQL example。它为您配置spring.datasource.username
和spring.datasource.password
,因此您无需任何其他设置。
答案 1 :(得分:1)
有我的解决方案。
"#typ offer; #det free essential supplies 4 evacs pets.; #loc 2323 55th st, boulder; #lat 40.022; #lng -105.226;"
刚刚在上下文中使用了Spring Expression Language
public class DatabaseCredentialsLogic {
private String vaultSecretPath;
private VaultTemplate vaultTemplate;
private DatabaseCredentials databaseCredentials;
@Autowired
public DatabaseCredentialsLogic(VaultTemplate vaultTemplate, Environment env) {
this.vaultTemplate = vaultTemplate;
vaultSecretPath = env.getProperty("vault.secret.path");
}
public void init() {
VaultResponseSupport<DatabaseCredentials> response =
vaultTemplate.read(vaultSecretPath, DatabaseCredentials.class);
databaseCredentials = response.getData();
}
public String getUrl() {
return databaseCredentials.getUrl();
}
// Getters login & password
}