【问题标题】:Spring Boot Actuator hides property values in env endpointSpring Boot Actuator 隐藏 env 端点中的属性值
【发布时间】:2015-04-02 17:26:31
【问题描述】:

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

"applicationConfig: [classpath:/config/application.properties]" : {
    "rest.baseurl" : "http://85.214.247.80:9912",
    "projectKey" : "******",

我也不知道为什么。我的申请中没有任何提示,那就是他应该隐藏它。我想有一些启发式方法可以根据属性名称隐藏它。

任何想法如何避免掩蔽?

【问题讨论】:

    标签: configuration spring-boot


    【解决方案1】:

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

    endpoints.env.keys-to-sanitize=password,secret
    

    documentation 是这么说的:

    endpoints.env.keys-to-sanitize=password,secret,key,token,.凭据。,vcap_services

    应该清理的键。键可以是属性以或正则表达式结尾的简单字符串。

    【讨论】:

      【解决方案2】:

      你可以像@Andy Wilkinson 提到的那样去做。但是您会在/env 端点的applicationConfig 部分看到"endpoints.env.keys-to-sanitize" 属性值为"password,secret"

      为避免这种情况,您也可以使用代码设置属性:

      public class MyApp {
          @Autowired
          private EnvironmentEndpoint envEndPnt;
      
          @PostConstruct
          public void initApplication() {
               envEndPnt.setKeysToSanitize("password","secret");
          } 
      }
      

      因此,一旦所有初始化完成并调用 initApplication,您将拥有手动设置属性的 EnvironmentEndPoint

      【讨论】:

        【解决方案3】:

        现在要设置的属性是management.endpoint.env.keys-to-sanitize。要显示所有属性,只需将其设置为空,例如management.endpoint.env.keys-to-sanitize=

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-06-01
          • 2017-09-10
          • 2020-09-15
          • 2016-09-07
          • 2021-04-24
          • 1970-01-01
          • 2015-07-10
          • 2020-06-01
          相关资源
          最近更新 更多