0

我有一个作为服务层的 EJB 3 应用程序和一个作为其客户端的 Tapestry 5 Web 应用程序。EJB 应该提供一个会话外观以供 Web 应用程序使用。

要执行 EJB 层中定义的操作,用户需要通过 Web 界面登录。我必须具有实体级别的安全性,因此 Java EE 声明式安全性对我来说用处不大。

我应该如何在这种设置中实现安全性?我宁愿在 EJB 层上实现它,然后在 Web 应用程序中实现它,以防我切换客户端。

我可以在 Web 应用程序中使用 http 会话来存储用户会话,然后在每个无状态 EJB 调用中传递用户对象。

public void doStuff(params, User user);

有状态会话 bean 是这里的解决方案吗?

编辑:通过实体级安全性,我的意思是行级安全性。

4

1 回答 1

1

实体级安全性到底是什么意思?

如果我理解正确,您可以使用登录用户直接从您的 Web 应用程序调用您的 SLSB?

如果是这样:编写一个将 SessionContext 作为资源注入的 Inteceptor 并使用此 Interceptor 注释您的 SLSB ...用户,如果出现问题,直接从拦截器抛出异常,而不会将其发送到您的 SLSB)。

于 2012-05-30T13:26:37.983 回答