@Override protected Map<String, Object> extractUserDefinedHeaders(SoapMessage source) { Map<String, Object> headers = new HashMap<String, Object>(); SoapHeader soapHeader = source.getSoapHeader(); if (soapHeader != null) { Iterator<?> attributeIter = soapHeader.getAllAttributes(); while (attributeIter.hasNext()) { Object name = attributeIter.next(); if (name instanceof QName) { String qnameString = QNameUtils.toQualifiedName((QName) name); String value = soapHeader.getAttributeValue((QName) name); if (value != null) { headers.put(qnameString, value); } } } Iterator<?> elementIter = soapHeader.examineAllHeaderElements(); while (elementIter.hasNext()) { Object element = elementIter.next(); if (element instanceof SoapHeaderElement) { QName qname = ((SoapHeaderElement) element).getName(); String qnameString = QNameUtils.toQualifiedName(qname); headers.put(qnameString, element); } } } return headers; }
public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException { SaajSoapMessage soapMessage = (SaajSoapMessage) message; SoapHeaderElement messageId = soapMessage.getSoapHeader().addHeaderElement(SessionID_QNAME); if (StringUtil.validString(sessionId)) { messageId.setText(sessionId); } } }
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());
while (headerIterator.hasNext()) { SoapHeaderElement headerElement = headerIterator.next(); QName headerName = headerElement.getName(); if (headerElement.getMustUnderstand() && logger.isDebugEnabled()) { logger.debug("Handling MustUnderstand header " + headerName); if (headerElement.getMustUnderstand() && !headerUnderstood(mappedEndpoint, headerElement)) { notUnderstoodHeaderNames.add(headerName);
to.setText(map.getTo().toString()); to.setMustUnderstand(true); action.setText(map.getAction().toString()); messageId.setText(map.getMessageId().toString()); relatesTo.setText(map.getRelatesTo().toString());
Element address = document.createElementNS(getNamespaceUri(), QNameUtils.toQualifiedName(getAddressName())); address.setTextContent(epr.getAddress().toString()); transform(new DOMSource(address), headerElement.getResult()); if (getReferenceParametersName() != null && !epr.getReferenceParameters().isEmpty()) { Element referenceParams = document.createElementNS(getNamespaceUri(), QNameUtils.toQualifiedName(getReferenceParametersName())); addReferenceNodes(new DOMResult(referenceParams), epr.getReferenceParameters()); transform(new DOMSource(referenceParams), headerElement.getResult()); QNameUtils.toQualifiedName(getReferencePropertiesName())); addReferenceNodes(new DOMResult(referenceProps), epr.getReferenceProperties()); transform(new DOMSource(referenceProps), headerElement.getResult());
while (headerIterator.hasNext()) { SoapHeaderElement headerElement = headerIterator.next(); QName headerName = headerElement.getName(); if (headerElement.getMustUnderstand() && logger.isDebugEnabled()) { logger.debug("Handling MustUnderstand header " + headerName); if (headerElement.getMustUnderstand() && !headerUnderstood(mappedEndpoint, headerElement)) { notUnderstoodHeaderNames.add(headerName);
to.setText(map.getTo().toString()); to.setMustUnderstand(true); action.setText(map.getAction().toString()); messageId.setText(map.getMessageId().toString()); relatesTo.setText(map.getRelatesTo().toString());
Element address = document.createElementNS(getNamespaceUri(), QNameUtils.toQualifiedName(getAddressName())); address.setTextContent(epr.getAddress().toString()); transform(new DOMSource(address), headerElement.getResult()); if (getReferenceParametersName() != null && !epr.getReferenceParameters().isEmpty()) { Element referenceParams = document.createElementNS(getNamespaceUri(), QNameUtils.toQualifiedName(getReferenceParametersName())); addReferenceNodes(new DOMResult(referenceParams), epr.getReferenceParameters()); transform(new DOMSource(referenceParams), headerElement.getResult()); QNameUtils.toQualifiedName(getReferencePropertiesName())); addReferenceNodes(new DOMResult(referenceProps), epr.getReferenceProperties()); transform(new DOMSource(referenceProps), headerElement.getResult());
@Test public void testCustomSoapHeader() { DefaultSoapHeaderMapper mapper = new DefaultSoapHeaderMapper(); mapper.setReplyHeaderNames("x:attr", "x:elem"); SoapMessage soapMessage = mock(SoapMessage.class); SoapHeader soapHeader = mock(SoapHeader.class); @SuppressWarnings("unchecked") Iterator<QName> attrIterator = mock(Iterator.class); QName attribute = new QName("http://x", "attr", "x"); @SuppressWarnings("unchecked") Iterator<SoapHeaderElement> elementIterator = mock(Iterator.class); SoapHeaderElement soapHeaderElement = mock(SoapHeaderElement.class); QName element = new QName("http://x", "elem", "x"); when(soapMessage.getSoapHeader()).thenReturn(soapHeader); when(soapHeader.getAllAttributes()).thenReturn(attrIterator); when(attrIterator.hasNext()).thenReturn(true).thenReturn(false); when(attrIterator.next()).thenReturn(attribute); when(soapHeader.getAttributeValue(attribute)).thenReturn("attrValue"); when(soapHeader.examineAllHeaderElements()).thenReturn(elementIterator); when(elementIterator.hasNext()).thenReturn(true).thenReturn(false); when(elementIterator.next()).thenReturn(soapHeaderElement); when(soapHeaderElement.getName()).thenReturn(element); Map<String, Object> headers = mapper.toHeadersFromReply(soapMessage); assertEquals(2, headers.size()); assertEquals("attrValue", headers.get("x:attr")); assertSame(soapHeaderElement, headers.get("x:elem")); }
while (headerIterator.hasNext()) { SoapHeaderElement headerElement = headerIterator.next(); QName headerName = headerElement.getName(); if (headerElement.getMustUnderstand() && logger.isDebugEnabled()) { logger.debug("Handling MustUnderstand header " + headerName); if (headerElement.getMustUnderstand() && !headerUnderstood(mappedEndpoint, headerElement)) { notUnderstoodHeaderNames.add(headerName);
to.setText(map.getTo().toString()); to.setMustUnderstand(true); action.setText(map.getAction().toString()); messageId.setText(map.getMessageId().toString()); relatesTo.setText(map.getRelatesTo().toString());
SaajSoapMessage soapMessage = (SaajSoapMessage) message; SoapHeaderElement messageId = soapMessage.getSoapHeader().addHeaderElement(new QName("https://svn.some.schema/logging.xsd", "LoggingHeader", "NS1")); messageId.setText("NS1:abcdef1234");
DOMSource authSource = (DOMSource) auth.getSource();
Element address = document.createElementNS(getNamespaceUri(), QNameUtils.toQualifiedName(getAddressName())); address.setTextContent(epr.getAddress().toString()); transform(new DOMSource(address), headerElement.getResult()); if (getReferenceParametersName() != null && !epr.getReferenceParameters().isEmpty()) { Element referenceParams = document.createElementNS(getNamespaceUri(), QNameUtils.toQualifiedName(getReferenceParametersName())); addReferenceNodes(new DOMResult(referenceParams), epr.getReferenceParameters()); transform(new DOMSource(referenceParams), headerElement.getResult()); QNameUtils.toQualifiedName(getReferencePropertiesName())); addReferenceNodes(new DOMResult(referenceProps), epr.getReferenceProperties()); transform(new DOMSource(referenceProps), headerElement.getResult());
/** * (non-Javadoc) * @see org.springframework.ws.soap.server.SoapEndpointInterceptor#understands(org.springframework.ws.soap.SoapHeaderElement) */ public boolean understands(SoapHeaderElement header) { //see if header is accepted if (header.getName() != null && acceptedHeaders.contains(header.getName().toString())) { return true; } return false; }
while (headerIterator.hasNext()) { SoapHeaderElement headerElement = headerIterator.next(); QName headerName = headerElement.getName(); if (headerElement.getMustUnderstand() && logger.isDebugEnabled()) { logger.debug("Handling MustUnderstand header " + headerName); if (headerElement.getMustUnderstand() && !headerUnderstood(mappedEndpoint, headerElement)) { notUnderstoodHeaderNames.add(headerName);