protected void updateHeader(Exchange exchange, MessageContext ctx) { if (ctx.containsKey(Header.HEADER_LIST) && ctx.get(Header.HEADER_LIST) instanceof List<?>) { List<?> list = (List<?>) ctx.get(Header.HEADER_LIST); if (list != null && !list.isEmpty()) { SoapMessage sm = (SoapMessage) createResponseMessage(exchange); if (sm != null) { Iterator<?> iter = list.iterator(); while (iter.hasNext()) { Header header = (Header) iter.next(); if (header.getDirection() != Header.Direction.DIRECTION_IN && !header.getName().getNamespaceURI(). equals("http://docs.oasis-open.org/wss/2004/01/" + "oasis-200401-wss-wssecurity-secext-1.0.xsd") && !header.getName().getNamespaceURI(). equals("http://docs.oasis-open.org/" + "wss/oasis-wss-wssecurity-secext-1.1.xsd")) { //don't copy over security header, out interceptor chain will take care of it. sm.getHeaders().add(header); } } } } } }
private void checkUnderstand(Set<Header> mustUnderstandHeaders, Set<QName> mustUnderstandQNames, Set<QName> notUnderstandHeaders) { for (Header header : mustUnderstandHeaders) { QName qname = header.getName(); if (!mustUnderstandQNames.contains(qname)) { notUnderstandHeaders.add(header.getName()); } } }
private Header getHeader(List<Header> headers, QName name) { for (Header header : headers) { if (header.getName().equals(name)) { return header; } } return null; }
private void checkUnderstand(Set<Header> mustUnderstandHeaders, Set<QName> mustUnderstandQNames, Set<QName> notUnderstandHeaders) { for (Header header : mustUnderstandHeaders) { QName qname = header.getName(); if (!mustUnderstandQNames.contains(qname)) { notUnderstandHeaders.add(header.getName()); } } }
private boolean isWSAHeader(Header header) { return header.getName().getNamespaceURI().startsWith(Names.WSA_NAMESPACE_NAME); } }
private boolean isWSAHeader(Header header) { return header.getName().getNamespaceURI().startsWith(Names.WSA_NAMESPACE_NAME); } }
public boolean hasHeader(QName qn) { for (Header head : getHeaders()) { if (head.getName().equals(qn)) { return true; } } return false; } public Header getHeader(QName qn) {
public Header getHeader(QName qn) { for (Header head : getHeaders()) { if (head.getName().equals(qn)) { return head; } } return null; }
public Header getHeader(QName qn) { for (Header head : getHeaders()) { if (head.getName().equals(qn)) { return head; } } return null; }
/** * Discard any pre-existing MAP headers - this may occur if the runtime * re-uses a SOAP message. * * @param header the SOAP header * @param maps the current MAPs */ private void discardMAPs(List<Header> header, AddressingProperties maps) { Iterator<Header> iter = header.iterator(); while (iter.hasNext()) { Header hdr = iter.next(); if (Names.WSA_NAMESPACE_NAME.equals(hdr.getName().getNamespaceURI()) || Names200408.WSA_NAMESPACE_NAME.equals(hdr.getName().getNamespaceURI())) { iter.remove(); } } }
/** * Discard any pre-existing MAP headers - this may occur if the runtime * re-uses a SOAP message. * * @param header the SOAP header * @param maps the current MAPs */ private void discardMAPs(List<Header> header, AddressingProperties maps) { Iterator<Header> iter = header.iterator(); while (iter.hasNext()) { Header hdr = iter.next(); if (Names.WSA_NAMESPACE_NAME.equals(hdr.getName().getNamespaceURI()) || Names200408.WSA_NAMESPACE_NAME.equals(hdr.getName().getNamespaceURI())) { iter.remove(); } } }
/** * Remove a SOAP header from given header list. * * @param list header list * @param name name identifying a header */ private void removeHeader(List<Header> list, QName name) { if (list != null) { Iterator<Header> headerIterator = list.iterator(); while (headerIterator.hasNext()) { Header header = headerIterator.next(); if (header.getName().equals(name)) { headerIterator.remove(); } } } }
public boolean hasHeader(QName qn) { for (Header head : getHeaders()) { if (head.getName().equals(qn)) { return true; } } return false; } public Header getHeader(QName qn) {
@Override public void handleMessage(SoapMessage message) throws Fault { List<Header> headers = message.getHeaders(); for (Header header : headers) { if ("ProcessingStatus".equals(header.getName().getLocalPart()) && "urn:riv:interoperability:headers:1".equals(header.getName().getNamespaceURI())) { try { ProcessingStatusType ps = (ProcessingStatusType)ju.unmarshal(header.getObject()); lastFoundProcessingStatus = ps; } catch (Throwable ex) { } } } } }
/** * Set a SOAP header to be sent to NetSuite in request * * @param port port * @param header header to be set */ protected void setHeader(PortT port, Header header) { BindingProvider provider = (BindingProvider) port; Map<String, Object> requestContext = provider.getRequestContext(); List<Header> list = (List<Header>) requestContext.get(Header.HEADER_LIST); if (list == null) { list = new ArrayList<>(); requestContext.put(Header.HEADER_LIST, list); } removeHeader(list, header.getName()); list.add(header); }
public static Header getHeader(List<Header> headers, QName name) { for (Header header : headers) { if (name.equals(header.getName())) { return header; } } return null; }
protected Header findSecurityHeader(SoapMessage message, boolean create) { for (Header h : message.getHeaders()) { QName n = h.getName(); if ("Security".equals(n.getLocalPart()) && (n.getNamespaceURI().equals(WSS4JConstants.WSSE_NS) || n.getNamespaceURI().equals(WSS4JConstants.WSSE11_NS))) { return h; } } if (!create) { return null; } Document doc = DOMUtils.getEmptyDocument(); Element el = doc.createElementNS(WSS4JConstants.WSSE_NS, "wsse:Security"); el.setAttributeNS(WSS4JConstants.XMLNS_NS, "xmlns:wsse", WSS4JConstants.WSSE_NS); SoapHeader sh = new SoapHeader(new QName(WSS4JConstants.WSSE_NS, "Security"), el); sh.setMustUnderstand(true); message.getHeaders().add(sh); return sh; }
protected Header findSecurityHeader(SoapMessage message, boolean create) { for (Header h : message.getHeaders()) { QName n = h.getName(); if ("Security".equals(n.getLocalPart()) && (n.getNamespaceURI().equals(WSS4JConstants.WSSE_NS) || n.getNamespaceURI().equals(WSS4JConstants.WSSE11_NS))) { return h; } } if (!create) { return null; } Document doc = DOMUtils.getEmptyDocument(); Element el = doc.createElementNS(WSS4JConstants.WSSE_NS, "wsse:Security"); el.setAttributeNS(WSS4JConstants.XMLNS_NS, "xmlns:wsse", WSS4JConstants.WSSE_NS); SoapHeader sh = new SoapHeader(new QName(WSS4JConstants.WSSE_NS, "Security"), el); sh.setMustUnderstand(true); message.getHeaders().add(sh); return sh; }
public void handleMessage(SoapMessage message) throws Fault { List<Header> headers = message.getHeaders(); Header h2 = null; for (Header h : headers) { if ("RelatesTo".equals(h.getName().getLocalPart())) { h2 = h; } } headers.remove(h2); } }
public void handleMessage(SoapMessage soapMessage) throws Fault { SoapVersion soapVersion = soapMessage.getVersion(); Set<QName> notFound = new HashSet<>(); List<Header> heads = soapMessage.getHeaders(); for (Header header : heads) { if (header instanceof SoapHeader && ((SoapHeader)header).isMustUnderstand() && header.getDirection() == Header.Direction.DIRECTION_IN && !knownHeaders.contains(header.getName()) && (StringUtils.isEmpty(((SoapHeader)header).getActor()) || soapVersion.getUltimateReceiverRole() .equals(((SoapHeader)header).getActor()))) { notFound.add(header.getName()); } } if (!notFound.isEmpty()) { soapMessage.remove(UNKNOWNS); throw new SoapFault(new Message("MUST_UNDERSTAND", BUNDLE, notFound), soapVersion.getMustUnderstand()); } }