2009-11-27 1 views

ответ

9

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

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

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

Во-вторых,, так как система безопасности действительно ведет себя очень важно, она должна позволять вам выполнять свою любимую схему защиты вашего приложения. Например, в то время как некоторым людям нравится, как работает Широ (see this tutorial, особенно под заголовком «Quickstart.java»), другие не могли жить без весенних вещей Spring Spring и т. Д. И т. Д. В основном вам нужно попробовать оба и выяснить, соответствуют ли они вашим потребностям с точки зрения удобства использования.

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

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

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

+0

О, о, о, о, я даже не помню ответа на этот вопрос ... Я чувствовал необходимость редактировать в нескольких строках :) – Esko

7

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

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

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

0

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

приветствия.

Джош

+0

Псст, так что вы выбираете один из ответов как «правильный» (* зеленая галочка под счетчиком up/downvote *) после того, как вы почувствуете, что вы ее дали. Я знаю, иногда это сложно, потому что есть много хороших ответов, но это поможет каждому в будущем, особенно тем, у кого нет времени читать каждое слово, связанное с вопросом. – Esko

1

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

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

  • Нет связанных вопросов^_^