2014-11-14 2 views
4

Я новичок в платформе Play и хочу реализовать некоторую аутентификацию для моего webapp.Play Framework с весной безопасности?

У меня уже есть опыт с Spring и Spring Security и вы хотите использовать это, но я не уверен, что это имеет смысл, потому что Spring Security в основном предназначена для ServletAPI.

Имеет ли смысл интегрировать Play с Spring Security?

Спасибо.

После дальнейших поисков я нашел этот пост:

https://groups.google.com/d/msg/play-framework/K7l6vHa0UUA/MYDlsaIfJEMJ

Это представляется возможным, но еще много конкретных реализаций Play (фильтр и т.д.) должны быть сделаны.

+0

Просто любопытно, что вы в конечном итоге сделали? Я рассматриваю одну и ту же проблему - ищет надежную, проверенную на производстве модель аутентификации и столкнулся с Spring Security, и мне было интересно, можно ли ее использовать с PlayFramework. – costa

+0

Я использовал, наконец, библиотеку Pac4j для игры: https://github.com/pac4j/play-pac4j, это очень простая реализация и отлично поработала для меня. Также сообщество очень активно и поддерживает. – olibur

ответ

0

Вы должны - возможно - посмотрите на Deadbolt 2. Это специализированное решение, поэтому оно будет работать без проблем.

+3

The Deadbolt2 предоставляет только часть авторизации, вам все равно придется внедрить или найти готовое решение для аутентификации. – Serg

0

Да, имеет смысл использовать весеннюю безопасность с игрой. Весенняя безопасность использовалась во многих проектах, и писать безопасный код намного сложнее, чем кажется.

У вас есть две проблемы. Один из них - аутентификация. Вы должны сделать что-то для достижения аутентификации. Это означает, что вы играете в спящий режим, чтобы он становился контейнером с сохранением состояния (но опять же, почему вы вообще играете в этом случае?) Или бросаете весну-безопасность-паутину и сильно зажаты друг на друга, поэтому вы используете пружину для аутентификации, но интегрируйте с хорошими качествами файлов cookie, поэтому вам не нужно хранить вещи в объекте сеанса на стороне сервера. Тем не менее, я бы предложил, чтобы вы получили полномочия, которые управляли авторизацией где-то для каждого запроса. Вы хотите уменьшить размер сеанса.

У объекта безопасности также есть некоторые полезные советы о том, как это сделать.

Авторизация весной не является сложной задачей, если у вас есть объект аутентификации, хранящийся в threadlocal или что-то в этом роде. Создайте что-нибудь, что вызывает избирателей избирательного права на весенний доступ в виде обертки - что-то вроде

должен сделать трюк. Для дополнительного улучшения добавьте флаг в threadlocal, когда вы это сделаете - наличие флага упрощает запись утверждений в ваших тестах, требующих авторизации. Это одна из самых больших проблем безопасности для разработчиков - см. https://cwe.mitre.org/data/definitions/862.html

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

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