安全Spring Web服务的集成测试

时间:2013-02-28 23:56:34

标签: integration-testing spring-ws ws-security

我正在尝试使用安全的Spring Web Service Endpoint编写服务器端集成测试 - Spring WS Security 2.1.2.RELEASE和 - WSS4j 1.6.9。 我正在尝试遵循Spring文档http://static.springsource.org/spring-ws/sites/2.0/reference/html/server.html。通过我到目前为止的设置,我可以发送请求有效载荷

<myns:MyRequest xmlns:myns="...">
        ...
</myns:MyRequest>

使用MockWebServiceClient作为

mockWebServiceClient.sendRequest(withPayload(requestPayload)).andExpect(clientOrSenderFault());

集成测试正确地映射到测试上下文中的端点,并且我得到“无法验证请求:找不到WS-Security标头”错误,如预期的那样。

问题:现在问题是,如果我在带有安全标头和正文的SOAP信封中发送请求,我会得到一个端点未找到异常。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myns="...">
   <soapenv:Header>
       ...
   </soapenv:Header>
   <soapenv:Body>
      <myns:MyRequest>
        ...
      </myns:MyRequest>
   </soapenv:Body>
</soapenv:Envelope>

因为它会尝试在“{http://schemas.xmlsoap.org/soap/envelope/}信封”周围找到一个端点。

有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

更新版本的Spring WS Test 2.1是在RequestCreater中添加了两个方法:RequestCreators.withSoapEnvelope(Source soapEnvelope)和RequestCreators.withSoapEnvelope(Resource soapEnvelope),它们允许发送SOAP信封进行集成测试。 http://forum.springsource.org/showthread.php?135298-Integration-Testing-of-secure-Spring-Web-Service