如何在 Azure Web 应用程序配置中使用 CATALINA_OPTS 访问 Key Vault

问题描述 投票:0回答:1
azure-web-app-service azure-sql-database azure-keyvault tomcat9
1个回答
0
投票

一种可行的解决方法是使用

BasicDataSource
而不是
DataSource
并在 Java 中加载参数。这完全不需要在 context.xml 中定义连接。

 String keyVaultUrl = "https://thekeyvaulttest.vault.azure.net/";
 SecretClient secretClient = new SecretClientBuilder()
             .vaultUrl(keyVaultUrl)
             .credential(new DefaultAzureCredentialBuilder().build())
             .buildClient();
 ds=new BasicDataSource();
 String url = "jdbc:sqlserver://myserver.database.windows.net:1433;database=myDatabase;encrypt=true;trustServerCertificate=true;loginTimeout=10;";
 String username = "myuser@myserver";
 String password = secretClient.getSecret("DB-PASSWORD").getValue();
            
 ds.setDriverClassName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
 ds.setUrl(url);
 ds.setMaxTotal(100);
 ds.setUsername(username);
 ds.setPassword(password);
 ds.setInitialSize(30);
 ds.setValidationQuery("SELECT 1");
 ds.setTestOnBorrow(true);
© www.soinside.com 2019 - 2024. All rights reserved.