我正在创建一个应用程序,其中java swing客户端通过远程接口连接到EJB。现在,一旦客户端登录,无状态ejb是否有可能直接从有状态会话bean获取客户端特定数据而不涉及客户端?
无法找到有关上述问题的任何信息。
答案 0 :(得分:1)
AFAIK,如果您正在使用JAAS(推荐),那么您不必使用有状态会话bean来存储身份验证状态。
对于远程客户端,通常首选无状态方法,其中所有数据都在客户端收集并发送到服务器。
一些有用的JAAS链接:
http://docs.oracle.com/javaee/6/tutorial/doc/gijrp.html
Possible to access remote EJBs from a custom LoginModule?
http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASRefGuide.html
http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/JAASLMDevGuide.html
http://docs.oracle.com/javase/6/docs/technotes/guides/security/jaas/tutorials/GeneralAcnOnly.html
图书:
答案 1 :(得分:1)
无状态会话bean根据定义,是无状态的。您不应该在依赖于会话状态的SLSB中编写业务逻辑,这是对这些组件如何工作的误解的标志,并且可能表示设计问题。
如果你真的,绝对需要访问会话信息来执行业务逻辑,那么从SFSB而不是SLSB执行此操作。或者,您可以将会话状态作为参数传递给SLSB中的方法,但这种状态必须来自调用SLSB的有状态组件。