SecretAsyncClient 类
- java.
lang. Object - com.
azure. security. keyvault. secrets. SecretAsyncClient
- com.
public final class SecretAsyncClient
SecretAsyncClient 提供在 Azure 密钥保管库中管理的KeyVaultSecret异步方法。 客户端支持创建、检索、更新、删除、清除、备份、还原和列出 KeyVaultSecret。 客户端还支持 DeletedSecret 列出已启用软删除的密钥保管库。
入门
若要与 Azure 密钥保管库 服务交互,需要创建 类的SecretAsyncClient实例、保管库 URL 和凭据对象。
本文档中显示的示例使用名为 DefaultAzureCredential 的凭据对象进行身份验证,该对象适用于大多数方案,包括本地开发和生产环境。 此外,我们建议使用 托管标识 在生产环境中进行身份验证。 可以在 Azure 标识文档中找到有关不同身份验证方式及其相应凭据类型的详细信息。
示例:构造异步机密客户端
SecretAsyncClient secretAsyncClient = new SecretClientBuilder()
.credential(new DefaultAzureCredentialBuilder().build())
.vaultUrl("<your-key-vault-url>")
.buildAsyncClient();
创建机密
SecretAsyncClient可用于在密钥保管库中创建机密。
代码示例:
以下代码示例演示如何使用 setSecret(String name, String value) API 在密钥保管库中创建和存储机密。
secretAsyncClient.setSecret("secretName", "secretValue")
.subscribe(secretResponse ->
System.out.printf("Secret is created with name %s and value %s%n",
secretResponse.getName(), secretResponse.getValue()));
注意: 有关同步示例,请参阅 SecretClient。
获取机密
SecretAsyncClient可用于从密钥保管库检索机密。
代码示例:
下面的代码示例演示如何使用 API 从密钥保管库同步检索以前存储的 getSecret(String name) 机密。
secretAsyncClient.getSecret("secretName")
.subscribe(secretWithVersion ->
System.out.printf("Secret is returned with name %s and value %s %n",
secretWithVersion.getName(), secretWithVersion.getValue()));
注意: 有关同步示例,请参阅 SecretClient。
删除机密
SecretAsyncClient可用于从密钥保管库中删除机密。
代码示例:
以下代码示例演示如何使用 beginDeleteSecret(String name) API 从密钥保管库中删除机密。
secretAsyncClient.beginDeleteSecret("secretName")
.subscribe(pollResponse -> {
System.out.println("Delete Status: " + pollResponse.getStatus().toString());
System.out.println("Deleted Secret Name: " + pollResponse.getValue().getName());
System.out.println("Deleted Secret Value: " + pollResponse.getValue().getValue());
});
注意: 有关同步示例,请参阅 SecretClient。
方法摘要
方法继承自 java.lang.Object
方法详细信息
backupSecret
public Mono
请求将机密的备份下载到客户端。 将下载所有版本的机密。 此操作需要 secrets/backup 权限。
代码示例
从密钥保管库备份机密。 异步订阅调用,并输出响应中返回的机密备份字节数组的长度。
secretAsyncClient.backupSecret("secretName")
.subscribe(secretBackupResponse ->
System.out.printf("Secret's Backup Byte array's length %s%n", secretBackupResponse.length));
Parameters:
Returns:
backupSecretWithResponse
public Mono
请求将机密的备份下载到客户端。 将下载所有版本的机密。 此操作需要 secrets/backup 权限。
代码示例
从密钥保管库备份机密。 异步订阅调用,并输出响应中返回的机密备份字节数组的长度。
secretAsyncClient.backupSecretWithResponse("secretName")
.subscribe(secretBackupResponse ->
System.out.printf("Secret's Backup Byte array's length %s%n", secretBackupResponse.getValue().length));
Parameters:
Returns:
beginDeleteSecret
public PollerFlux
从密钥保管库中删除机密。 如果在密钥保管库上启用了软删除,则将机密置于已删除状态,并且需要清除永久删除机密。 否则,将永久删除机密。 将删除机密的所有版本。 这不能应用于机密的各个版本。 此操作需要 secrets/delete 权限。
代码示例
删除 Azure 密钥保管库中的机密。 异步订阅调用,并在收到响应时输出已删除的机密详细信息。
secretAsyncClient.beginDeleteSecret("secretName")
.subscribe(pollResponse -> {
System.out.println("Delete Status: " + pollResponse.getStatus().toString());
System.out.println("Deleted Secret Name: " + pollResponse.getValue().getName());
System.out.println("Deleted Secret Value: " + pollResponse.getValue().getValue());
});
Parameters:
Returns:
beginRecoverDeletedSecret
public PollerFlux
将密钥保管库中已删除的机密恢复到其最新版本。 只能在 已启用软删除的 保管库上执行。 此操作需要 secrets/recover 权限。
代码示例
从启用软删除的密钥保管库恢复已删除 的机密。 异步订阅调用,并在收到响应时输出恢复的机密详细信息。
secretAsyncClient.beginRecoverDeletedSecret("deletedSecretName")
.subscribe(pollResponse -> {
System.out.println("Recovery Status: " + pollResponse.getStatus().toString());
System.out.println("Recovered Secret Name: " + pollResponse.getValue().getName());
System.out.println("Recovered Secret Value: " + pollResponse.getValue().getValue());
});
Parameters:
Returns:
getDeletedSecret
public Mono
获取已为已启用软删除的密钥保管库删除的机密。 此操作需要 secrets/list 权限。
代码示例
从 启用软删除的密钥保管库获取已删除的机密。 异步订阅调用,并在收到响应时输出已删除的机密详细信息。
secretAsyncClient.getDeletedSecret("secretName")
.subscribe(deletedSecretResponse ->
System.out.printf("Deleted Secret's Recovery Id %s %n", deletedSecretResponse.getRecoveryId()));
Parameters:
Returns:
getDeletedSecretWithResponse
public Mono
获取已为已启用软删除的密钥保管库删除的机密。 此操作需要 secrets/list 权限。
代码示例
从 启用软删除的密钥保管库获取已删除的机密。 异步订阅调用,并在收到响应时输出已删除的机密详细信息。
secretAsyncClient.getDeletedSecretWithResponse("secretName")
.subscribe(deletedSecretResponse ->
System.out.printf("Deleted Secret's Recovery Id %s %n",
deletedSecretResponse.getValue().getRecoveryId()));
Parameters:
Returns:
getSecret
public Mono
从密钥保管库中获取指定机密的最新版本。 此操作需要 secrets/get 权限。
代码示例
获取密钥保管库中机密的最新版本。 异步订阅调用,并在收到响应时输出返回的机密详细信息。
secretAsyncClient.getSecret("secretName")
.subscribe(secretWithVersion ->
System.out.printf("Secret is returned with name %s and value %s %n",
secretWithVersion.getName(), secretWithVersion.getValue()));
Parameters:
Returns:
getSecret
public Mono
从密钥保管库中获取具有指定版本的指定机密。 此操作需要 secrets/get 权限。
代码示例
获取密钥保管库中特定版本的机密。 异步订阅调用,并在收到响应时输出返回的机密详细信息。
String secretVersion = "6A385B124DEF4096AF1361A85B16C204";
secretAsyncClient.getSecret("secretName", secretVersion)
// Passing a Context is optional and useful if you want a set of data to flow through the request.
// Otherwise, the line below can be removed.
.contextWrite(Context.of(key1, value1, key2, value2))
.subscribe(secretWithVersion ->
System.out.printf("Secret is returned with name %s and value %s %n",
secretWithVersion.getName(), secretWithVersion.getValue()));
Parameters:
Returns:
getSecretWithResponse
public Mono
从密钥保管库中获取具有指定版本的指定机密。 此操作需要 secrets/get 权限。
代码示例
获取密钥保管库中特定版本的机密。 异步订阅调用,并在收到响应时输出返回的机密详细信息。
String secretVersion = "6A385B124DEF4096AF1361A85B16C204";
secretAsyncClient.getSecretWithResponse("secretName", secretVersion)
// Passing a Context is optional and useful if you want a set of data to flow through the request.
// Otherwise, the line below can be removed.
.contextWrite(Context.of(key1, value1, key2, value2))
.subscribe(secretWithVersion ->
System.out.printf("Secret is returned with name %s and value %s %n",
secretWithVersion.getValue().getName(), secretWithVersion.getValue().getValue()));
Parameters:
Returns:
getVaultUrl
public String getVaultUrl()
获取服务请求发送到的保管库终结点 URL。
Returns:
listDeletedSecrets
public PagedFlux
密钥保管库(如果已启用软删除)的列表 DeletedSecret 。 此操作需要 secrets/list 权限。
代码示例
列出密钥保管库中已删除的机密。 异步订阅调用,并在收到响应时输出每个已删除机密的恢复 ID。
secretAsyncClient.listDeletedSecrets()
.subscribe(deletedSecretResponse -> System.out.printf("Deleted Secret's Recovery Id %s %n",
deletedSecretResponse.getRecoveryId()));
Returns:
listPropertiesOfSecretVersions
public PagedFlux
列出指定机密的所有版本。 每个 SecretProperties 返回的仅填充其标识符和属性。 响应中未列出机密值和机密版本。 此操作需要 secrets/list 权限。
代码示例
下面的示例提取给定机密的所有版本。 对于检索到的每个版本,调用 getSecret(String name, String version) 以获取版本的值,然后将其打印出来。
secretAsyncClient.listPropertiesOfSecretVersions("secretName")
.flatMap(secretProperties -> {
System.out.println("Get secret value for version: " + secretProperties.getVersion());
return secretAsyncClient.getSecret(secretProperties.getName(), secretProperties.getVersion());
})
.subscribe(secret -> System.out.printf("Received secret with name %s and type %s%n",
secret.getName(), secret.getValue()));
Parameters:
Returns:
listPropertiesOfSecrets
public PagedFlux
列出密钥保管库中的机密。 每个 SecretProperties 返回的仅填充其标识符和属性。 响应中未列出机密值及其版本。 此操作需要 secrets/list 权限。
代码示例
下面的示例提取保管库中的所有机密属性。 对于检索到的每个机密,调用 getSecret(String name, String version) 以获取其值,然后将其打印出来。
secretAsyncClient.listPropertiesOfSecrets()
.flatMap(secretProperties -> {
String name = secretProperties.getName();
String version = secretProperties.getVersion();
System.out.printf("Getting secret name: '%s', version: %s%n", name, version);
return secretAsyncClient.getSecret(name, version);
})
.subscribe(secretResponse -> System.out.printf("Received secret with name %s and type %s",
secretResponse.getName(), secretResponse.getValue()));
Returns:
purgeDeletedSecret
public Mono
永久删除已删除的机密,无法恢复。 此操作只能在 启用软删除时执行。 此操作需要 secrets/purge 权限。
代码示例
从启用软删除的密钥保管库中清除已删除 的机密。 异步订阅调用,并在收到响应时输出服务器响应中的状态代码。
secretAsyncClient.purgeDeletedSecret("deletedSecretName")
.doOnSuccess(purgeResponse ->
System.out.println("Successfully Purged deleted Secret"))
.subscribe();
Parameters:
Returns:
purgeDeletedSecretWithResponse
public Mono
永久删除已删除的机密,无法恢复。 只能在已启用软删除的保管库上启用此操作。 此操作需要 secrets/purge 权限。
代码示例
从启用软删除的密钥保管库中清除已删除的机密。 异步订阅调用,并在收到响应时输出服务器响应中的状态代码。
secretAsyncClient.purgeDeletedSecretWithResponse("deletedSecretName")
.subscribe(purgeResponse ->
System.out.printf("Purge Status response %d %n", purgeResponse.getStatusCode()));
Parameters:
Returns:
restoreSecretBackup
public Mono
将已备份的机密及其所有版本还原到保管库。 此操作需要 secrets/restore 权限。
代码示例
从密钥保管库的备份还原机密。 异步订阅调用,并在收到响应时输出还原的机密详细信息。
// Pass the secret backup byte array to the restore operation.
byte[] secretBackupByteArray = {};
secretAsyncClient.restoreSecretBackup(secretBackupByteArray)
.subscribe(secretResponse -> System.out.printf("Restored Secret with name %s and value %s %n",
secretResponse.getName(), secretResponse.getValue()));
Parameters:
Returns:
restoreSecretBackupWithResponse
public Mono
将已备份的机密及其所有版本还原到保管库。 此操作需要 secrets/restore 权限。
代码示例
从密钥保管库的备份还原机密。 异步订阅调用,并在收到响应时输出还原的机密详细信息。
// Pass the secret backup byte array to the restore operation.
byte[] secretBackupByteArray = {};
secretAsyncClient.restoreSecretBackupWithResponse(secretBackupByteArray)
.subscribe(secretResponse -> System.out.printf("Restored Secret with name %s and value %s %n",
secretResponse.getValue().getName(), secretResponse.getValue().getValue()));
Parameters:
Returns:
setSecret
public Mono
将机密添加到密钥保管库(如果不存在)。 如果命名的机密存在,则会创建该机密的新版本。 此操作需要 secrets/set 权限。
中的 getExpiresOn()secret 、 getContentType()和 getNotBefore() 值是可选的。 如果未指定, isEnabled() 则由密钥保管库设置为 true。
代码示例
创建一个新机密,该机密在一天内激活,并在一年内过期。 异步订阅调用,并在收到响应时输出新创建的机密详细信息。
SecretProperties properties = new SecretProperties()
.setExpiresOn(OffsetDateTime.now().plusDays(60));
KeyVaultSecret newSecret = new KeyVaultSecret("secretName", "secretValue")
.setProperties(properties);
secretAsyncClient.setSecret(newSecret)
.subscribe(secretResponse ->
System.out.printf("Secret is created with name %s and value %s %n",
secretResponse.getName(), secretResponse.getValue()));
Parameters:
Returns:
setSecret
public Mono
将机密添加到密钥保管库(如果不存在)。 如果命名的机密存在,则会创建该机密的新版本。 此操作需要 secrets/set 权限。
代码示例
在密钥保管库中创建新机密。 异步订阅调用,并在收到响应时输出新创建的机密详细信息。
secretAsyncClient.setSecret("secretName", "secretValue")
.subscribe(secretResponse ->
System.out.printf("Secret is created with name %s and value %s%n",
secretResponse.getName(), secretResponse.getValue()));
Parameters:
Returns:
setSecretWithResponse
public Mono
将机密添加到密钥保管库(如果不存在)。 如果命名的机密存在,则会创建该机密的新版本。 此操作需要 secrets/set 权限。
中的 getExpiresOn()secret 、 getContentType()和 getNotBefore() 值是可选的。 如果未指定, isEnabled() 则由密钥保管库设置为 true。
代码示例
创建一个新机密,该机密在一天内激活,并在一年内过期。 异步订阅调用,并在收到响应时输出新创建的机密详细信息。
KeyVaultSecret newSecret = new KeyVaultSecret("secretName", "secretValue").
setProperties(new SecretProperties().setExpiresOn(OffsetDateTime.now().plusDays(60)));
secretAsyncClient.setSecretWithResponse(newSecret)
.subscribe(secretResponse ->
System.out.printf("Secret is created with name %s and value %s %n",
secretResponse.getValue().getName(), secretResponse.getValue().getValue()));
Parameters:
Returns:
updateSecretProperties
public Mono
汇报与机密关联的属性。 无法更改密钥保管库中机密的值。 仅更改中 secretProperties 填充的属性。 不会更改请求中未指定的属性。 此操作需要 secrets/set 权限。
secret是必需的及其字段getName(),getVersion()不能为 null。
代码示例
获取最新版本的机密,更改其setNotBefore(OffsetDateTime notBefore)时间,然后在 Azure 密钥保管库中更新它。 异步订阅调用,并在收到响应时输出返回的机密详细信息。
secretAsyncClient.getSecret("secretName")
.subscribe(secretResponseValue -> {
SecretProperties secretProperties = secretResponseValue.getProperties();
//Update the not before time of the secret.
secretProperties.setNotBefore(OffsetDateTime.now().plusDays(50));
secretAsyncClient.updateSecretProperties(secretProperties)
.subscribe(secretResponse ->
System.out.printf("Secret's updated not before time %s %n",
secretResponse.getNotBefore().toString()));
});
Parameters:
Returns:
updateSecretPropertiesWithResponse
public Mono
汇报与机密关联的属性。 无法更改密钥保管库中机密的值。 仅更改中 secretProperties 填充的属性。 不会更改请求中未指定的属性。 此操作需要 secrets/set 权限。
代码示例
获取最新版本的机密,更改其setNotBefore(OffsetDateTime notBefore)时间,然后在 Azure 密钥保管库中更新它。 异步订阅调用,并在收到响应时输出返回的机密详细信息。
secretAsyncClient.getSecret("secretName")
.subscribe(secretResponseValue -> {
SecretProperties secretProperties = secretResponseValue.getProperties();
//Update the not before time of the secret.
secretProperties.setNotBefore(OffsetDateTime.now().plusDays(50));
secretAsyncClient.updateSecretPropertiesWithResponse(secretProperties)
.subscribe(secretResponse ->
System.out.printf("Secret's updated not before time %s %n",
secretResponse.getValue().getNotBefore().toString()));
});
secret是必需的及其字段getName(),getVersion()不能为 null。
Parameters:
Returns: