Как избежать сессионных параметров на бизнес-уровне? - PullRequest
2 голосов
/ 28 января 2012

У меня есть приложение Java EE (простой веб-интерфейс, большой бизнес-уровень EJB 3, JPA), большинство функций которого зависят от пользователя, вошедшего в систему.

Из-за этого EJB-объекты заполнены вездесущим параметром String userName. Вы вряд ли найдете нетривиальный метод, который обходится без него, и он опускается до самых основных EJB-компонентов. Иногда он дополняется другими параметрами, относящимися к сеансу, такими как язык пользователя.

В результате списки параметров растут и страдает ясность кода. Это, наверное, общая проблема, как ее избежать? Передача большего количества кода клиенту с графическим интерфейсом кажется еще более безумной идеей.

1 Ответ

1 голос
/ 28 января 2012

Java EE поддерживает распространение контекста безопасности на различные уровни.Например, для проверки различных методов в EJBContext, связанных с аутентификацией / авторизацией, таких как getCallerPrincipal(), isCallerInRole().Я предлагаю вам прочитать две статьи ниже

  1. Введение высокого уровня для обеспечения сквозной безопасности
  2. Введение в безопасность в платформе Java EE
...