0

我在 J2EE 服务器上有各种 EJB,具有不同的安全角色。

现在,从 Java Swing 客户端应用程序中,当我将用户登录到服务器时,我想发现用户可以访问这些 EJB 中的哪些,而无需实际尝试创建或调用它们。

我想这样做的原因是根据可用的 EJB 来调整用户界面。

例如,如果当前用户可以使用“AdministerMetadata”EJB,我想显示一个用于管理元数据等的菜单选项。

我可以从客户端中已知 EJB 的预定义列表中进行查询,因此我不需要它是完全动态的。

我不想创建一个特殊的 EJB 来仅返回此访问信息,并且我想避免不得不尝试调用方法并捕获异常来进行发现。

我计划在 JBoss 上使用该解决方案,但如果可能的话,我更喜欢标准解决方案。

这可能吗?如果有怎么办?

4

1 回答 1

1

据我所知,J2EE 中没有任何东西可以在客户端为您提供这些信息。即使在服务器端,EJBContext也只会为您提供调用者拥有的角色以及调用者的主体(例如登录名)。

除了拥有一个额外的 Session Bean 之外,我没有其他办法,您可以在客户端查询它,它将检查服务器端的 EJBContext 以告诉客户端当前用户拥有哪些角色。

于 2009-04-02T23:24:08.290 回答