Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Erro 404 ao tentar fazer login

Ao inserir o username e o password obtenho o erro:

There was an unexpected error (type=Not Found, status=404). No message available

Código:

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {


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

        http.authorizeRequests()
                .anyRequest().authenticated()
            .and()
                .formLogin(form -> form
                    .loginPage("/login")
                    .permitAll());
    }

    @Bean
    @Override
    protected UserDetailsService userDetailsService() {
        UserDetails user =
                User.withDefaultPasswordEncoder()
                    .username("joao")
                    .password("joao")
                    .roles("ADM")
                    .build();
        return new InMemoryUserDetailsManager(user);
    }
@Controller
public class LoginController {

    @GetMapping
    @RequestMapping("/login")

    public String login() {
        return "login";
    }
}
<html>
<head th:replace="~{base :: head}"></head>
<body>
    <div th:replace="~{base :: logo}"></div>

    <div class="container">
        <div th:replace="~{base :: titulo('Login')}"></div>


        <div class="card mb-3">
            <form th:action="@{/login}" method="post">

                <div class="form-group">
                    <label for="username">Usuário</label>
                    <input name="username" class="form-control" placeholder="usuário" />
                </div>

                <div class="form-group">
                    <label for="password">Senha</label>
                    <input type="password" name="password" class="form-control" placeholder="senha" />
                </div>
                <button class="btn btn-primary" type="submit"> Login </button>
            </form>
        </div>
    </div>

</body>
</html>
1 resposta
solução!

Oie Gabriel, tudo bem contigo?

Esse erro acontece por conta da aplicação não saber para qual página você deve ser encaminhado após fazer o login.

Dentro da classe WebSecurityConfig, faça a seguinte alteração:

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .anyRequest().authenticated()
                .and()
                .formLogin(form -> form
                        .loginPage("/login")
                        .defaultSuccessUrl("/home", true) // essa linha que vai resolver seu problema, ela define qual é a página padrão da sua aplicação, então sempre que você logar ele vai te direcionar para a /home
                        .permitAll()
                ).logout(logout -> logout.logoutUrl("/logout")
        ).csrf().disable();
    }

Espero ter conseguido resolver seu problema, qualquer coisa fico a disposição :)

Bons estudos!