Как избежать сессионных параметров на бизнес-уровне?

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

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

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

1 ответ

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

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