56. Cloud Foundry 支持

Spring Boot 的 Actuator 模块包括额外的支持,当您将其部署到兼容的 Cloud Foundry 实例时就会激活。 /cloudfoundryapplication路径提供了通往所有NamedMvcEndpoint bean 的备用安全路由。

扩展的支持使 Cloud FoundryManagementUI(例如可用于查看已部署的应用程序的 Web 应用程序)可以使用 Spring BootActuator 信息进行扩充。例如,应用程序状态页面可能包含完整的运行状况信息,而不是典型的“正在运行”或“已停止”状态。

Note

普通用户无法直接访问/cloudfoundryapplication路径。为了使用端点,必须将有效的 UAA 令牌与请求一起传递。

56.1 禁用扩展的 Cloud FoundryActuator 支持

如果要完全禁用/cloudfoundryapplication端点,可以将以下内容添加到application.properties文件中:

application.properties.

management.cloudfoundry.enabled=false

56.2 Cloud Foundry 自签名证书

默认情况下,对/cloudfoundryapplication个端点的安全性验证会对各种 Cloud Foundry 服务进行 SSL 调用。如果您的 Cloud Foundry UAA 或 Cloud Controller 服务使用自签名证书,则需要设置以下属性:

application.properties.

management.cloudfoundry.skip-ssl-validation=true

56.3 自定义安全配置

如果定义自定义安全配置,并且需要扩展的 Cloud FoundryActuator 支持,则应确保/cloudfoundryapplication/**路径已打开。如果没有直接开放的 Route,您的 Cloud Foundry 应用程序 Management 器将无法获取端点数据。

对于 Spring Security,通常会在配置中包含类似mvcMatchers("/cloudfoundryapplication/**").permitAll()的内容:

@Override
protected void configure(HttpSecurity http) throws Exception {
    http
        .authorizeRequests()
            .mvcMatchers("/cloudfoundryapplication/**")
                .permitAll()
            .mvcMatchers("/mypath")
                .hasAnyRole("SUPERUSER")
            .anyRequest()
                .authenticated().and()
        .httpBasic();
}