java获取keyvault_Java KeyVaultClient類代碼示例

import com.microsoft.azure.keyvault.KeyVaultClient; //導入依賴的package包/類

/**

* Creates a secret in Azure Key Vault and returns its ID.

*

* @param secretName

* The name of the secret to create

* @return The ID of the created secret

* @throws InterruptedException

* @throws ExecutionException

* @throws NoSuchAlgorithmException

* @throws URISyntaxException

* @throws MalformedURLException

*/

public static String SetUpKeyVaultSecret(String secretName)

throws InterruptedException, ExecutionException,

NoSuchAlgorithmException, URISyntaxException, MalformedURLException {

KeyVaultClient cloudVault = GetKeyVaultClient();

if (Utility.vaultURL == null || Utility.vaultURL.isEmpty()) {

throw new IllegalArgumentException("No Keyvault URL specified.");

}

try {

// Delete the secret if it exists.

cloudVault.deleteSecretAsync(Utility.vaultURL, secretName).get();

} catch (ExecutionException ex) {

boolean keyNotFound = false;

if (ex.getCause().getClass() == ServiceException.class) {

ServiceException serviceException = (ServiceException) ex

.getCause();

if (serviceException.getHttpStatusCode() == 404) {

keyNotFound = true;

}

}

if (!keyNotFound) {

System.out

.println("Unable to access the specified vault. Please confirm the KVClientId, KVClientKey, and VaultUri are valid in the app.config file.");

System.out

.println("Also ensure that the client ID has previously been granted full permissions for Key Vault secrets using the Set-AzureKeyVaultAccessPolicy command with the -PermissionsToSecrets parameter.");

System.out.println("Press any key to exit");

Scanner input = new Scanner(System.in);

input.nextLine();

input.close();

throw ex;

}

}

// Create a 256bit symmetric key and convert it to Base64.

KeyGenerator keyGen = KeyGenerator.getInstance("AES");

keyGen.init(256); // Note that we cannot use SymmetricKey.KeySize256,

// because this resolves to '0x20'.

SecretKey wrapKey = keyGen.generateKey();

// Store the Base64 of the key in the key vault. Note that the

// content-type of the secret must

// be application/octet-stream or the KeyVaultKeyResolver will not load

// it as a key.

Map headers = new HashMap();

headers.put("Content-Type", "application/octet-stream");

Secret cloudSecret = cloudVault.setSecretAsync(Utility.vaultURL,

secretName, Base64.encodeBase64String(wrapKey.getEncoded()),

"application/octet-stream", null, null).get();

// Return the base identifier of the secret. This will be resolved to

// the current version of the secret.

return cloudSecret.getSecretIdentifier().getBaseIdentifier();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值