设置 X-Vault-Wrap-TTL header 为 spring-vault

Setting X-Vault-Wrap-TTL header with spring-vault

我们正在编写一个使用“response wrapping" feature of Vault. Vault API uses a header to set the TTL to a non-default value.

创建短期秘密的应用程序

有没有办法使用 spring-vault 设置 X-Vault-Wrap-TTL header?

Spring Vault 不提供 API 来创建包装响应,因为它需要使用不同的响应类型镜像所有 API。如果您需要响应包装,请使用会话回调:

ResponseEntity<VaultResponse> response = vaultOperations.doWithSession(restOperations -> {

    HttpHeaders headers = new HttpHeaders();
    headers.add("X-Vault-Wrap-TTL", "1h");

    return restOperations.exchange("secret/mykey", HttpMethod.GET, new HttpEntity<>(headers), VaultResponse.class);
});

Map<String, String> wrapInfo = response.getBody().getWrapInfo();

// token to unwrap the response
VaultToken token = VaultToken.of(wrapInfo.get("token"));