我的问题是,我的env
的Spring-Boot Actuator端点实际上用这样的开头替换了一些属性:
"applicationConfig: [classpath:/config/application.properties]" : {
"rest.baseurl" : "http://85.214.247.80:9912",
"projectKey" : "******",
我不知道为什么。我的应用程序中没有任何暗示,他应该隐藏它。我想有一些启发式方法可以根据属性名称隐藏它。
任何想法如何避免掩盖?
答案 0 :(得分:20)
默认情况下,/env
端点会隐藏任何属性的值,其中的键忽略大小写,以password
,secret
或key
结尾。您可以使用endpoints.env.keys-to-sanitize
属性对其进行自定义。此属性的值应为以逗号分隔的后缀或正则表达式列表,以匹配属性名称。例如,如果您不关心以key
结尾的密钥,则可以将其设置为:
endpoints.env.keys-to-sanitize=password,secret
这是documentation所说的:
endpoints.env.keys到了sanitize =密码,保密,钥匙,令牌。凭证。,VCAP_SERVICES
应该消毒的钥匙。键可以是属性结束的简单字符串或正则表达式。
答案 1 :(得分:2)
你可以像@Andy Wilkinson提到的那样做。但是,您会在"endpoints.env.keys-to-sanitize"
端点的"password,secret"
部分看到applicationConfig
属性,其值为/env
。
为避免这种情况,您也可以使用代码设置属性:
public class MyApp {
@Autowired
private EnvironmentEndpoint envEndPnt;
@PostConstruct
public void initApplication() {
envEndPnt.setKeysToSanitize("password","secret");
}
}
因此,一旦完成所有初始化并调用initApplication
,您将拥有手动设置属性的EnvironmentEndPoint
。