2012-06-13 1 views
5

Общее дело: Простое приложение, предоставляющее свои услуги через EJB (3.1) - большинство из них безфакторным сессионным бобам (здесь нет ничего интересного) и клиенты на основе SWING что, позвоните через удаленные интерфейсы этих служб и сделайте то, что они должны сделать.Apache Shiro на Swing Client - EJB 3.1 Дело для аутентификации-авторизации

Безопасность: Я хочу пройти аутентификацию/авторизацию этого цикла звонков и, конечно же, защитить свои услуги. Очевидным ответом будет использование JAAS на сервере и любая настраиваемая настройка проводки на базовом сервере. Это еще один вариант

Apache Shiro: Так много людей говорят о Apache Shiro и это действительно имеет очень простой API и механизм - который потенциально может быть сервером приложений независимыми.

Технические вопросы:

  1. Сессия: В моем случае я не имею HTTP сессии - и от того, что я понял Shiro по крайней мере, нуждается в какой-то идентификатор сеанса, который мне нужно пройти вокруг. Любой хороший способ ввода пользовательских учетных данных в моих вызовах RMI/IIOP на сервер, не загрязняя мой бизнес-API?

  2. реализация на стороне сервера: За несколько ресурсов, которые я пережил я думаю, что смогу реализовать Shiro DefaultSecurityManager на «ссылаться на него» из Singleton EJB 3.1 компонента. Любые другие идеи? Затем я могу легко создать перехватчик и добавить его к моим удаленным вызовам - поэтому, когда новый вызов проходит через мой метод удаленного EJB - Shiro Intereceptor для проверки моего пользователя или проверки определенных прав.

Любые комментарии/советы/примеры?

Большое спасибо

ответ

0

От Сиро, попробуйте использовать шаблон ServiceLocator. Поиск EJB отличается между контейнерами (JBoss, Netweaver, Weblogig и т. Д.).

На сервере приложений попробуйте использовать ограничения безопасности на основе контейнера (@RolesAllowed, @PermitAll, @Deny ...). JAAS создаст тему с принципалами пользователя, поэтому просто используйте авторизацию контейнера (@RolesAllowed, @PermitAll, @Deny ...). Может быть лучше, когда вы переносите из одного контейнера в другой.

+0

Привет, Марсело, спасибо за ваш ответ - но если я собираюсь использовать JAAS в любом случае, тогда я не найду никакого большого преимущества проводки сиро, а также. Моя идея состояла в том, чтобы пройти 100% JAAS и реализовать все, используя Shiro. – javapapo

+0

Хорошо. Если вы не думаете, что проблема заключается в том, чтобы приложение зависело от поставщика, нет проблем. Я имею в виду, что cotainer уже имеет реализации безопасности, если вы используете контейнер. Возможно, вы потеряете некоторые функциональные возможности, такие как web.xml constrainsts или безопасность ограничений аннотаций. – Marcelo

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

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