java隐藏密码_java-Spring Boot如何在属性fi中隐藏密码

在已经提出的解决方案中,我可以添加一个选项来配置外部PropertySource,例如Vault。

配置Vault服务器PropertySource(仅适用于DEV,不适用于PROD)

写秘密PropertySource

验证机密PropertySource

将以下依赖项添加到您的Spring Boot项目中:

org.springframework.cloud

spring-cloud-starter-vault-config

添加保管库配置属性:

spring.cloud.vault.host=localhost

spring.cloud.vault.port=8200

spring.cloud.vault.scheme=http

spring.cloud.vault.authentication=token

spring.cloud.vault.token=${VAULT_TOKEN}

传递PropertySource作为环境变量。

请参阅此处的文档。

有一个Spring Vault项目,该项目也可用于访问,存储和撤消机密。

依赖关系:

org.springframework.vault

spring-vault-core

配置保管库模板:

@Configuration

class VaultConfiguration extends AbstractVaultConfiguration {

@Override

public VaultEndpoint vaultEndpoint() {

return new VaultEndpoint();

}

@Override

public ClientAuthentication clientAuthentication() {

return new TokenAuthentication("…");

}

}

注入并使用VaultTemplate:

public class Example {

@Autowired

private VaultOperations operations;

public void writeSecrets(String userId, String password) {

Map data = new HashMap();

data.put("password", password);

operations.write(userId, data);

}

public Person readSecrets(String userId) {

VaultResponseSupport response = operations.read(userId, Person.class);

return response.getBody();

}

}

使用保管库PropertySource:

@VaultPropertySource(value = "aws/creds/s3",

propertyNamePrefix = "aws."

renewal = Renewal.RENEW)

public class Config {

}

用法示例:

public class S3Client {

// inject the actual values

@Value("${aws.access_key}")

private String awsAccessKey;

@Value("${aws.secret_key}")

private String awsSecretKey;

public InputStream getFileFromS3(String filenname) {

// …

}

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值