Apache Shiro vs Java EE native API

Какие преимущества существуют, если перейти на Apache Shiro и оставить собственные Java EE собственные API для безопасности и управления сеансами?

Я обнаружил, что все роли и сеансы безопасности могут выполняться в Apache Shiro, но то же самое можно сделать и с помощью безопасности Java EE без каких-либо внешних банок зависимости.

Итак, предложите мне некоторые плюсы и минусы в Apache Shiro.

Ответ 1

Я, конечно, предвзятый (я - участник проекта Apache Shiro), так что считайте это подходящим, но вот мои мнения:

  • Java EE Security не поддерживает контейнеризованные параметры кластеризации сеансов из коробки (Shiro делает).

  • Сиро был разработан с момента его создания для работы в среде POJO/Dependency Injection. Он использует интерфейс, ориентированный на интерфейс, и предоставляет гораздо больше перехватов для настройки, чем традиционные среды безопасности Java EE (например, как вы показываете, сколько пользователей в настоящее время зарегистрировано на вашем сайте с помощью безопасности Java EE? Shiro может помочь вам показать это).

  • Shiro полностью переносится в любой среде приложения. Если вы используете настройки безопасности для конкретного поставщика Java EE, они не будут переносимыми (например, этот fooobar.com/info/529613/... показывает, что переход на JBoss может решить проблему безопасности пользователя - тревожный ответ IMO).

  • В том же духе, что и для специфических для сервера настроек, многие средства безопасности Java EE учебные пособия, статьи и статьи в блоге показывают конфигурацию на основе пользовательского интерфейса, которая обращается к вещам по-разному на разных платформах, и может быть сложно переучиться, если вы переключитесь. Кроме того, для конфигурации Java EE часто требуется XML. Я предпочитаю один, не-многословный текстовый конфигурационный формат, который я могу использовать где угодно (shiro.ini хорош, но люди также настраивают siro с помощью groovy, yaml и т.д.).

  • Сиро был разработан для работы в любой прикладной среде. Безопасность Java EE была разработана, хорошо - только для Java EE. По крайней мере, когда вы изучаете Shiro, вы можете использовать эти знания в любом приложении на основе JVM (Spring, Guice, Java EE, командной строке и т.д.), А не только приложениях Java EE.

НТН!

Ле