Refine search
public Document getDocument() { Assert.state(messageFactory != null, "Could find message factory to use"); // return saajSoapMessage.getSaajMessage().getSOAPPart(); // does not work, see SWS-345 try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); getSaajMessage().writeTo(bos); ByteArrayInputStream bis = new ByteArrayInputStream(bos.toByteArray()); SOAPMessage saajMessage = messageFactory.createMessage(getSaajMessage().getMimeHeaders(), bis); setSaajMessage(saajMessage); return saajMessage.getSOAPPart(); } catch (SOAPException ex) { throw new SaajSoapMessageException("Could not save changes", ex); } catch (IOException ex) { throw new SaajSoapMessageException("Could not save changes", ex); } }
SOAPMessage message = MessageFactory.newInstance() .createMessage(new MimeHeaders(), new ByteArrayInputStream(soap.getBytes("UTF-8"))); SoapMessage soapMessage = new SaajSoapMessage(message); DefaultSoapHeaderMapper mapper = new DefaultSoapHeaderMapper(); String authHeader = "auth";
@Override public boolean convertToXopPackage() { convertMessageToXop(); convertPartToXop(); return true; }
@Test public void testDoNotOverriderSoapAction() throws Exception { MimeHeaders mimeHeaders = new MimeHeaders(); String testSoapAction = "fooAction"; mimeHeaders.setHeader(TransportConstants.HEADER_SOAP_ACTION, testSoapAction); String soap = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\"></soapenv:Envelope>"; SOAPMessage message = MessageFactory.newInstance() .createMessage(mimeHeaders, new ByteArrayInputStream(soap.getBytes())); SaajSoapMessage soapMessage = new SaajSoapMessage(message); DefaultSoapHeaderMapper headerMapper = new DefaultSoapHeaderMapper(); headerMapper.fromHeadersToRequest(new MessageHeaders(null), soapMessage); assertEquals(testSoapAction, soapMessage.getSoapAction()); }
public boolean convertToXopPackage() { if (getSaajVersion() >= SaajUtils.SAAJ_13) { convertMessageToXop(); convertPartToXop(); return true; } else { return false; } }
@Override public void writeTo(OutputStream outputStream) throws IOException { MimeHeaders mimeHeaders = getSaajMessage().getMimeHeaders(); if (ObjectUtils.isEmpty(mimeHeaders.getHeader(TransportConstants.HEADER_ACCEPT))) { mimeHeaders.setHeader(TransportConstants.HEADER_ACCEPT, getVersion().getContentType()); SOAPMessage message = getSaajMessage(); message.saveChanges(); if (outputStream instanceof TransportOutputStream) { TransportOutputStream transportOutputStream = (TransportOutputStream) outputStream; MimeHeaders headers = message.getMimeHeaders(); if (ObjectUtils .isEmpty(
@Override public SoapEnvelope getEnvelope() { if (envelope == null) { try { SOAPEnvelope saajEnvelope = getSaajMessage().getSOAPPart().getEnvelope(); envelope = new SaajSoapEnvelope(saajEnvelope, langAttributeOnSoap11FaultString); } catch (SOAPException ex) { throw new SaajSoapEnvelopeException(ex); } } return envelope; }
private void alterSoapEnvelope(SaajSoapMessage soapResponse) { try { SOAPMessage soapMessage = soapResponse.getSaajMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPHeader header = soapMessage.getSOAPHeader(); SOAPBody body = soapMessage.getSOAPBody(); SOAPFault fault = body.getFault(); envelope.removeNamespaceDeclaration(envelope.getPrefix()); envelope.addNamespaceDeclaration(PREFERRED_PREFIX, SOAP_ENV_NAMESPACE); envelope.setPrefix(PREFERRED_PREFIX); header.setPrefix(PREFERRED_PREFIX); body.setPrefix(PREFERRED_PREFIX); if (fault != null) { fault.setPrefix(PREFERRED_PREFIX); } } catch (SOAPException e) { e.printStackTrace(); } }
private void convertPartToXop() { SOAPPart saajPart = saajMessage.getSOAPPart(); String[] oldContentTypes = saajPart.getMimeHeader(TransportConstants.HEADER_CONTENT_TYPE); String oldContentType = !ObjectUtils.isEmpty(oldContentTypes) ? oldContentTypes[0] : getVersion().getContentType(); StringBuilder builder = new StringBuilder(CONTENT_TYPE_XOP); builder.append(";type="); builder.append('"'); builder.append(oldContentType); builder.append('"'); saajPart.setMimeHeader(TransportConstants.HEADER_CONTENT_TYPE, builder.toString()); }
public void marshalWithSoapActionHeader(MyObject o) { webServiceTemplate.marshalSendAndReceive(o, new WebServiceMessageCallback() { public void doWithMessage(WebServiceMessage message) { SaajSoapMessage saajSoapMessage = (SaajSoapMessage) message; SOAPMessage soapMessage = saajSoapMessage.getSaajMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); SOAPEnvelope envelope = soapPart.getEnvelope(); SOAPHeader header = soapMessage.getSOAPHeader(); header.detachNode(); } }); }
inputStream = checkForUtf8ByteOrderMark(inputStream); SOAPMessage saajMessage = messageFactory.createMessage(mimeHeaders, inputStream); saajMessage.getSOAPPart().getEnvelope(); postProcess(saajMessage); return new SaajSoapMessage(saajMessage, langAttributeOnSoap11FaultString, messageFactory); SOAPMessage saajMessage = messageFactory.createMessage(mimeHeaders, inputStream); postProcess(saajMessage); return new SaajSoapMessage(saajMessage, langAttributeOnSoap11FaultString);
try { SaajSoapMessage soapMessage = (SaajSoapMessage) message; SOAPMessage smc = soapMessage.getSaajMessage(); SOAPHeader header = smc.getSOAPHeader(); action.addTextNode("http://tempuri.org/ITerytWs1/"+IS_LOGGED); SOAPBody soapBody = smc.getSOAPBody(); QName isLoggedQName = new QName(TEM_URI, IS_LOGGED, TEM); soapBody.addChildElement(isLoggedQName); SOAPBody soapBody = saajMessage.getSOAPBody(); NodeList responseNodeList = soapBody.getChildNodes(); for (int count = 0; count < responseNodeList.getLength(); count++) {
@Override public void setSoapAction(String soapAction) { MimeHeaders mimeHeaders = getSaajMessage().getMimeHeaders(); soapAction = SoapUtils.escapeAction(soapAction); if (SoapVersion.SOAP_11 == getVersion()) { mimeHeaders.setHeader(TransportConstants.HEADER_SOAP_ACTION, soapAction); } else if (SoapVersion.SOAP_12 == getVersion()) { // force save of Content Type header try { saajMessage.saveChanges(); } catch (SOAPException ex) { throw new SaajSoapMessageException("Could not save message", ex); } String[] contentTypes = mimeHeaders.getHeader(TransportConstants.HEADER_CONTENT_TYPE); String contentType = !ObjectUtils.isEmpty(contentTypes) ? contentTypes[0] : getVersion().getContentType(); contentType = SoapUtils.setActionInContentType(contentType, soapAction); mimeHeaders.setHeader(TransportConstants.HEADER_CONTENT_TYPE, contentType); mimeHeaders.removeHeader(TransportConstants.HEADER_SOAP_ACTION); } else { throw new IllegalStateException("Unsupported SOAP version: " + getVersion()); } }
@Override public Attachment addAttachment(String contentId, DataHandler dataHandler) { Assert.hasLength(contentId, "contentId must not be empty"); Assert.notNull(dataHandler, "dataHandler must not be null"); SOAPMessage message = getSaajMessage(); AttachmentPart attachmentPart = message.createAttachmentPart(dataHandler); message.addAttachmentPart(attachmentPart); attachmentPart.setContentId(contentId); attachmentPart.setMimeHeader(TransportConstants.HEADER_CONTENT_TRANSFER_ENCODING, "binary"); return new SaajAttachment(attachmentPart); }
private void populateExchangeWithBreadcrumbFromSaajMessage(Exchange exchange, SaajSoapMessage saajSoap) { SOAPMessage soapMessageRequest = null; if (saajSoap != null) { soapMessageRequest = saajSoap.getSaajMessage(); if (soapMessageRequest != null) { MimeHeaders mimeHeaders = soapMessageRequest.getMimeHeaders(); if (mimeHeaders != null) { String[] breadcrumbIdHeaderValues = mimeHeaders.getHeader(Exchange.BREADCRUMB_ID); // expected to get one token // if more than one token expected, // presumably breadcrumb generation strategy // may be required to implement if (breadcrumbIdHeaderValues != null && breadcrumbIdHeaderValues.length >= 1) { exchange.getIn().setHeader(Exchange.BREADCRUMB_ID, breadcrumbIdHeaderValues[0]); } } } } }
@Override public String getSoapAction() { MimeHeaders mimeHeaders = getSaajMessage().getMimeHeaders(); if (SoapVersion.SOAP_11 == getVersion()) { String[] actions = mimeHeaders.getHeader(TransportConstants.HEADER_SOAP_ACTION); return ObjectUtils.isEmpty(actions) ? TransportConstants.EMPTY_SOAP_ACTION : actions[0]; } else if (SoapVersion.SOAP_12 == getVersion()) { String[] contentTypes = mimeHeaders.getHeader(TransportConstants.HEADER_CONTENT_TYPE); return !ObjectUtils.isEmpty(contentTypes) ? SoapUtils.extractActionFromContentType(contentTypes[0]) : TransportConstants.EMPTY_SOAP_ACTION; } else { throw new IllegalStateException("Unsupported SOAP version: " + getVersion()); } }
private void convertMessageToXop() { MimeHeaders mimeHeaders = saajMessage.getMimeHeaders(); String[] oldContentTypes = mimeHeaders.getHeader(TransportConstants.HEADER_CONTENT_TYPE); String oldContentType = !ObjectUtils.isEmpty(oldContentTypes) ? oldContentTypes[0] : getVersion().getContentType(); StringBuilder builder = new StringBuilder(CONTENT_TYPE_XOP); builder.append(";type="); builder.append('"'); builder.append(oldContentType); builder.append('"'); mimeHeaders.setHeader(TransportConstants.HEADER_CONTENT_TYPE, builder.toString()); }
public void setSoapAction(String soapAction) { MimeHeaders mimeHeaders = getImplementation().getMimeHeaders(getSaajMessage()); soapAction = SoapUtils.escapeAction(soapAction); if (SoapVersion.SOAP_11 == getVersion()) { mimeHeaders.setHeader(TransportConstants.HEADER_SOAP_ACTION, soapAction); } else if (SoapVersion.SOAP_12 == getVersion()) { // force save of Content Type header if (saajMessage.saveRequired()) { try { saajMessage.saveChanges(); } catch (SOAPException ex) { throw new SaajSoapMessageException("Could not save message", ex); } } String[] contentTypes = mimeHeaders.getHeader(TransportConstants.HEADER_CONTENT_TYPE); String contentType = !ObjectUtils.isEmpty(contentTypes) ? contentTypes[0] : getVersion().getContentType(); contentType = SoapUtils.setActionInContentType(contentType, soapAction); mimeHeaders.setHeader(TransportConstants.HEADER_CONTENT_TYPE, contentType); mimeHeaders.removeHeader(TransportConstants.HEADER_SOAP_ACTION); } else { throw new IllegalStateException("Unsupported SOAP version: " + getVersion()); } }
@Override @SuppressWarnings("unchecked") public Iterator<Attachment> getAttachments() throws AttachmentException { Iterator<AttachmentPart> iterator = getSaajMessage().getAttachments(); return new SaajAttachmentIterator(iterator); }
/** * Secures the given SoapMessage message in accordance with the defined security policy. * * @param soapMessage the message to be secured * @throws XwsSecuritySecurementException in case of errors * @throws IllegalArgumentException when soapMessage is not a {@code SaajSoapMessage} */ @Override protected void secureMessage(SoapMessage soapMessage, MessageContext messageContext) throws XwsSecuritySecurementException { Assert.isTrue(soapMessage instanceof SaajSoapMessage, "XwsSecurityInterceptor requires a SaajSoapMessage. " + "Use a SaajSoapMessageFactory to create the SOAP messages."); SaajSoapMessage saajSoapMessage = (SaajSoapMessage) soapMessage; try { ProcessingContext context = processor.createProcessingContext(saajSoapMessage.getSaajMessage()); SOAPMessage result = processor.secureOutboundMessage(context); saajSoapMessage.setSaajMessage(result); } catch (XWSSecurityException ex) { throw new XwsSecuritySecurementException(ex.getMessage(), ex); } catch (WssSoapFaultException ex) { throw new XwsSecurityFaultException(ex.getFaultCode(), ex.getFaultString(), ex.getFaultActor()); } }