Граальс безопасности

Какое решение для защиты Grails является лучшим среди систем безопасности acegi, jsecurity и Stark?

4 ответа

Решение

JSecurity на самом деле стал проектом Apache под названием Apache Ki некоторое время назад, и по какой-то причине они не были довольны изменением имени и вскоре после этого изменили его на Apache Shiro. Кроме того, Stark - это просто оболочка для плагинов Grails для Spring Security, а acegi является источником проекта Spring Security.

Так какой из них использовать?

Во-первых, Spring Security - это зрелый API безопасности, который уже широко используется, поэтому с точки зрения стабильности, поддержки и особенно безопасности это хороший выбор. Широ, к сожалению, в этом немного проигрывает, поскольку, насколько я знаю, он все еще не получил широкого распространения.

Во-вторых, очень важно то, как на самом деле ведет себя структура безопасности, она должна позволять вам использовать вашу любимую схему защиты вашего приложения. Например, в то время как некоторым людям нравится, как работает Широ ( см. Это руководство, особенно часть под заголовком "Quickstart.java"), другие не могут жить без Spring-esque материала Spring Security и так далее, и так далее. В основном вам нужно попробовать оба варианта и выяснить, соответствуют ли они вашим потребностям с точки зрения удобства использования.

В-третьих, будьте уверены в реальной безопасности! Spring Security может быть гарантированно безопасным, Shiro, скорее всего, безопасным, потому что широкое распространение не скрывает проблем безопасности легко, например, посмотрите на уязвимости Firefox, чтобы увидеть, как увеличение пользовательской базы начинает влиять на реальную безопасность приложения в долгосрочной перспективе.

Чтобы покончить с этим, если бы мне пришлось выбирать для вас, я бы выбрал Spring Security, потому что он широко используется, он гарантированно безопасен и уже интегрирован с Grails. JSecurity/Ki/Shiro совсем не плохой, и я использовал его некоторое время, но в данный момент он находится в каком-то подвешенном состоянии для тех, кто знает, по какой причине, и для структуры безопасности, которая просто неприемлема.

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

Ответ Эско велик и убедителен. Я провел оценку различных фреймворков месяц назад и выбрал Shiro в качестве базового фреймворка безопасности, несмотря на предыдущий опыт работы с Spring Security. Мне нужно решение с возможностью создания сложных требований авторизации. Модель JSecurity очень простая, но очень мощная.

Что меня окончательно убедило, так это плагин Nimble, представляющий собой слой пользовательского интерфейса поверх Shiro. Он позволяет вам управлять пользователями, ролями, группами, созданием учетных записей самообслуживания, электронной почтой и т. Д. И легко интегрируется в ваше приложение. Отсутствие необходимости писать весь этот код был огромной победой для меня. Это также позволяет интеграцию с OpenId, facebook и другими.

Если бы Nimble работал на SpringSecurity, я бы, наверное, выбрал его, но я увидел в этом огромную победу.

Я использовал обе платформы и мне нравится, как работает Широ, по сравнению с подходом Spring. Я не знаю, почему Spring Security так популярен. В отличие от Shiro, Spring Security всегда работает в приложении, когда требуется настройка. Разве безопасность не является сквозной проблемой для большинства приложений? Если так, разве не будет "более чистый код", чтобы изолировать его в одном месте? Мои два цента.

Спасибо, ребята, за ваши ответы. Я на самом деле пробовал весеннюю защиту на приложении Grails. Плагин Grails делает его довольно простым в использовании.

С уважением.

мистифицировать

Другие вопросы по тегам