public class WssRequestFilter extends AbstractWssRequestFilter implements RequestFilter {
public final static String INCOMING_WSS_PROPERTY = "WssRequestFilter#IncomingWss";
public void filterWsdlRequest(SubmitContext context, WsdlRequest wsdlRequest) {
WssContainer wssContainer = wsdlRequest.getOperation().getInterface().getProject().getWssContainer();
if (wssContainer == null) {
return;
}
OutgoingWss outgoingWss = wssContainer.getOutgoingWssByName(wsdlRequest.getOutgoingWss());
DefaultEndpointStrategy des = (DefaultEndpointStrategy) wsdlRequest.getOperation().getInterface().getProject()
.getEndpointStrategy();
EndpointDefaults endpointDefaults = des.getEndpointDefaults(wsdlRequest.getEndpoint());
if (StringUtils.hasContent(endpointDefaults.getOutgoingWss())
&& (outgoingWss == null || endpointDefaults.getMode() != EndpointConfig.Mode.COMPLEMENT)) {
outgoingWss = wssContainer.getOutgoingWssByName(endpointDefaults.getOutgoingWss());
}
if (outgoingWss != null) {
try {
Document wssDocument = getWssDocument(context);
if (!"true".equals(System.getProperty("soapui.savewss"))) {
context.setProperty("PreWssProcessedDocument", XmlUtils.serialize(wssDocument));
}
outgoingWss.processOutgoing(wssDocument, context);
updateWssDocument(context, wssDocument);
} catch (Exception e) {
e.printStackTrace();
}
}
IncomingWss incomingWss = wssContainer.getIncomingWssByName(wsdlRequest.getIncomingWss());
if (StringUtils.hasContent(endpointDefaults.getIncomingWss())
&& (incomingWss == null || endpointDefaults.getMode() != EndpointConfig.Mode.COMPLEMENT)) {
incomingWss = wssContainer.getIncomingWssByName(endpointDefaults.getIncomingWss());
}
if (incomingWss != null) {
context.setProperty(INCOMING_WSS_PROPERTY, incomingWss);
}