Интеграция Captcha с помощью Spring Безопасность
Каков подходящий способ интеграции SpringSecurity с Capcha?
У меня следующий прецедент:
Когда пользователь попытается войти в систему, если нам не удастся войти в N раз, отобразится captcha, поэтому аутентификация будет использовать три параметра: имя пользователя, пароль, пароль. Но Spring Безопасность не поддерживает встроенную обработку Captcha.
Я только начинаю думать о реализации. И имеют следующие варианты:
- Добавление отдельного фильтра безопасности в Spring стек фильтра безопасности,
- Полностью переписать AuthenticationProcessingFilter для поддержки некоторых Captcha
- Используйте некоторую программную аутентификацию с логикой перехвата перехвата, а затем передайте имя пользователя и пароль в Spring Безопасность
Как реализация Captcha, я думаю о JCaptcha, но что вы делаете?
Ответы
Ответ 1
В качестве альтернативы использованию JCaptcha, если вы хотите использовать службу reCAPTCHA на своем сайте, ознакомьтесь с бесплатным разделом 4.4 (прямая ссылка в формате PDF) нового Spring in Practice книга (в настоящее время в бета-версии).
Здесь показана интеграция с Spring MVC и Spring Validation. Поскольку интеграция находится на интерфейсе, w/внешние API, Spring Безопасность на самом деле не попадает сюда.
Я не уверен, что ваш случай использования? Вы надеетесь использовать каптчи в качестве альтернативы аутентификации, чтобы доказать "человечность"?
Ответ 2
Взгляните на эту статью: Spring Безопасность 3: Интеграция службы reCAPTCHA.
Это использует два фильтра, чтобы сделать интеграцию reCAPTCHA максимально бесшовной и ненавязчивой. Это означает, что ваша существующая реализация безопасности Spring не сломается. Не нужно трогать существующие классы
Ответ 3
Kaptcha прост в использовании.
Ответ 4
Я выполнил интеграцию с reCaptcha и Spring Security (Spring Web Flow + JSF), указав настраиваемый фильтр безопасности. Возможно, он не самый элегантный, но работает хорошо.
Вы можете посмотреть мой блог - к сожалению, в польском, но, возможно, поможет вам или кому-то...
http://marioosh.net/blog/?p=1087