繁体   English   中英

读取部署在 Kubernetes 上的 Springboot 中的秘密

[英]Read secrets in Springboot deployed on Kubernetes

我在 config/yaml 文件中配置了很多秘密。 有一个秘密会引起麻烦。 我只想打印出注入该秘密的值。

apiVersion: v1
kind: ConfigMap
metadata:
name: myapplication-config
data:
  config.yaml: |
    'mysecret1': ${DB_PASSWORD}
    'mysecret2': ${ANOTHER_SECRET}

当我的应用程序全部启动时,我有一个控制器,我在其中发出 GET 请求并尝试打印出秘密:

@Autowired
Environment env;

@GetMapping("/test")
public String print(){
  System.out.println(env.getProperty("mysecret2"));
}

我特意在控制器中检查了这一点,以便应用程序完全启动并运行,并设置并解决了所有依赖项等。

当我打印它时,它会引发错误:

引起:java.lang.IllegalArgumentException:无法在 org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:172) 处解析值“${mysecret2}”中的占位符“mysecret2”

知道如何检查应用程序中从 config/env/dev/config.yaml 发送的秘密吗?

我能够通过环境变量读取它们:

@Autowired 
private org.springframework.core.env.Environment env;

//inside some method
@GetMapping("/test")
public String print(){
  System.out.println(env.getProperty("mysecret2"));
}

我尝试在下面使用,但没有用。

@Value("${mysecret2})
private String mySecret2; //didn't work

....

System.getEnv("mySecret2"); //didn't work
System.getProperty("mySecret2"); //didn't work

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM