2
respostas

Problemas com localhost:8080/topicos

Por favor, vi que este assunto esta em muitos tópicos no fórum, mas nada com uma conclusão que ajude a resolver o problema.

Passei por todas as fases, subi os containers:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Consegui fazer o processo do maven:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Consegui fazer a compilação do start.sh (depois de muita luta), porém quando acesso a url localhost:8080/topicos sou redirecionado para a url localhost:8080/login

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Como consigo resolver este problema?

2 respostas

Boa noite.

O comportamento que você descreveu (redirecionamento de /topicos para /login) é normal quando Spring Security está habilitado na aplicação e não foi feita nenhuma configuração de autenticação personalizada. O sistema entende que /topicos é uma rota protegida e exige login. =O que fazer para resolver

Você tem três opções, dependendo do que quer:

=Apenas testar a API sem login

Desabilite a segurança para as rotas, no arquivo de configuração do Spring Security. Exemplo:

@Configuration
@EnableWebSecurity
public class SecurityConfigurations extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/**").permitAll() // permite tudo, cuidado em produção
            .and().csrf().disable();
    }
}

Configurar autenticação com token (JWT)

Se o projeto do curso envolve segurança com token (provavelmente sim), você precisa:

  • Fazer login com POST /auth enviando JSON com usuário/senha.
  • Receber o token JWT.
  • Usar esse token no Authorization nos próximos acessos à API, assim:
Authorization: Bearer SEU_TOKEN

Se quiser, posso te ajudar a montar esse curl ou configurar o Postman.

Criar um usuário para login manual

Se quiser entrar pela tela do /login, você precisa saber o login e senha configurados. Normalmente, isso está no application.properties ou numa classe de configuração, por exemplo:

spring.security.user.name=admin
spring.security.user.password=admin

Ou pode estar codificado via UserDetailsService.

Olá! Eu tbm já tinha tentado achar alguma solução via IA, mas não tinha dado certo. Fiz o teste rápido com estas soluções, mas aparentemente não esta resolvendo o problema.

Para quem quiser testar tbm, a solução do código foi testada da seguinte forma, por mim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Já a última sugestão, de criar um usuário para login manual, foi testada no mesmo lugar onde a IA sugeriu que estaria, em application.properties