【发布时间】:2015-10-13 12:43:26
【问题描述】:
我在哪里设置 Websphere 在调用 @Startup EJB 时使用的用户上下文?
我有一个带有启动 EJB 的 Java EE 应用程序,并且我知道它在调用 EJB 时设置了一个用户,因为由于缺少角色而调用失败。但是,我找不到在哪里设置用户。
【问题讨论】:
-
你能显示失败的堆栈跟踪吗?对
@StartupEJB 的@PostConstruct的调用不需要任何授权。但是,如果@PostConstruct进行另一个需要授权的调用,那将失败;在这种情况下,您要么需要以编程方式设置上下文(使用WSLogin或等效项),要么对 EJB 使用@RunAs并配置运行身份用户(注意:这将影响 EJB 进行的所有调用,而不仅仅是来自@PostConstruct)。 -
这个问题与失败无关(我知道
@RunAs,虽然它没有按我的预期工作,但这是另一个问题)。这个问题是关于用户上下文的。我知道有一个,因为 WAS 在异常中给出了用户名。我只是不知道在哪里设置它。我知道我可能不需要设置它,如果@RunAs像宣传的那样工作,但我仍然想知道:-)
标签: ejb websphere websphere-8