1
resposta

problemas para logar na aplicação

Amigos, boa noite. Consigo salvar usuários com suas senhas criptografadas (encoder) no banco de dados, mas, não consigo "logar" na aplicação, alguém consegue visualizar o motivo? OBS: abaixo, o código com as linhas comentadas relativas a inclusão de novos usuários para evitar ficar criando usuários novos no banco, mas, independente de comentar ou não, não consigo logar na aplicação.

package br.com.alura.mvc.mudi;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

@Autowired
private DataSource dataSource;

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

            http
            .authorizeRequests()
                .anyRequest().authenticated()
            .and()
            .formLogin(form -> form
                .loginPage("/login")
                .defaultSuccessUrl("/home", true)
                .permitAll()
            )
            .logout(logout -> logout.logoutUrl("/logout"));
        }

@Override

protected void configure(AuthenticationManagerBuilder auth) throws Exception {
    BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();

// UserDetails user =// User.builder() // .username("mario") // .password(encoder.encode("mario")) // .roles("ADM") // .build();

    auth
    .jdbcAuthentication()
    .dataSource(dataSource)
    .passwordEncoder(encoder);

// .withUser(user); } }

1 resposta

Olá Aarão, tudo bem?

Pelo código que você compartilhou, parece que você está utilizando o Spring Security para autenticar usuários em sua aplicação. Uma possível razão para você não estar conseguindo logar na aplicação pode ser a falta de usuários cadastrados no banco de dados. Você mencionou que consegue salvar usuários com senhas criptografadas, mas não mencionou se esses usuários estão sendo salvos no banco de dados.

Verifique se os usuários estão sendo salvos corretamente no banco de dados e se as informações de login estão corretas.

Outra possível razão pode ser a configuração do Spring Security. Verifique se as configurações estão corretas e se você está utilizando o método correto para autenticar os usuários.

Espero ter ajudado e bons estudos!