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.w3c.dom.Document;
16
17 import com.eviware.soapui.config.EndpointConfig;
18 import com.eviware.soapui.impl.wsdl.WsdlRequest;
19 import com.eviware.soapui.impl.wsdl.endpoint.DefaultEndpointStrategy;
20 import com.eviware.soapui.impl.wsdl.endpoint.DefaultEndpointStrategy.EndpointDefaults;
21 import com.eviware.soapui.impl.wsdl.submit.RequestFilter;
22 import com.eviware.soapui.impl.wsdl.support.wss.IncomingWss;
23 import com.eviware.soapui.impl.wsdl.support.wss.OutgoingWss;
24 import com.eviware.soapui.impl.wsdl.support.wss.WssContainer;
25 import com.eviware.soapui.model.iface.SubmitContext;
26 import com.eviware.soapui.support.StringUtils;
27
28 public class WssRequestFilter extends AbstractWssRequestFilter implements RequestFilter
29 {
30 public final static String INCOMING_WSS_PROPERTY = "WssRequestFilter#IncomingWss";
31
32 public void filterWsdlRequest( SubmitContext context, WsdlRequest wsdlRequest )
33 {
34 WssContainer wssContainer = wsdlRequest.getOperation().getInterface().getProject().getWssContainer();
35 OutgoingWss outgoingWss = wssContainer.getOutgoingWssByName( wsdlRequest.getOutgoingWss() );
36
37 DefaultEndpointStrategy des = ( DefaultEndpointStrategy )wsdlRequest.getOperation().getInterface().getProject()
38 .getEndpointStrategy();
39 EndpointDefaults endpointDefaults = des.getEndpointDefaults( wsdlRequest.getEndpoint() );
40 if( StringUtils.hasContent( endpointDefaults.getOutgoingWss() )
41 && ( outgoingWss == null || endpointDefaults.getMode() != EndpointConfig.Mode.COMPLEMENT ) )
42 {
43 outgoingWss = wssContainer.getOutgoingWssByName( endpointDefaults.getOutgoingWss() );
44 }
45
46 if( outgoingWss != null )
47 {
48 try
49 {
50 Document wssDocument = getWssDocument( context );
51 outgoingWss.processOutgoing( wssDocument, context );
52 updateWssDocument( context, wssDocument );
53 }
54 catch( Exception e )
55 {
56 e.printStackTrace();
57 }
58 }
59
60 IncomingWss incomingWss = wssContainer.getIncomingWssByName( wsdlRequest.getIncomingWss() );
61
62 if( StringUtils.hasContent( endpointDefaults.getIncomingWss() )
63 && ( incomingWss == null || endpointDefaults.getMode() != EndpointConfig.Mode.COMPLEMENT ) )
64 {
65 incomingWss = wssContainer.getIncomingWssByName( endpointDefaults.getIncomingWss() );
66 }
67
68 if( incomingWss != null )
69 {
70 context.setProperty( INCOMING_WSS_PROPERTY, incomingWss );
71 }
72 }
73 }