【问题标题】:User context for @Startup EJB on webspherewebsphere 上@Startup EJB 的用户上下文
【发布时间】:2015-10-13 12:43:26
【问题描述】:

我在哪里设置 Websphere 在调用 @Startup EJB 时使用的用户上下文?

我有一个带有启动 EJB 的 Java EE 应用程序,并且我知道它在调用 EJB 时设置了一个用户,因为由于缺少角色而调用失败。但是,我找不到在哪里设置用户。

【问题讨论】:

  • 你能显示失败的堆栈跟踪吗?对@Startup EJB 的@PostConstruct 的调用不需要任何授权。但是,如果@PostConstruct 进行另一个需要授权的调用,那将失败;在这种情况下,您要么需要以编程方式设置上下文(使用 WSLogin 或等效项),要么对 EJB 使用 @RunAs 并配置运行身份用户(注意:这将影响 EJB 进行的所有调用,而不仅仅是来自@PostConstruct)。
  • 这个问题与失败无关(我知道@RunAs,虽然它没有按我的预期工作,但这是另一个问题)。这个问题是关于用户上下文的。我知道有一个,因为 WAS 在异常中给出了用户名。我只是不知道在哪里设置它。我知道我可能不需要设置它,如果@RunAs 像宣传的那样工作,但我仍然想知道:-)

标签: ejb websphere websphere-8


【解决方案1】:

EJB 规范声明会话 bean @PostConstruct 方法在未指定的安全上下文中调用,WebSphere 不记录特定的安全上下文或允许对其进行配置。在实践中,单例会话 bean @PostConstruct 通常会以未经授权的用户作为安全上下文来调用。如果设置特定的安全上下文很重要,那么您可以打开 WebSphere RFE,但我建议您寻找其他解决方案以避免使用特定于供应商的解决方案。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多