【发布时间】:2011-02-28 08:34:28
【问题描述】:
我有一个用 SEAM 编写的现有应用程序,它使用 SEAM Security (http://docs.jboss.org/seam/2.1.1.GA/reference/en-US/html/security.html)。在无状态 EJB 中,我可能会发现类似这样的内容:
@In
Identity identity;
...
if(identity.hasRole("admin"))
throw new AuthException();
据我了解,Seam 从调用 EJB 的 servlet 的 SessionContext 中注入 Identity 对象(这发生在“幕后”,因为 Seam 并不真正使用 servlet)并在调用后将其删除。这是正确的吗?
现在是否可以从另一个 servlet 访问该 EJB(在这种情况下,该 servlet 是 GWT 应用程序的服务器端)?我是否必须“注入”正确的身份实例?如果我什么都不做,Seam 会注入一个实例,但不会正确关联会话和 Identity 实例(因此 Identity 实例在会话之间共享,有时调用获取新实例等)。
非常欢迎任何帮助和指点 - 谢谢!
技术:EJB3,Seam 2.1.2。 servlet 实际上是 GWT 应用程序的服务器端,尽管我认为这并不重要。我正在使用 JBoss 5。
【问题讨论】:
标签: security session servlets ejb-3.0 seam