Spring 引导注销然后登录重定向到错误 URL

Spring Boot Logout then Login Redirects to Wrong URL

所以我添加了一个新的控制器方法,可以在没有注销确认的情况下注销用户,如下所示:

    public String quickLogout (HttpServletRequest request, HttpServletResponse response) {
        Authentication auth = SecurityContextHolder.getContext().getAuthentication();
        if (auth != null){
            new SecurityContextLogoutHandler().logout(request, response, auth);
        }
        return "redirect: /login?logout";
    }

这按预期工作,并将用户注销,但每当调用此方法并尝试重新登录时,我都会被定向到此 URL:http://localhost:8080/%20/login?logout

它应该指向:http://localhost:8080/

正常注销确认登录没有这个错误,应用启动时第一次登录也没有。我使用的是基本的 Spring 安全登录,所以我不确定为什么会这样。

想法?

感谢 Bob Tang 的评论:是的,重定向中使用了全白 space,而不是:

return "redirect: /login?logout";

使用:

return "redirect:/login?logout";

否则使用冒号和第一个正斜杠之间的 space,搞乱导航。