2008-10-20 14 views
15

Что такое подходящий способ интеграции SpringSecurity с Capcha?Интеграция Captcha с Spring Security

У меня есть следующий прецедент: Когда пользователь будет пытаться войти в систему, если мы не смогли войти в систему N раз, будет отображаться captcha, поэтому аутентификация будет использовать три параметра: имя пользователя, пароль, captcha. Но Spring Security не поддерживает встроенную обработку Captcha.

Я только начинаю думать о реализации. И есть следующие варианты:

  • Добавление отдельного фильтра безопасности в стеке фильтра Spring Security,
  • Полностью переписать AuthenticationProcessingFilter поддержать некоторые Captcha
  • Используйте некоторые программные аутентификации с перехватом капчи логики, а затем перенося имя пользователя и пароль для Spring Охрана

Как реализация Captcha Я думаю о JCaptcha, но что вы делаете?

ответ

5

В качестве альтернативы использованию JCaptcha, если вы хотите использовать reCAPTCHA Service на вашем сайте, а затем проверить свободный раздел 4.4 (direct PDF link) новой Spring in Practice книги (в настоящее время в бета-версии).

Это показывает интеграцию с Spring MVC и Spring Validation. Поскольку интеграция находится на интерфейсе, с внешними API-интерфейсами Spring Security на самом деле не появляется здесь.

Я не уверен, что ваш случай использования? Надеетесь ли вы использовать каптчи в качестве альтернативы аутентификации, чтобы доказать «человечность»?

+1

Я отредактировал свой вопрос, чтобы сделать его более понятным по поводу ситуации. Мне нужно отправить 3 поля одновременно: captcha, имя пользователя и пароль. – 2008-10-24 08:10:28

0

Я выполнил интеграцию с reCaptcha и Spring Security (Spring Web Flow + JSF), определив пользовательский фильтр безопасности. Возможно, он не самый элегантный, но работает хорошо. Вы можете посмотреть на моем блоге - к сожалению, по-польски, но, возможно, поможет Вам или кому-то ...

http://marioosh.net/blog/?p=1087

5

Посмотрите на эту статью: Spring Security 3: Integrating reCAPTCHA Service.

Используется два фильтра, чтобы сделать интеграцию reCAPTCHA максимально бесшовной и ненавязчивой. Это означает, что существующая реализация Spring Security не будет нарушена. Нет необходимости касаться существующих классов