es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Respuesta vacía de Spring Boot Actuator

Aplicación Spring Boot con la siguiente configuración para la seguridad web:

@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.properties:

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

Después de iniciar la aplicación, puedo ver en los registros:

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

Pero luego:

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

¿Algún pensamiento sobre por qué regresa vacío?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Según la configuración proporcionada, el punto final /actuator/** está excluido de la configuración de seguridad web de Spring Security utilizando web.ignoring().antMatchers("/actuator/**") en la clase WebSecurityConfiguration. Por lo tanto, los puntos finales del actuator no estarán protegidos con la autenticación HTTP Basic proporcionada por Spring Security.

    Sin embargo, el problema aquí parece ser que el punto final de salud está devolviendo una respuesta vacía. Esto podría deberse a varias razones, como una configuración incorrecta de los indicadores de salud o del estado de salud, o puede que no haya indicadores de salud disponibles.

    Para solucionar este problema, algunos pasos posibles son:
    – Verificar el punto final del actuator http://localhost:8083/actuator` para asegurarse de que está en funcionamiento y que el punto final de salud es accesible.
    - Asegurarse de que haya información de salud disponible. Si no se proporcionan o configuran indicadores de salud, el punto final de salud devolverá una respuesta vacía.
    - Verificar la propiedad
    management.health.status.order`, que se utiliza para establecer el orden de las comprobaciones de estado de salud. Asegurarse de que los indicadores de salud estén en el orden correcto o intentar reordenarlos.
    – Revisar los registros en busca de mensajes de error relacionados con la verificación de salud o los puntos finales del actuator.

    En general, dado que el punto final de salud se expone en el archivo application.properties como management.endpoints.web.exposure.include=health, debería ser accesible mediante curl utilizando el comando curl -I --header 'Content-Type: application/json' -X "GET" "http://localhost:8083/actuator/health" con la respuesta esperada HTTP/1.1 200.

Comments are closed.