Spring Boot Logout затем логин перенаправляет на неправильный URL - PullRequest
0 голосов
/ 12 марта 2020

Итак, я добавил новый метод контроллера, который выводит пользователя из системы без подтверждения выхода из системы, как показано ниже:

    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/

Обычный выход из системы с подтверждением, после чего логин не имеет эта ошибка, и первый вход в систему при запуске приложения тоже не имеет. Я использую базовый c Spring Security Login, поэтому я не уверен, почему он это делает.

Мысли?

1 Ответ

0 голосов
/ 17 марта 2020

Слава Бобу Тангу в комментариях: Да, все пробелы используются в перенаправлении, поэтому вместо:

return "redirect: /login?logout";

Использование:

return "redirect:/login?logout";

Пробел между двоеточием и в противном случае используется first forward sla sh, что портит навигацию.

...