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