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

Querido instrutor Canapelle, está dando credenciais inválidas ao logar

Olá, tudo bem? Eu estou fazendo uma abordagem diferente do curso, que em suma segue quase o mesmo protocolo mas estou usando o H2 em vez do MySQL e o Swagger-Ui em vez de Postman. Ao tentar logar, eu criei as propriedades do web.security.spring username 'root' e password 'root' Quando logo, diz 'usuário ou senha errada' Estou tentando quebrar a cuca nesse projeto, mas sem sucesso. Gostaria de um apoio:

https://github.com/diegoforlin/ChallengeV5.git

No read me há as apis utilizadas, tanto o h2 quanto o Swagger-ui. A senha é root e o pass é root.

2 respostas

Adicionei o package "infra" no Challenge, e com essa classe, ainda não deu:

package com.challengescrd.challenge.infra;

import io.swagger.models.HttpMethod;
import jakarta.servlet.Filter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;

@Configuration
@EnableWebSecurity
public class SecurityConfigurations {
    @Primary
    public SecurityFilterChain securityFilterChain(HttpSecurity http, Filter securityFilter) throws Exception {
        return http.csrf(csrf -> csrf.disable())
                .sessionManagement(sm -> sm.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
                .authorizeHttpRequests(req -> {
                    req.requestMatchers(String.valueOf(HttpMethod.POST), "/login").permitAll();
                    req.anyRequest().authenticated();
                })
                .addFilterBefore(securityFilter, UsernamePasswordAuthenticationFilter.class)
                .build();
    }

    @Bean
    public AuthenticationManager authenticationManager(AuthenticationConfiguration configuration)
            throws Exception {
        return configuration.getAuthenticationManager();
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}
solução!

Resolvido.