【问题标题】:How to access a SFSB within a Stateless Session Bean如何在无状态会话 Bean 中访问 SFSB
【发布时间】:2012-06-23 17:25:34
【问题描述】:

我正在创建一个应用程序,其中 java swing 客户端通过远程接口连接到 EJB。现在,一旦客户端登录,无状态 ejb 是否可以直接从有状态会话 bean 获取客户端特定数据而不涉及客户端?

找不到有关上述问题的任何信息。

【问题讨论】:

标签: java jakarta-ee ejb stateless stateful


【解决方案1】:

根据定义,无状态会话 bean 是无状态的。您不应该在 SLSB 中编写依赖于会话状态的业务逻辑,这表明对此类组件的工作方式存在误解,并且可能表示存在设计问题。

如果您确实、绝对需要访问会话信息来执行业务逻辑,请从 SFSB 而非 SLSB 进行。或者,您可以将会话状态作为参数传递给 SLSB 中的方法,但这种状态必须来自调用 SLSB 的有状态组件。

【讨论】:

  • 我认为业务逻辑将在无状态和有状态会话 bean 中实现,而特定于客户端的细节将在有状态会话 bean 中实现。我只想让身份验证发生在服务器端。如果客户端只是访问有状态会话 bean 和受限方法,这将是一个问题。我想要的是每当调用无状态会话 bean 登录函数时,应该返回有状态 bean,并且所有无状态 bean 应该能够检查有状态 bean 中的身份验证状态。
  • 其实我的意思是有状态的bean引用将被返回并存储在客户端中
  • 你能帮我解决我的另一个问题吗,stackoverflow.com/questions/11184046/…
【解决方案2】:

【讨论】:

  • 问题是我没有足够的时间来学习JAAS。我试过了.. 实现库花费了太多时间。
  • 安全性的问题在于,整体安全性的强弱取决于其最薄弱的环节。与使用由安全专家设计并经过可靠测试的安全框架相比,自定义安全框架具有薄弱环节的风险要高得多。所以学习 JAAS 是很值得的,恕我直言。对于 EJB,它非常简单:只是一些注释。然后,您“只”需要配置如何存储凭据(文件、db、ldap...)并弄清楚如何从 swing 客户端登录。
  • ok.. 但是除了 JAAS 之外还有什么方法可以让身份验证发生在服务器端并验证服务器端的权限吗?
  • 嗯,有 Spring Security,但我不知道它与 EJB 的工作情况如何。 JAAS 是 Java EE 的标准安全框架。
  • 好吧,现在我决定做的是,由于时间不够,我将在登录时临时创建一个授权密钥并将其存储在数据库中。任何必须执行任何功能的用户都必须提供授权密钥。学完JAAS我会去实现的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-02
  • 2012-04-04
  • 2011-03-31
  • 2012-10-10
  • 1970-01-01
  • 2011-01-02
  • 1970-01-01
相关资源
最近更新 更多