Может ли Spring Security поддерживать несколько точек входа?

Я имею в виду нужно другое:

  • URL входа
  • URL выхода
  • URL времени сеанса
  • провайдер аутентификации
  • страница ошибки
  • CSS

для другой точки входа.

Это возможно?

3 ответа

Начиная с версии 3.1.0 (которая в настоящее время является бета-версией) будет поддерживаться несколько <http> элементы в пространстве имен.

Итак, короткий ответ:

В 3.1.х да.

В 3.0.5. ВЫПУСКА нет.

Дольше aswer:

Вот дополнительная информация, проверьте ссылки в комментариях также.


Однажды у меня была похожая проблема, так как у меня было несколько точек входа.

Хорошим способом IMO было бы создание новой страницы входа, которая решает, какую страницу входа перенаправить или даже вызывает логику других точек входа. Тогда вы можете указать весну на новую страницу.

Я почти уверен, что это можно сделать внутри цепочки фильтров, но я бы не советовал этого делать, так как вам потребуется много ручного кодирования и определения бинов. Как правило, я не думаю, что 3.0.5 был разработан для нескольких точек входа.

С несколькими <http../> элементы, вы можете достичь большинства того, что вы хотите, но менеджер аутентификации будет распространен, и это означает, что поставщики аутентификации будут общими. См. Проблему, с которой столкнулся @David Parks, в публикации Spring Security 3.1.0.RC1: с несколькими элементами, почему я могу зарегистрировать только один менеджер аутентификации?,

Вы можете увидеть мои ответы на похожие вопросы, такие как Настройка Spring Security 3.x для нескольких точек входа и Аутентификация пользователя с использованием внешнего веб-сервиса в граалях для разработки пользовательского кода для выполнения определенных поставщиков аутентификации для точки входа. Это также может быть реализовано в 3.0.5.

Вы можете реализовать решение в 3.0.5 без нескольких <http../> элементы, но вам нужно будет разработать собственный код для обработки страниц выхода и ошибок.

Есть org.springframework.security.web.authentication.DelegatingAuthenticationEntryPointс 3.0.2. Это может помочь.

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