我无法用弹簧靴注销

时间:2021-01-04 20:42:41

标签: spring-boot spring-security

我遇到了 Spring Boot 注销的问题。

@Override
protected void configure(HttpSecurity http) throws Exception {
    http.authorizeRequests()
            .anyRequest()
            .authenticated()
            .and()
            .formLogin()
            .loginPage("/login")
            .defaultSuccessUrl("/", true)
            .permitAll()
            .and()
            .httpBasic();

    // Logout
    http.logout().deleteCookies("remove")
            .invalidateHttpSession(false)
            .logoutUrl("/logout").permitAll()
            .logoutSuccessUrl("/login").permitAll();

}

登录后,如果我尝试访问“http://localhost:8080/logout”,它会失败:

<块引用>

白标错误页面此应用程序没有明确的映射 /error,因此您将其视为后备。

Mon Jan 04 17:40:21 BRT 2021 出现意外错误(type=Not 已找到,状态=404)。没有可用的消息

--编辑 现在尝试通过 POST 访问注销,会导致错误 403,有时会导致 401。

Javascript:

function logout() {
    $.post("/logout", {});
}

HTML:

<li class="nav-item">
    <a href="javascript:logout()" class="nav-link">Sair</a>
</li>

1 个答案:

答案 0 :(得分:1)

由于您使用的是 HTTP Basic,请尝试清除浏览器历史记录。另一种选择是使用隐身模式。

原因是 HTTP Basic 没有有效的注销方式。它会一直存在,直到您关闭窗口或清除浏览器缓存。

这不是 Spring 的问题,而是 HTTP Basic 如何工作的问题。

关于基本身份验证的相关问题。 How to log out user from web site using BASIC authentication?

相关问题