Spring Boot Actuator 隐藏了 env 端点中的 属性 值
Spring Boot Actuator hides property values in env endpoint
我的问题是,env
的 Spring-Boot Actuator 端点实际上用这样的开头替换了一些属性:
"applicationConfig: [classpath:/config/application.properties]" : {
"rest.baseurl" : "http://85.214.247.80:9912",
"projectKey" : "******",
我不知道为什么。我在我的申请中没有任何暗示他应该隐藏它。我想有一些启发式方法可以根据 属性 名称隐藏它。
任何想法如何避免屏蔽?
默认情况下,/env
端点将隐藏任何 属性 的值,其键忽略大小写,以 password
、secret
或 key
。您可以使用 endpoints.env.keys-to-sanitize
属性 自定义它。 属性 的值应该是以逗号分隔的后缀或正则表达式列表,以匹配 属性 名称。例如,如果您不关心以 key
结尾的键,您可以将其设置为:
endpoints.env.keys-to-sanitize=password,secret
documentation 是这么说的:
endpoints.env.keys-to-sanitize=password,secret,key,token,.credentials.,vcap_services
Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions.
你可以像@Andy Wilkinson 提到的那样去做。但是您会在 /env
端点的 applicationConfig
部分看到值为 "password,secret"
的 "endpoints.env.keys-to-sanitize"
属性。
为避免这种情况,您也可以使用代码设置 属性:
public class MyApp {
@Autowired
private EnvironmentEndpoint envEndPnt;
@PostConstruct
public void initApplication() {
envEndPnt.setKeysToSanitize("password","secret");
}
}
因此,一旦完成所有初始化并调用 initApplication
,您将获得手动设置 属性 的 EnvironmentEndPoint
。
现在要设置的属性是management.endpoint.env.keys-to-sanitize
。要显示所有属性,只需将其设置为空即可,例如management.endpoint.env.keys-to-sanitize=
我的问题是,env
的 Spring-Boot Actuator 端点实际上用这样的开头替换了一些属性:
"applicationConfig: [classpath:/config/application.properties]" : {
"rest.baseurl" : "http://85.214.247.80:9912",
"projectKey" : "******",
我不知道为什么。我在我的申请中没有任何暗示他应该隐藏它。我想有一些启发式方法可以根据 属性 名称隐藏它。
任何想法如何避免屏蔽?
默认情况下,/env
端点将隐藏任何 属性 的值,其键忽略大小写,以 password
、secret
或 key
。您可以使用 endpoints.env.keys-to-sanitize
属性 自定义它。 属性 的值应该是以逗号分隔的后缀或正则表达式列表,以匹配 属性 名称。例如,如果您不关心以 key
结尾的键,您可以将其设置为:
endpoints.env.keys-to-sanitize=password,secret
documentation 是这么说的:
endpoints.env.keys-to-sanitize=password,secret,key,token,.credentials.,vcap_services
Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions.
你可以像@Andy Wilkinson 提到的那样去做。但是您会在 /env
端点的 applicationConfig
部分看到值为 "password,secret"
的 "endpoints.env.keys-to-sanitize"
属性。
为避免这种情况,您也可以使用代码设置 属性:
public class MyApp {
@Autowired
private EnvironmentEndpoint envEndPnt;
@PostConstruct
public void initApplication() {
envEndPnt.setKeysToSanitize("password","secret");
}
}
因此,一旦完成所有初始化并调用 initApplication
,您将获得手动设置 属性 的 EnvironmentEndPoint
。
现在要设置的属性是management.endpoint.env.keys-to-sanitize
。要显示所有属性,只需将其设置为空即可,例如management.endpoint.env.keys-to-sanitize=