在Web服务调用上传递LTPA令牌不起作用

时间:2011-10-10 13:01:07

标签: java security websphere ltpa

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

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

其中bp是我的BindingProvider。这一切都应该有效。但是,当我进行webservices调用时,我会收回此异常。

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

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

有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:3)

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

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

使Web服务的Web应用程序调用另一个WebSphere服务器。

快速阅读此内容。 http://www.ibm.com/developerworks/websphere/techjournal/0607_desprets/0607_desprets.html

WAS7中的内容与WAS V6非常相似。

HTH

Manglu

答案 1 :(得分:0)

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