去年,我通过此链接为Web服务制作了JAX- WS客户端
该Web 服务使用STS服务获取SAML令牌并使用它访问主要Web服务。我使用apache cxf的wsdl2java为该Web服务生成JAX-WS客户端。一切都很好。
最近,他们已更新其STS服务端点。这个新的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>
另外,这里也有细微的差别。我现在有两种想法:
任何帮助或建议,我们将不胜感激
SHA-256摘要算法通常通过使用需要它的AlgorithmSuite策略来设置(例如Basic256Sha256)。我在政策中看到他们仍然在使用“ Basic256”。CXF允许您通过一些配置属性来配置RSA-SHA256(例如,请参见http://cxf.apache.org/docs/ws- securitypolicy.html上的 “ ws-security.asymmetric.signature.algorithm” )。您可以直接在STSClient上设置ActAs对象/元素。