[英]cxf DefaultSecurityTokenServiceProvider response based on SAML version
我剛與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的ans,它確定要發送哪個版本的SAML斷言作為響應
2如何從org.apache.cxf.ws.security.trust.STSClient
以文本形式讀取SAML斷言
**saml:Assertion xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" Version="2.0" ID="s2b7afe8e21a0910d027dfbc94ec4b862e1fbbd9ab" IssueInstant="2007-12-10T11:39:48Z"**
所以我可以將它們放在標頭中並以SOAPUI作為客戶端使用?
默認情況下,STS會根據發送的TokenType發行SAML 1.1或2.0令牌。 因此,要同時支持1.1 + 2.0,就STS配置而言無需采取任何措施。
STSClient將返回一個SecurityToken對象。 您可以通過stsClient.getToken()獲取返回的令牌的DOM表示形式。 然后,您可以使用WSS4J的DOM2Writer.nodeToString(node)之類的東西轉換為String。
科爾姆
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.