2014-12-23 2 views
0

Извините, ребята, может быть, глупый вопрос.Различия между AuthenticationProvider и AuthenticationEntryPoint

Но мне нужно реализовать некоторую дополнительную логику аутентификации и авторизации в своем веб-приложении, и я не помню, где должны использоваться AuthenticationProvider и AuthenticationEntryPoint.

Взяв некоторые примеры, я обнаружил, что AuthenticationEntryPoint опущен в разделе security:http.

Но есть ситуации, когда AuthenticationProvider не указан (экземпляр по умолчанию предоставляется каркасом?), И требуется только реализация UserDetailsService.

Просьба уточнить некоторые основные понятия?

ответ

5

Короткий ответ:

  1. Реализовать AuthenticationProvider для того, чтобы интегрировать ваш заказ аутентификации схему в Spring Security.
  2. Внесите AccessDecisionVoter, чтобы интегрировать ваш заказ авторизации Схема в Spring Security. Вам может также необходимо реализовать обычай AccessDecisionManager в некоторых случаях, хотя, как правило, достаточно комплектов.

Обратите внимание, что ни один из них является веб-конкретным, в отличие от AuthenticationEntryPoint, что является частью Spring Security Web и Spring Security Core. Основная функция AuthenticationEntryPoint заключается в том, чтобы позволить фреймворку отправлять какой-то «доступ к этому ресурсу, который вы должны аутентифицировать первым» извещения с сервера приложений на веб-клиент. Большинство стандартных уведомлений уже реализованы в Spring Security Web. Например:

  • BasicAuthenticationEntryPoint: Используется с обычной аутентификацией. «Уведомление» - это ответ HTTP 401.
  • LoginUrlAuthenticationEntryPoint: Ваше типичное поведение «перенаправление на страницу входа».
  • CasAuthenticationEntryPoint: Как и предыдущий, перенаправление на общедоступную страницу входа для выполнения SSO через CAS.
  • Http403ForbiddenEntryPoint: Уведомление - это всего лишь ответ HTTP 403. Это полезно, если вы используете предварительную аутентификацию (например, сертификаты клиента X.509), а учетные данные пользователя не предоставляют доступ.
  • ...

Как вы можете видеть, если ваше поведение требуется не слишком конкретным, вы должны не должны обеспечить свою собственную реализацию AuthenticationEntryPoint.

Смежные вопросы