assertThat(headers.get(authHeader), instanceOf(SoapHeaderElement.class)); SoapHeaderElement header = (SoapHeaderElement) headers.get(authHeader); DOMSource source = (DOMSource) header.getSource(); NodeList nodeList = source.getNode().getChildNodes(); assertEquals("username", nodeList.item(0).getNodeName()); header = (SoapHeaderElement) headers.get("bar"); assertNotNull(header); source = (DOMSource) header.getSource(); nodeList = source.getNode().getChildNodes(); assertEquals("BAR", nodeList.item(0).getNodeValue()); header = (SoapHeaderElement) headers.get("baz"); assertNotNull(header); source = (DOMSource) header.getSource(); nodeList = source.getNode().getChildNodes(); assertEquals("BAZ", nodeList.item(0).getNodeValue());
DOMSource authSource = (DOMSource) auth.getSource();
@Override public void process(Exchange exchange) throws Exception { // check existence of trace header in the exchange if (exchange.getIn().getHeader(TRACE_HEADER) != null) { return; } SoapHeaderElement traceHeaderElm = exchange.getIn().getHeader(TRACE_HEADER_ELM, SoapHeaderElement.class); if (traceHeaderElm != null) { setFromTraceHeader(exchange, traceHeaderElm.getSource(), false); return; } try { // try unmarshalling body as TraceHeader (it could be TraceHeader child) Source traceHeaderElmSource = exchange.getIn().getBody(Source.class); if (traceHeaderElmSource != null) { setFromTraceHeader(exchange, traceHeaderElmSource, true); return; } } catch (JAXBException exc) { LOG.debug("Failed to unmarshal body as TraceHeader", exc); } if (isMandatoryHeader()) { throw new ValidationException(InternalErrorEnum.E104); } }
protected void parseContextFromSoapHeader(final WebServiceMessage message, final Channel channel) { if (message instanceof SoapMessage) { final SoapMessage soapMessage = (SoapMessage) message; final TraceeFilterConfiguration filterConfiguration = backend.getConfiguration(profile); if (filterConfiguration.shouldProcessContext(channel)) { final SoapHeader soapHeader = soapMessage.getSoapHeader(); if (soapHeader != null) { Iterator<SoapHeaderElement> tpicHeaders; try { tpicHeaders = soapHeader.examineHeaderElements(SOAP_HEADER_QNAME); } catch (SoapHeaderException ignored) { tpicHeaders = Collections.<SoapHeaderElement>emptyList().iterator(); } if (tpicHeaders.hasNext()) { final Map<String, String> parsedTpic = soapHeaderTransport.parseTpicHeader(tpicHeaders.next().getSource()); backend.putAll(filterConfiguration.filterDeniedParams(parsedTpic, channel)); } } } } else { logger.info("Message is obviously no soap message - Not instance of Spring-WS SoapMessage"); } }
.unmarshal(soapHeaderElement.getSource());