如何在Spring Boot中生成Wrapped Token访问Hashicorp Vault
在Spring Boot中创建Hashicorp Vault Wrapped Token
要创建Wrapped Token,你可以直接用Spring Vault提供的createWrapped方法,它能把生成的Token直接包装,返回用于提取原始Token的包装令牌。
修改后的代码示例
private WrappedResponse<VaultTokenResponse> getWrappedDefaultToken() { // 定义原始Token的策略、有效期、使用次数等参数 List<String> policies = Arrays.asList("default"); VaultTokenRequest tokenRequest = VaultTokenRequest.builder() .ttl(10, TimeUnit.MINUTES) .numUses(10) .policies(policies) .renewable(true) .build(); // 配置包装令牌的有效期(超过时间就无法解包) WrapRequest wrapRequest = WrapRequest.builder() .ttl(5, TimeUnit.MINUTES) .build(); // 创建并包装Token return VaultConfig.vaultTemplate.opsForToken().createWrapped(tokenRequest, wrapRequest); }
用包装令牌获取原始Token
拿到包装令牌后,通过unwrap方法就能提取出可直接使用的原始Token:
// 从返回结果中拿到包装令牌 String wrapToken = getWrappedDefaultToken().getWrapToken(); // 解包获取原始Token响应 VaultTokenResponse originalTokenResponse = VaultConfig.vaultTemplate.unwrap(wrapToken, VaultTokenResponse.class); // 提取可用于Vault读写操作的Token字符串 String usableToken = originalTokenResponse.getToken().getToken();
注意点
- 包装令牌有自己的有效期,过期后无法再解包出原始Token
- 包装令牌是一次性的,解包后就会失效,符合Vault的安全机制
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

