1
resposta

Meu logout não funciona mais.

Olá pessoal!

Antes quando estava usando o usuário em memória, estava tudo funcionando, mas depois que fiz as mudanças para autenticar o usuário cadastrado no banco de dados, percebi que o logout parou de funcionar. É como se ele submetesse a página mas não acontece nada.

Segue meu método:

@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")); }

Segue meu login / logout:

<span class="mt-3" > <a class="text-ligth" href="/login" sec:authorize="!isAuthenticated()">login</a> <a onclick="document.queryselector('#form-login').submit()" class="text-ligth" href="" sec:authorize="isAuthenticated()">logout</a> <form id="form-login" th:action="@{/logout}" method="post"></form> </span>

O que pode estar acontecendo?

1 resposta

Olá Hugo. Tudo bem?

Comparei seu código com o meu e vi uma pequena diferença nessa linha:

onclick="document.queryselector('#form-login').submit()" class="text-ligth" href="" sec:authorize="isAuthenticated()">logout

O seu href está vazio: href="". O meu está href="#".

Fiz um teste aqui removendo o # do meu href e meu logout também parou de funcionar. Então acredito que se você colocar href="#" seu logout volte a funcionar.