Spring Security страница входа в систему против входа в системуProcessingURL

в чем разница между loginPage и loginProcessingURL. .formLogin().loginPage("/login").usernameParameter("phone-number").passwordParameter("password")

Кажется, что loginProcessingURL похож на метод post, когда пользователь отправляет данные на странице входа, но когда я удаляю, он также работает нормально. В чем важность loginProcessingURL и чем он отличается от loginPage?

10
0
11 016
2

Ответы 2

Строка loginPage("/login") указывает Spring Security

  • когда требуется аутентификация, перенаправьте браузер на / login
  • мы отвечаем за отображение страницы входа, когда запрашивается / login
  • если попытка аутентификации не удалась, перенаправьте браузер на / login? ошибка (поскольку мы не указали иное)
  • мы отвечаем за отображение страницы сбоя, когда ошибка / login? просил
  • когда мы успешно выходим из системы, перенаправляем браузер на / login? logout (поскольку мы не указали иное)
  • мы отвечаем за отображение страницы подтверждения выхода, когда / login? требуется выход из системы

А ТАКЖЕ

.loginProcessingUrl("/login/process")

сообщает Spring Security обрабатывать отправленные учетные данные при отправке по указанному пути и, по умолчанию, перенаправлять пользователя обратно на страницу, с которой пользователь пришел. Он не будет передавать запрос Spring MVC и вашему контроллеру.

Обратитесь к документация

Итак, в контексте безопасности, если я не аутентифицированный пользователь и если я пытаюсь получить доступ к аутентифицированному URL-адресу, тогда он должен отображать право .loginPage ("/ login"), но почему он пытается перейти к loginProcessingUrl ("/ login / process "). Я создаю пустой контекст безопасности SecurityContextHolder.createEmptyContext () в своем фильтре. Я добавил фильтр в свой SecurityConfig http.addFilter (новый SecurityContextPersistenceFilter (securityRepository)); но всякий раз, когда я пытаюсь получить доступ к аутентифицированному URL-адресу непосредственно в браузере, он перенаправляет меня на loginProcessingUrl ??

Ashwini Jha 06.11.2018 18:57

«Он не будет передавать запрос Spring MVC и вашему контроллеру». Это неправда. Проверено мной

Andrey M. Stepanov 12.12.2018 14:01

Пусть вам поможет следующий фрагмент кода из исходного кода Spring Security :

loginPage the login page to redirect to if authentication is required
loginProcessingUrl the URL to validate username and password
 DEFAULT_LOGIN_PAGE_URL = "/login"
/**
     * Updates the default values for authentication.
     *
     * @throws Exception
     */
    protected final void updateAuthenticationDefaults() {
        if (loginProcessingUrl == null) {
            loginProcessingUrl(loginPage);
        }
             //...
        }

Другие вопросы по теме