Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

actuator/info vazio

Olá,

Gostaria de saber porque está retornando um JSON vazio quando faço a requisição para actuator/info?

Obs.: Se faço requisições para actuator/health funciona perfeitamente.

{
    "status": "UP",
    "components": {
        "db": {
            "status": "UP",
            "details": {
                "database": "H2",
                "validationQuery": "isValid()"
            }
        },
        "diskSpace": {
            "status": "UP",
            "details": {
                "total": 239457370112,
                "free": 151104856064,
                "threshold": 10485760,
                "exists": true
            }
        },
        "ping": {
            "status": "UP"
        }
    }
}

No meu SecurityConfiguration, inclui nas exceções de bloqueio o /actuator/**:

    @Override
    protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests()
            .antMatchers(HttpMethod.GET, "/topicos").permitAll()
            .antMatchers(HttpMethod.GET, "/topicos/*").permitAll()
            .antMatchers(HttpMethod.POST, "/auth").permitAll()
            .antMatchers(HttpMethod.GET, "/swagger-ui/**").permitAll()
            .antMatchers(HttpMethod.GET, "/actuator/**").permitAll()
            .antMatchers(HttpMethod.DELETE, "/topicos/*").hasRole("MODERADOR")
            .anyRequest().authenticated()
            .and().csrf().disable()
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
            .and().addFilterBefore(new AutenticacaoViaTokenFilter(tokenService, usuarioRepository), UsernamePasswordAuthenticationFilter.class);

    }

No meu arquivo application.properties, incluí as configurações do actuator conforme mostrado na aula:

# actuator
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*
info.app.name=@project.name@
info.app.version=@project.version@
info.app.encoding=@project.build.sourceEncoding@
info.app.java.version=@java.version@

No meu pom.xml ele está devidamente incluído.

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

Alguém por gentileza pode me auxiliar a entender porque o info devolve o JSON vazio?

2 respostas
solução!

Oi Vinicius,

Teve mudanças nas últimas versões do Spring Boot e agora precisa adicionar mais essa propriedade:

management.info.env.enabled=true

Bons estudos!

Sim, é verdade. Percebi nas notas da release 2.6 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.6-Release-Notes#actuator-env-infocontributor-disabled-by-default que isso mudou. Era só ter lido melhor, obrigado Rodrigo!