La desconnection no funciona en la aplicación Spring Boot (no es compatible con el método POST)

Tengo una aplicación Spring Boot con la siguiente configuration

@Configuration @EnableWebSecurity open class WebSecurityConfig : WebSecurityConfigurerAdapter() { override fun configure(http:HttpSecurity) { http .authorizeRequests() .antMatchers("/css/**", "/js/**", "/fonts/**") .permitAll().and() .formLogin() .loginPage("/login") .permitAll() .and() .authorizeRequests() .anyRequest().authenticated() .and() .logout() .logoutSuccessUrl("/login") .permitAll() .and().csrf().disable() } @Autowinetworking fun configureGlobal(auth:AuthenticationManagerBuilder) { auth .inMemoryAuthentication() .withUser("usr@provider.com").password("test").roles("USER") } } 

Cuando bash cerrar la session, aparece el error

Hubo un error inesperado (tipo = Método no permitido, estado = 405). El método de request 'POST' no es compatible

¿Cómo puedo arreglarlo?

Cómo reproducir

  1. Mira el código de este repository .
  2. gradle bootRun
  3. Vaya a http://localhost:8080 , ingrese usr@provider.com y test como nombre de usuario y contraseña, respectivamente.
  4. Presione el button de cerrar session.

Actualización 1: Esto tampoco funciona.

 http .authorizeRequests() .antMatchers("/css/**", "/js/**", "/fonts/**", "/logout‌​") .permitAll().and() .formLogin() .loginPage("/login") .permitAll() .and() .authorizeRequests() .anyRequest().authenticated() .and() .csrf().disable() 

No estoy familiarizado con Thymeleaf, pero al less esto te dará una idea.

El problema no es su SecurityConfig sino el

th: action = "@ {/ logout}"

(no networkingirigir a / cerrar session, verifique la pestaña Red en Chrome o Firefox).

Si lo reemploop con

acción = "/ logout"

Entonces funciona perfectamente.

¿Has intentado especificar la ruta de cierre de session?

 .logout() .logoutSuccessUrl("/login") .logoutRequestMatcher(new AntPathRequestMatcher("/logout")) .permitAll() 

Puede agregar "/logout" a la primera sección de las routes permitidas.

¿Pero por qué usas a con un para el cierre de session en absoluto? Puede usar un enlace simple () que emitirá una request GET.