/** * Send an outbound message, assumed to contain all the name-value * mappings of the corresponding input message (if any). * * @param message the message to be sent. */ public void prepare(Message message) throws IOException { message.put(HTTP_RESPONSE, response); OutputStream os = message.getContent(OutputStream.class); if (os == null) { message.setContent(OutputStream.class, new WrappedOutputStream(message)); } }
@Override public void handleFault(Message message) { Exception ex = message.getContent(Exception.class); if (ex instanceof AuthenticationException) { HttpServletResponse resp = (HttpServletResponse)message.getExchange() .getInMessage().get(AbstractHTTPDestination.HTTP_RESPONSE); resp.setStatus(HttpServletResponse.SC_UNAUTHORIZED); resp.setHeader("WWW-Authenticate", authenticationType + " realm=\"" + realm + "\""); resp.setContentType("text/plain"); try { resp.getOutputStream().write(ex.getMessage().getBytes()); resp.getOutputStream().flush(); message.getInterceptorChain().setFaultObserver(null); //avoid return soap fault message.getInterceptorChain().abort(); } catch (IOException e) { // TODO } } }
public void setMessage(SOAPMessage message) { if (getWrappedMessage().getContent(Object.class) instanceof SOAPMessage) { getWrappedMessage().setContent(Object.class, message); } else { getWrappedMessage().setContent(SOAPMessage.class, message); } }
public Source getPayload() { Source source = null; Service.Mode mode = msgContext.getWrappedMessage().getExchange().get(Service.Mode.class); } else { Message message = msgContext.getWrappedMessage(); source = message.getContent(Source.class); if (source == null) { SOAPMessage msg = message.getContent(SOAPMessage.class); XMLStreamReader reader = null; if (msg != null) { DocumentFragment doc = DOMUtils.getEmptyDocument().createDocumentFragment(); W3CDOMStreamWriter writer = new W3CDOMStreamWriter(doc); reader = message.getContent(XMLStreamReader.class); message.setContent(XMLStreamReader.class, reader); message.setContent(Source.class, source); } else if (!(source instanceof DOMSource)) { W3CDOMStreamWriter writer = new W3CDOMStreamWriter(); XMLStreamReader reader = message.getContent(XMLStreamReader.class); if (reader == null) { reader = StaxUtils.createXMLStreamReader(source); message.setContent(XMLStreamReader.class, reader);
public void handleMessage(Message message) throws Fault { W3CDOMStreamWriter domWriter = (W3CDOMStreamWriter)message.getContent(XMLStreamWriter.class); XMLStreamWriter origWriter = (XMLStreamWriter)message .get(LogicalHandlerOutInterceptor.ORIGINAL_WRITER); XMLStreamReader reader = (XMLStreamReader)message.get("LogicalHandlerInterceptor.INREADER"); SOAPMessage origMessage = null; if (reader != null) { origMessage = message.getContent(SOAPMessage.class); message.setContent(XMLStreamReader.class, reader); message.removeContent(SOAPMessage.class); } else if (domWriter.getCurrentFragment() != null) { message.setContent(Source.class, source); message.setContent(XMLStreamReader.class, new W3CDOMStreamReader(domWriter.getCurrentFragment())); } else if (domWriter.getDocument().getDocumentElement() != null) { .getContent(XMLStreamReader.class)); responseMsg.put(InterceptorChain.STARTING_AT_INTERCEPTOR_ID, LogicalHandlerInInterceptor.class.getName()); observer.onMessage(responseMsg); reader = message.getContent(XMLStreamReader.class); message.removeContent(XMLStreamReader.class); if (reader != null) { throw new Fault(e);
public void handleMessage(Message message) throws Fault { if (binding.getHandlerChain().isEmpty()) { return; } HandlerChainInvoker invoker = getInvoker(message); if (invoker.getLogicalHandlers().isEmpty()) { return; } XMLStreamWriter origWriter = message.getContent(XMLStreamWriter.class); Node nd = message.getContent(Node.class); SOAPMessage m = message.getContent(SOAPMessage.class); Document document = null; if (m != null) { document = m.getSOAPPart(); } else if (nd != null) { document = nd.getOwnerDocument(); } else { document = DOMUtils.newDocument(); message.setContent(Node.class, document); } W3CDOMStreamWriter writer = new W3CDOMStreamWriter(document.createDocumentFragment()); // Replace stax writer with DomStreamWriter message.setContent(XMLStreamWriter.class, writer); message.put(ORIGINAL_WRITER, origWriter); message.getInterceptorChain().add(ending); } @Override
private org.apache.cxf.security.SecurityContext getInternalSecurityContext() { org.apache.cxf.security.SecurityContext sc = m.getContent(org.apache.cxf.security.SecurityContext.class); if (sc == null) { sc = m.get(org.apache.cxf.security.SecurityContext.class); } return sc; } }
} else if (DataSource.class.isAssignableFrom(type)) { MessageContentsList list = (MessageContentsList)message.getContent(List.class); DataSource ds = (DataSource)list.get(0); String ct = ds.getContentType(); if (ct.toLowerCase().contains("multipart/related")) { Message msg = new MessageImpl(); msg.setExchange(message.getExchange()); msg.put(Message.CONTENT_TYPE, ct); try { msg.setContent(InputStream.class, ds.getInputStream()); AttachmentDeserializer deser = new AttachmentDeserializer(msg); deser.initializeAttachments(); } catch (IOException ex) { throw new Fault(ex); final InputStream in = msg.getContent(InputStream.class); final String ct2 = (String)msg.get(Message.CONTENT_TYPE); list.set(0, new DataSource() { OutputStream out = message.getContent(OutputStream.class); message.put(Message.CONTENT_TYPE, ct); try { InputStream in = ds.getInputStream(); MessageContentsList list = (MessageContentsList)message.getContent(List.class); Source ds = (Source)list.get(0); if (!(ds instanceof DOMSource)) {
public void handleMessage(Message message) throws Fault { try { message.getContent(OutputStream.class).close(); } catch (IOException e) { throw new Fault(e); } }
@Override public void close(Message msg) throws IOException { super.close(msg); if (msg.getExchange() == null) { return; } Message m = msg.getExchange().getInMessage(); if (m == null) { return; } InputStream is = m.getContent(InputStream.class); if (is != null) { try { is.close(); m.removeContent(InputStream.class); } catch (IOException ioex) { //ignore } } } }
public void handleMessage(Message message) throws Fault { OutputStream out = message.getContent(OutputStream.class); if (out != null) { CountingOutputStream newOut = new CountingOutputStream(out); message.setContent(OutputStream.class, newOut); message.getExchange().put(CountingOutputStream.class, newOut); } } }
public void handleMessage(Message message) throws Fault { Document doc = (Document)message.get(WSDLGetInterceptor.DOCUMENT_HOLDER); if (doc == null) { return; } message.remove(WSDLGetInterceptor.DOCUMENT_HOLDER); XMLStreamWriter writer = message.getContent(XMLStreamWriter.class); if (writer == null) { return; } message.put(Message.CONTENT_TYPE, "text/xml"); try { StaxUtils.writeDocument(doc, writer, !MessageUtils.getContextualBoolean(message, StaxOutInterceptor.FORCE_START_DOCUMENT, false), true); } catch (XMLStreamException e) { throw new Fault(e); } } }
private DispatchingRequest getDispatchingRequest(Message message) { Exchange exchange = message.getExchange(); String action = (String) exchange.get(MULE_SOAP_ACTION); Map<String, String> headers = new HashMap<>(); headers.put(SOAP_ACTION, action); // It's important that content type is bundled with the headers headers.put(CONTENT_TYPE, (String) message.get(CONTENT_TYPE)); headers.putAll((Map) exchange.get(MULE_TRANSPORT_HEADERS_KEY)); InputStream content = new ByteArrayInputStream(message.getContent(OutputStream.class).toString().getBytes()); return new DispatchingRequest(content, (String) exchange.get(MULE_WSC_ADDRESS), headers); } }
inMessage.getExchange().put(Bus.class, bus); inMessage.put(Message.DECOUPLED_CHANNEL_MESSAGE, Boolean.TRUE); inMessage.put(Message.RESPONSE_CODE, HttpURLConnection.HTTP_OK); InputStream in = inMessage.getContent(InputStream.class); if (in != null) { CachedOutputStream cos = new CachedOutputStream(); IOUtils.copy(in, cos); inMessage.setContent(InputStream.class, cos.getInputStream());
private void handleAbort(Message message, W3CDOMStreamWriter writer) { message.getInterceptorChain().abort(); if (!message.getExchange().isOneWay()) { //server side inbound Endpoint e = message.getExchange().getEndpoint(); Message responseMsg = new MessageImpl(); responseMsg.setExchange(message.getExchange()); responseMsg = e.getBinding().createMessage(responseMsg); message.getExchange().setOutMessage(responseMsg); XMLStreamReader reader = message.getContent(XMLStreamReader.class); if (reader == null && writer != null) { reader = StaxUtils.createXMLStreamReader(writer.getDocument()); } InterceptorChain chain = OutgoingChainInterceptor .getOutInterceptorChain(message.getExchange()); responseMsg.setInterceptorChain(chain); responseMsg.put("LogicalHandlerInterceptor.INREADER", reader); chain.doIntercept(responseMsg); } }
private void doFromSoapMessage(Message message, Object sm) { SOAPMessage m = (SOAPMessage)sm; MessageContentsList list = (MessageContentsList)message.getContent(List.class); if (list == null) { list = new MessageContentsList(); message.setContent(List.class, list); } Object o = m; if (StreamSource.class.isAssignableFrom(type)) { try { try (CachedOutputStream out = new CachedOutputStream()) { XMLStreamWriter xsw = StaxUtils.createXMLStreamWriter(out); StaxUtils.copy(new DOMSource(m.getSOAPPart()), xsw); xsw.close(); o = new StreamSource(out.getInputStream()); } } catch (Exception e) { throw new Fault(e); } } else if (SAXSource.class.isAssignableFrom(type)) { o = new StaxSource(new W3CDOMStreamReader(m.getSOAPPart())); } else if (Source.class.isAssignableFrom(type)) { o = new DOMSource(m.getSOAPPart()); } list.set(0, o); }
@Override public void handleMessage(final Message message) throws Fault { if (message.containsKey(WIRE_TAP_STARTED)) { return; } message.put(WIRE_TAP_STARTED, Boolean.TRUE); try { InputStream is = message.getContent(InputStream.class); if (is != null) { handleInputStream(message, is); } else { Reader reader = message.getContent(Reader.class); if (reader != null) { handleReader(message, reader); } } } catch (Exception e) { throw new Fault(e); } }
@Override public void handleFault(Message message) { FaultMode mode = message.get(FaultMode.class); Exception exception = message.getContent(Exception.class); if (exception != null && exception.getCause() != null) { if (mode != FaultMode.CHECKED_APPLICATION_FAULT) { if (exception.getCause() instanceof NotificationFailedException) { message.put(FaultMode.class, FaultMode.CHECKED_APPLICATION_FAULT); } } } }
Service.Mode mode = (Service.Mode)msgContext.getWrappedMessage() .getContextualProperty(Service.Mode.class.getName()); SOAPMessage m = message.getContent(SOAPMessage.class); if (m != null && !MessageUtils.isOutbound(message)) { try { message.setContent(XMLStreamReader.class, r); } catch (Exception e) { throw new Fault(e); s = new DOMSource(msg.getSOAPPart()); } catch (Exception e) { throw new Fault(e); } else if (message instanceof XMLMessage && message.getContent(DataSource.class) != null) { throw new Fault( new org.apache.cxf.common.i18n.Message( "GETPAYLOAD_OF_DATASOURCE_NOT_VALID_XMLHTTPBINDING", msgContext.getWrappedMessage().setContent(XMLStreamReader.class, reader); msgContext.getWrappedMessage().setContent(Source.class, s);
public void handleMessage(Message message) { AttachmentSerializer ser = message.getContent(AttachmentSerializer.class); if (ser != null) { try { String cte = (String)message.getContextualProperty(Message.CONTENT_TRANSFER_ENCODING); if (cte != null) { ser.setContentTransferEncoding(cte); } ser.writeAttachments(); } catch (IOException e) { throw new Fault(new org.apache.cxf.common.i18n.Message("WRITE_ATTACHMENTS", BUNDLE), e); } } }