@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 } } }
message.getInterceptorChain().abort(); if (ep.getInFaultObserver() != null) { ep.getInFaultObserver().onMessage(message);
public void handleMessage(SoapMessage message) { InterceptorChain chain = message.getInterceptorChain(); chain.abort(); }
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); } }
if (requestor) { message.getInterceptorChain().abort(); if (!message.getExchange().isOneWay()) { Endpoint e = message.getExchange().getEndpoint();
@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 } } }
@Override public void handleMessage(SoapMessage message) throws Fault { if (filter == null || filter.getContent() == null) { LOG.info("No filter for this subscription"); return; } javax.xml.soap.SOAPMessage msg = message.getContent(javax.xml.soap.SOAPMessage.class); if (!FilteringUtil.runFilterOnMessage(msg, filter)) { message.getInterceptorChain().abort(); } } }
@Override public void handleMessage(SoapMessage message) throws Fault { if (filter == null || filter.getContent() == null) { LOG.info("No filter for this subscription"); return; } javax.xml.soap.SOAPMessage msg = message.getContent(javax.xml.soap.SOAPMessage.class); if (!FilteringUtil.runFilterOnMessage(msg, filter)) { message.getInterceptorChain().abort(); } } }
private void sendErrorResponse(Message message, int responseCode) { Message outMessage = getOutMessage(message); outMessage.put(Message.RESPONSE_CODE, responseCode); // Set the response headers Map responseHeaders = (Map) message.get(Message.PROTOCOL_HEADERS); if (responseHeaders != null) { responseHeaders.put("WWW-Authenticate", Arrays.asList("Basic realm=\"" + realm + "\"")); responseHeaders.put("Content-Length", Arrays.asList("0")); } message.getInterceptorChain().abort(); try { // getConduit(message).prepare(outMessage); message.getExchange().getConduit(message).prepare(outMessage); // TEST ME OutputStream os = outMessage.getContent(OutputStream.class); String errmsg = "Error " + responseCode + ": "; os.write(errmsg.getBytes()); LOGGER.info("Sending error " + responseCode); close(outMessage); } catch (IOException e) { LOGGER.warn(e.getMessage(), e); } }
private void sendErrorResponse(Message message, int responseCode) { Message outMessage = getOutMessage(message); outMessage.put(Message.RESPONSE_CODE, responseCode); // Set the response headers @SuppressWarnings("unchecked") Map<String, List<String>> responseHeaders = (Map)message.get(Message.PROTOCOL_HEADERS); if (responseHeaders != null) { responseHeaders.put("WWW-Authenticate", Collections.singletonList("Basic realm=" + authentication.getRealm())); responseHeaders.put("Content-length", Collections.singletonList("0")); } message.getInterceptorChain().abort(); try { getConduit(message).prepare(outMessage); close(outMessage); } catch (IOException e) { log.warn(e.getMessage(), e); } }
public void handleMessage(Message message) throws Fault { Fault fault = (Fault)message.getContent(Exception.class); Throwable ex = fault.getCause(); if (!(ex instanceof SecurityException)) { throw new RuntimeException("Security Exception is expected"); } HttpServletResponse response = (HttpServletResponse)message.getExchange().getInMessage() .get(AbstractHTTPDestination.HTTP_RESPONSE); int status = ex instanceof AccessDeniedException ? 403 : 401; response.setStatus(status); try { response.getOutputStream().write(ex.getMessage().getBytes()); response.getOutputStream().flush(); } catch (IOException iex) { // ignore } message.getInterceptorChain().abort(); }
public void handleMessage(SoapMessage message) { XMLStreamReader xmlReader = message.getContent(XMLStreamReader.class); if (xmlReader == null) { return; } try { // advance to first tag. int x = xmlReader.getEventType(); while (x != XMLStreamConstants.START_ELEMENT && x != XMLStreamConstants.END_ELEMENT && xmlReader.hasNext()) { x = xmlReader.next(); } if (!xmlReader.hasNext()) { //end of document, just return return; } } catch (XMLStreamException e) { throw new SoapFault(new Message("XML_STREAM_EXC", LOG, e.getMessage()), e, message.getVersion().getSender()); } if (message.getVersion().getFault().equals(xmlReader.getName()) && isRequestor(message)) { Endpoint ep = message.getExchange().getEndpoint(); message.getInterceptorChain().abort(); if (ep.getInFaultObserver() != null) { ep.getInFaultObserver().onMessage(message); } } } }
public void handleMessage(SoapMessage message) { XMLStreamReader xmlReader = message.getContent(XMLStreamReader.class); if (xmlReader == null) { return; } try { // advance to first tag. int x = xmlReader.getEventType(); while (x != XMLStreamConstants.START_ELEMENT && x != XMLStreamConstants.END_ELEMENT && xmlReader.hasNext()) { x = xmlReader.next(); } if (!xmlReader.hasNext()) { //end of document, just return return; } } catch (XMLStreamException e) { throw new SoapFault(new Message("XML_STREAM_EXC", LOG, e.getMessage()), e, message.getVersion().getSender()); } if (message.getVersion().getFault().equals(xmlReader.getName()) && isRequestor(message)) { Endpoint ep = message.getExchange().getEndpoint(); message.getInterceptorChain().abort(); if (ep.getInFaultObserver() != null) { ep.getInFaultObserver().onMessage(message); } } } }
public void handleMessage(Message message) throws Fault { if (message.getExchange().get("org.apache.cxf.systest.for-out-fault-interceptor") == null) { return; } handleMessageCalled = true; Exception ex = message.getContent(Exception.class); if (ex == null) { throw new RuntimeException("Exception is expected"); } if (!(ex instanceof Fault)) { throw new RuntimeException("Fault is expected"); } // deal with the actual exception : fault.getCause() HttpServletResponse response = (HttpServletResponse)message.getExchange() .getInMessage().get(AbstractHTTPDestination.HTTP_RESPONSE); response.setStatus(500); try { response.getOutputStream().write("<nobook/>".getBytes()); response.getOutputStream().flush(); message.getInterceptorChain().abort(); } catch (IOException ioex) { throw new RuntimeException("Error writing the response"); } }
inMessage.getExchange().put(InterceptorProvider.class, getConfiguration()); inMessage.setContent(Exception.class, new Fault(t)); inMessage.getInterceptorChain().abort(); if (ep.getInFaultObserver() != null) { ep.getInFaultObserver().onMessage(inMessage);
inMessage.getExchange().put(InterceptorProvider.class, getConfiguration()); inMessage.setContent(Exception.class, new Fault(t)); inMessage.getInterceptorChain().abort(); if (ep.getInFaultObserver() != null) { ep.getInFaultObserver().onMessage(inMessage);
/** * This function issues a 401 response back down the conduit. * If the realm is not null, a WWW-Authenticate: Basic realm= * header is sent. The interceptor chain is aborted stopping * the Message from going to the servant. */ private void replyUnauthorized(Message message, String realm) { Message outMessage = getOutMessage(message); outMessage.put(Message.RESPONSE_CODE, HttpURLConnection.HTTP_UNAUTHORIZED); if (realm != null) { setHeader(outMessage, "WWW-Authenticate", "Basic realm=" + realm); } message.getInterceptorChain().abort(); try { getConduit(message).prepare(outMessage); close(outMessage); } catch (IOException e) { //System.out.println("Prepare of message not working." + e); e.printStackTrace(); } }
outMessage.getInterceptorChain().abort();
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); } }