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”异常。
如何将这两个元素放到标题中?
谢谢,Colm。关于SecurityContextToken是什么,是否可以通过WSHandler添加它? – Misha
不直接。您可以通过一个“CustomToken”操作来添加它,该操作从CallbackHandler中获取一个标记。 –
我无法在WSSecurityUtil中找到CustomToken动作,因此,如果我将其添加为props.put(WSHandlerConstants.ACTION,WSHandlerConstants.CUSTOM_TOKEN)之类的动作,则会发生异常“定义未知操作:CustomToken”; – Misha