去年,我在this link
中为网络服务制作了JAX-WS客户端此Web服务使用STS service获取SAML令牌并使用它来访问主Web服务。我使用apache cxf的wsdl2java为这个webservice生成JAX-WS客户端。一切都很好。
最近他们更新了他们的STS服务端点。 This新的STS服务端点。其中有不同的签名和摘要算法。它在请求体中有一些额外的元素。
我尝试修改当前代码,以便它支持新的STS服务。但我的代码发送相同的RequestSecurityToken请求。我的意思是它不采用新的要求。我试图采纳这个,但我做不到。
新的STS服务需要http://www.w3.org/2001/04/xmldsig-more#rsa-sha256作为新的签名方法,http://www.w3.org/2001/04/xmlenc#sha256作为新的摘要算法。此外,它还需要请求正文中的以下元素:
<tr:ActAs xmlns:tr="http://docs.oasis-open.org/ws-sx/ws-trust/200802">
<v13:RelationshipToken xmlns:v13="http://vanguard.business.gov.au/2016/03" ID="1bc9a44e-dccd-49e2-8f29-40d7b1257325">
<v13:Relationship v13:Type="OSPfor">
<v13:Attribute v13:Name="SSID" v13:Value="1234567895"/>
</v13:Relationship>
<v13:FirstParty v13:Scheme="uri://abr.gov.au/ABN" v13:Value="27809366375"/>
<v13:SecondParty v13:Scheme="uri://abr.gov.au/ABN" v13:Value="89567587874"/>
</v13:RelationshipToken>
</tr:ActAs>
另外这里有一些细微差别。我现在有两种方法:
我们将不胜感激任何帮助或建议
答案 0 :(得分:1)
SHA-256摘要算法通常使用需要它的AlgorithmSuite策略设置(例如Basic256Sha256)。我在政策中看到他们仍在使用“Basic256”。 CXF允许您通过一些配置属性配置RSA-SHA256(例如,参见'ws-security.asymmetric.signature.algorithm'http://cxf.apache.org/docs/ws-securitypolicy.html)。您可以直接在STSClient上设置ActAs对象/元素。
答案 1 :(得分:0)
我收到“验证邮件安全性时发生错误”。使用Metro 2.3.1时,我必须进行两项更改以解决此问题-
在STS wsdl中,需要提及这样的签名算法---
sp:AlgorithmSuite signatureAlgorithm =“ SHA256withRSA”
在USI wsdl中,需要将AlgorithmSuite从Basic256Sha256Rsa15更改为Basic256