Spring Vault& Hibernate凭据

时间:2017-06-01 14:00:38

标签: spring spring-vault

我在Vault中存储了一些数据库凭据 如何在Hibernate init之前获取/使用Hibernate的凭据?

2 个答案:

答案 0 :(得分:1)

您宁愿为数据源提供凭据而不是Hibernate。没有集成将凭据注入persistence.xml配置。

根据您的申请和设置,您要么采取@StanislavL建议的路线。

如果您的应用程序是基于Spring Boot的,那么请查看Spring Cloud Vault MySQL example。它为您配置spring.datasource.usernamespring.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
}