我正在与CXF STS合作,并遇到了以下要求,我无法继续
1 CXF STS的DefaultSecurityTokenServiceProvider如何提供不同版本的SAML断言,例如1.1或2.0。我有一个假设。如果我错了,请纠正我。 DefaultSecurityTokenServiceProvider:services的bean属性
<property name="services" ref="myServiceList" />
<bean id="myServiceList" class="org.apache.cxf.sts.service.StaticService">
<property name="endpoints" ref="wspAllowedEndpoints" />
</bean>
<util:list id="wspAllowedEndpoints">
<value>http://localhost:8080/doubleit/services/doubleit.*</value>
</util:list>
它向wsdl请求所有允许的服务,读取策略元素
<sp:RequestSecurityTokenTemplate>
<t:TokenType>http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1</t:TokenType>
<t:KeyType>http://docs.oasis-open.org/ws-sx/ws-trust/200512/SymmetricKey</t:KeyType>
<t:KeySize>256</t:KeySize>
</sp:RequestSecurityTokenTemplate>
基于SAMLV1.1或SAMLV2.0,它确定响应中要发送的SAML断言版本
2如何从org.apache.cxf.ws.security.trust.STSClient
作为文本
**saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0" ID="s2b7afe8e21a0910d027dfbc94ec4b862e1fbbd9ab" IssueInstant="2007-12-10T11:39:48Z"**
所以我可以将它们放在标题中并使用SOAPUI作为客户端吗?
答案 0 :(得分:0)
STS将默认发出SAML 1.1或2.0令牌,具体取决于发送的TokenType。因此,为了支持1.1 + 2.0,在STS配置方面不需要采取任何措施。
STSClient将返回一个SecurityToken对象。您可以通过stsClient.getToken()获取返回令牌的DOM表示形式。然后,您可以使用类似WSS4J的DOM2Writer.nodeToString(节点)转换为String。
科尔姆。