根据官网上的信息,cxf从2.4版本之后,进行密码校验方式进行了修改:
通过设置客户端密码,然后服务端也设置密码,然后通过内部机制进行校验,密码校验不通过抛出异常。
WSPasswordCallback pc = (WSPasswordCallback) callbacks[0];
pc.setPassword(pwd);
现在项目需要获取到客户端传递过来的密码,提前进行检测。
现在主要是通过soapui进行模拟实现:
soapui中的SOAP信息如下:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" soap:mustUnderstand="1">
<wsse:UsernameToken wsu:Id="UsernameToken-1">
<wsse:Username>