Могу ли я с клиента определить, какие EJB-компоненты разрешено использовать текущему пользователю? - PullRequest
0 голосов
/ 01 апреля 2009

У меня есть различные EJB-компоненты на J2EE-сервере с разными ролями безопасности.

Теперь, из клиентского приложения Java Swing, когда я регистрирую пользователя на сервере, я хотел бы узнать, какие из этих EJB-компонентов доступны для пользователя, фактически не пытаясь создать их или вызвать их. *

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

Например, если EJB «AdministerMetadata» может использоваться текущим пользователем, я хочу отобразить пункт меню для управления метаданными и т. Д.

Для меня приемлемо выполнять запросы из заранее определенного списка известных EJB-компонентов в клиенте, поэтому мне не нужно, чтобы он был полностью динамичным.

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

Я планирую использовать решение на JBoss, но предпочитаю стандартное решение, если это возможно.

Возможно ли это? Если да, то как?

1 Ответ

1 голос
/ 03 апреля 2009

Насколько я знаю, в J2EE нет ничего, что предоставило бы вам эту информацию на стороне клиента. Даже на стороне сервера EJBContext предоставит вам только роли, которыми владеет вызывающая сторона, а также принципала вызывающей стороны (например, имя для входа).

Я не вижу другого способа, кроме как иметь дополнительный Session Bean, который можно запросить на стороне клиента и который будет проверять EJBContext на стороне сервера, чтобы сообщить клиенту, какие роли принадлежит текущему пользователю.

...