2017-03-23 31 views
0

利用CXF和需要以下安全頭,包括用戶名令牌(無密碼)和的SecurityContextToken:SOAP安全標頭的UsernameToken和的SecurityContextToken - CXF

 <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> 
     <wsse:UsernameToken xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="123"> 
      <wsse:Username>USER</wsse:Username> 
     </wsse:UsernameToken> 
     <wsc:SecurityContextToken xmlns:wsc="http://schemas.xmlsoap.org/ws/2005/02/sc"> 
      <wsc:Identifier>TOKEN</wsc:Identifier> 
     </wsc:SecurityContextToken> 
    </wsse:Security> 

試圖用行動WSHandlerConstants.USERNAME_TOKEN_NO_PASSWORD並把它放在WSS4JOutInterceptor但CXF拋出「定義未知操作:UsernameTokenNoPassword」異常。

如何將這兩個元素放到標題中?

回答

1

錯誤是由https://issues.apache.org/jira/browse/WSS-604(我剛剛修復)引起的。

+0

謝謝,Colm。關於SecurityContextToken是什麼,是否可以通過WSHandler添加它? – Misha

+0

不直接。您可以通過一個「CustomToken」操作來添加它,該操作從CallbackHandler中獲取一個標記。 –

+0

我無法在WSSecurityUtil中找到CustomToken動作,因此,如果我將其添加爲props.put(WSHandlerConstants.ACTION,WSHandlerConstants.CUSTOM_TOKEN)之類的動作,則會發生異常「定義未知操作:CustomToken」; – Misha