1

我有一个使用 j2ee 安全性的 j2ee Web 应用程序,因此用户的身份从 WebSEAL 传播到在 WAS7 中运行的应用程序。我现在正在尝试进行 SOAP Web 服务调用并在该 Web 服务调用中传播用户身份。为此,我使用 WSSubject 调用获取 LTPA (WSCredential) 和 LPTA2 (SingleSignOnToken) 并将它们附加到使用的 webservices 调用。

bp.getRequestContext().put(Constants.REQUEST_TRANSPORT_PROPERTIES,sendTransportHeaders);

其中 bp 是我的 BindingProvider。这一切都应该工作。但是当我进行网络服务调用时,我得到了这个异常。

Cause =java.io.IOException: Unable to deserialize the Subjects in this Context

我查看了 LTPA 令牌中的字段,一切似乎都正确(令牌和我正在调用的 j2ee 安全领域 web 服务之间的领域相同,令牌是可转发的,等等),我在网上找不到太多关于这个错误的信息,除了(这似乎是一个不相关的情况)尝试将其传递到 EJB 时的情况以及领域不匹配的情况。

有任何想法吗?谢谢。

4

2 回答 2

3

你能清楚地说明你想在这里做什么吗?

您应该能够通过配置透明地传递 LTPA 令牌,而不是尝试编写一些代码来实现相同的目的。

Web 应用程序对另一个 WebSphere 服务器进行 Web 服务调用。

快速阅读一下。 http://www.ibm.com/developerworks/websphere/techjournal/0607_desprets/0607_desprets.html

WAS7 中的东西应该与 WAS V6 非常相似。

高温高压

芒鲁

于 2011-10-11T03:22:54.647 回答
0

@jeffsix:您是否尝试从运行在一个 websphere 服务器中的应用程序向另一个 websphere 服务器中的另一个应用程序进行 web 服务调用?确保两台服务器上的 LTPA 密钥相同。

于 2011-10-11T11:44:56.560 回答