Проверка подлинности на основе Spring Security для службы REST - PullRequest
4 голосов
/ 02 мая 2011

Я нахожусь в процессе реализации службы REST с Spring MVC и Spring Security (оба 3.0.5). Я использую пространство имен безопасности, а не определяю бины Spring вручную. У меня возникли некоторые трудности с процессом входа в систему. Я пытаюсь добиться этого:

a POST для / логина URL начнет процесс аутентификации.

Не должно быть реальной формы, поэтому я не использую элемент form-login ... . Без этого элемента UsernamePasswordAuthenticationFilter отсутствует в цепочке безопасности, поэтому я решил добавить его через элемент custom-filter ... и продолжить с этого момента.

В этом суть, а не для вопросов:

  • это хороший способ реализовать аутентификацию?
  • как именно мне добавить этот фильтр и на какой позиции в цепочке фильтров?
  • Достаточно ли добавить этот фильтр или мне нужно что-то еще?

Любые отзывы приветствуются. Благодарю.

1 Ответ

2 голосов
/ 12 июля 2011

В общем, если вы хотите настроить свою аутентификацию, вы должны использовать конфигурацию компонента.Я нашел конфигурацию на основе пространства имен, подходящую только для демонстрационных приложений.Вот мои ответы на ваши вопросы:

1) Как я уже говорил выше, вы должны использовать бобы.Прочтите эту статью для получения дополнительной информации: http://blog.springsource.com/2010/03/06/behind-the-spring-security-namespace/ Но то, что вы ищете, также будет работать, с требованиями, которые вы упомянули до сих пор.
2) Это должно быть добавлено так:
<http><br> <custom-filter position="FORM_LOGIN_FILTER" ref="myFilter" /><br> </http><br> <beans:bean id="myFilter" class="org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter"/>

3) Обратите внимание, что этот фильтр также будет выполнять перенаправление по умолчанию на исходный запрос.Таким образом, если вам не нужно перенаправление, а простой HTTP 200 должен быть возвращен клиенту, вы должны реализовать свой собственный AuthenticationProcessingFilter.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...