Spring Boot注销,然后登录重定向到错误的URL

问题描述 投票:0回答:1

因此,我添加了一个新的控制器方法,该方法无需注销确认即可注销用户,如下所示:

    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 Security登录,所以不确定为什么要这样做。

想法?

spring-boot spring-security logout
1个回答
0
投票

对评论中的Bob Tang表示敬意:是的,所有空格都在重定向中使用,因此不是:

return "redirect: /login?logout";

用途:

return "redirect:/login?logout";

否则将使用冒号和第一个正斜杠之间的空间,从而弄乱了导航。

© www.soinside.com 2019 - 2024. All rights reserved.