Spring Boot Actuator隐藏了env端点中的属性值

Tar*_*ion 7 configuration spring-boot

我的问题是,我的Spring-Boot Actuator端点env实际上用这样的开头替换了一些属性:

"applicationConfig: [classpath:/config/application.properties]" : {
    "rest.baseurl" : "http://85.214.247.80:9912",
    "projectKey" : "******",
Run Code Online (Sandbox Code Playgroud)

我不知道为什么.我的应用程序中没有任何暗示,他应该隐藏它.我想有一些启发式可以根据属性名称隐藏它.

任何想法如何避免掩盖?

Ami*_*arg 39

现在从 Spring boot 版本 3 开始,默认情况下所有属性的值都是隐藏的。

要显示 /env 端点中的值,需要在 application.properties 文件中添加以下配置。

management.endpoint.env.show-values=ALWAYS
Run Code Online (Sandbox Code Playgroud)

该属性的有效值如下

ALWAYS
NEVER
WHEN_AUTHORIZED
Run Code Online (Sandbox Code Playgroud)


And*_*son 22

默认情况下,/env端点将隐藏任何财产具有关键的值,忽略大小写,结尾password,secretkey.您可以使用该endpoints.env.keys-to-sanitize属性自定义此项.此属性的值应为以逗号分隔的后缀或正则表达式列表,以匹配属性名称.例如,如果您不关心以key您结尾的键,可以将其设置为:

endpoints.env.keys-to-sanitize=password,secret
Run Code Online (Sandbox Code Playgroud)

这是文档说的:

endpoints.env.keys到了sanitize =密码,秘密密钥,令牌,.证书.,VCAP_SERVICES

应该消毒的钥匙.键可以是属性结尾的简单字符串或正则表达式.

  • 对于 Spring Boot 3,情况不再如此。对于 Spring Boot 3,正确答案是上面 Amit Garg 的答案。 (3认同)

Wel*_*lsh 19

如前所述,默认情况下,Sprint Boot 3+ 隐藏了 env 和 config prop 端点的所有值,您可以在此处的迁移指南中阅读有关此内容的更多信息。

要启用您需要设置以下内容:

management.endpoint.env.show-values=ALWAYS
management.endpoint.configprops.show-values=ALWAYS
Run Code Online (Sandbox Code Playgroud)

或者:

management.endpoint.env.show-values=WHEN_AUTHORIZED
management.endpoint.configprops.show-values=WHEN_AUTHORIZED
Run Code Online (Sandbox Code Playgroud)

但是,这将显示之前屏蔽的所有值,包括密码、凭据等。

为了能够再次屏蔽它们,您可以阅读本文,其中还包括导致行为更改的原始更改的详细信息。


小智 5

对于 Spring Boot 3,放入 pom.xmlmanagement.endpoint.env.show-values=ALWAYS