1
2
3
4
5
6
7
8
9
10
11
12
13 package com.eviware.soapui.impl.wsdl.submit.filters;
14
15 import com.eviware.soapui.impl.support.AbstractHttpRequest;
16 import com.eviware.soapui.impl.wsdl.WsdlOperation;
17 import com.eviware.soapui.impl.wsdl.WsdlRequest;
18 import com.eviware.soapui.impl.wsdl.submit.transports.http.BaseHttpRequestTransport;
19 import com.eviware.soapui.impl.wsdl.submit.transports.http.ExtendedHttpMethod;
20 import com.eviware.soapui.impl.wsdl.support.soap.SoapVersion;
21 import com.eviware.soapui.impl.wsdl.support.wsa.WsaUtils;
22 import com.eviware.soapui.model.iface.SubmitContext;
23 import org.apache.log4j.Logger;
24
25 /***
26 * RequestFilter that expands properties in request content
27 *
28 * @author Ole.Matzura
29 */
30
31 public class WsaRequestFilter extends AbstractRequestFilter
32 {
33 public final static Logger log = Logger.getLogger(WsaRequestFilter.class);
34
35 public void filterAbstractHttpRequest(SubmitContext context, AbstractHttpRequest<?> wsdlRequest)
36 {
37 if( !(wsdlRequest instanceof WsdlRequest) || !((WsdlRequest)wsdlRequest).isWsAddressing())
38 return;
39
40 String content = (String) context.getProperty( BaseHttpRequestTransport.REQUEST_CONTENT );
41 if( content == null )
42 {
43 log.warn( "Missing request content in context, skipping ws-addressing" );
44 }
45 else
46 {
47 ExtendedHttpMethod httpMethod = (ExtendedHttpMethod) context.getProperty( BaseHttpRequestTransport.HTTP_METHOD );
48 WsdlOperation operation = ((WsdlRequest)wsdlRequest).getOperation();
49
50
51 SoapVersion soapVersion = operation.getInterface().getSoapVersion();
52 content = new WsaUtils(content, soapVersion, operation).addWSAddressingRequest((WsdlRequest) wsdlRequest, httpMethod);
53 if( content != null )
54 context.setProperty( BaseHttpRequestTransport.REQUEST_CONTENT, content );
55 }
56 }
57
58 }
59
60