Spring Boot Actuator 空响应

Spring Boot Actuator empty response

Spring 使用以下网络安全配置启动应用程序:

@EnableWebSecurity
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter
{
   @Override
   public void configure(WebSecurity web) throws Exception
   {
      web.ignoring().antMatchers("/actuator/**");
   }

   @Override
   protected void configure(HttpSecurity http) throws Exception
   {
      http.authorizeRequests().antMatchers("/").permitAll();

      http.csrf().disable();
   }
}

application.properites:

management.endpoints.web.exposure.include=health,info,loggers
management.endpoints.web.base-path=/actuator
management.endpoint.health.show-details=always

启动应用程序后,我可以在日志中看到:

[ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 3 endpoint(s) beneath base path '/actuator'

然后:

bash-5.1$ curl -I --header 'Content-Type: application/json' -X "GET" "http://localhost:8083/actuator/health"
HTTP/1.1 200
Content-Type: application/vnd.spring-boot.actuator.v3+json
Transfer-Encoding: chunked
Date: Thu, 09 Dec 2021 22:26:48 GMT

有没有想过为什么它会空空如也?

因为:

curl --help all

...说:

...
 -I, --head               Show document info only
...

;)


因此:

curl --header 'Content-Type: application/json' -X "GET" "http://localhost:8083/actuator/health"

(省略-I)我们得到预期的:

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   171    0   171    0     0  32540      0 --:--:-- --:--:-- --:--:-- 42750
{"status":"UP","components":{"diskSpace":{"status":"UP","details":{"total":1991571578880,"free":1684774006784,"threshold":10485760,"exists":true}},"ping":{"status":"UP"}}}