8
respostas

Autenticação do actuator via basic e usuário jwt

Olá!

Estou com problemas para autenticar o actuator via basic auth e continuar acessando as APIs via JWT, o actuator é autenticado entretanto os demais endpoints retornam 500, segui o código sugerido na dúvida:

https://cursos.alura.com.br/forum/topico-sprint-boot-admin-com-a-regra-de-seguranca-86290

Código de autenticação do Actuator:

@Configuration
@Order(1)
public class ActuatorSecurityConfigurations extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
                .withUser("actuator").password(passwordEncoder().encode("actuator123"))
                .authorities("ROLE_ADMIN");
    }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/actuator/**").hasRole("ADMIN")
                .and().csrf().disable().httpBasic();
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}

O código abaixo ao invés de retornar o usuário do JWT está retornando um o value: "anonymousUser"

SecurityContextHolder.getContext().getAuthentication().getPrincipal()
8 respostas

Oi Douglas,

Essa parte é meio complicada mesmo.

Para tentar descobrir o problema precisaria ver as outras classes de configurações.

Você teria como disponibilizar o código fonte do projeto?

Oi Rodrigo

É um projeto pessoal inspirado no nosso projeto feito no curso, existe algum email para que eu possa enviar o projeto? Pois ele está em um repositório privado. Se não possuir eu posso subir no github.

pode mandar para:

Poderia confirmar o recebimento? Tive problemas por ser zip antes.

Recebido!

Dei uma olhadinha no projeto, mas não identifiquei problemas nas configurações.

O problema ocorre então não com o Actuator, mas ao tentar acessar a API pela aplicação cliente?

Antes de inserir a autenticação por @Order do Actuator as outras apis recuperavam o contexto do jwt corretamente, entretanto quando o @Order(1) está na config do Actuator não é mais possível recuperar o contexto.

Requisição de Autenticação:

POST - localhost:5000/auth

{
    "credencial":"Mosquera",
    "senha":"12345"
}

endpoint de exemplo que não recupera mais o contexto:

GET - localhost:5000/api/tsb/user