Spring Security с EJB - PullRequest
       18

Spring Security с EJB

4 голосов
/ 10 февраля 2010

Поскольку авторизация EJB слишком ограничена для моих нужд, я хочу использовать Spring Security вместе с EJB. Для аутентификации я тоже хочу использовать Spring Security. Вопрос в том, могу ли я использовать контекст Spring Security внутри EJB.

Сценарий:

  • пользователь общается с сервлетом
  • аутентификация через Spring Security
  • сервлет общается с EJB
  • EJB может связываться с другими EJB
  • проверка безопасности с помощью перехватчика EJB или непосредственно в методе EJB

Будет ли контекст безопасности, обычно содержащийся в локальном объекте потока, распространяться через слой сервлета и ejb, чтобы я мог использовать его для проверок безопасности?

Ответы [ 2 ]

1 голос
/ 10 февраля 2010

Вы сможете получить доступ к контексту Spring Security, если не задействованы удаленные вызовы, но вы не сможете напрямую использовать какие-либо декларативные функции безопасности Spring Security, требующие прокси-объекта.

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

Другой альтернативой может стать поддержка AspectJ в Spring Security, которая должна работать с EJB.

1 голос
/ 10 февраля 2010

Если вы работаете в кластере или EJB на разных серверах, то каждый сервер (конечно) будет работать со своим собственным потоком, поэтому распространение не произойдет.

Если они все на одном сервере, то могут, но я думаю, что это зависит от поставщика, если вы не используете локальные вместо удаленных интерфейсов.

...