/** Gets the must understand attribute for the given header element. */ @Override public boolean getMustUnderstand(SOAPHeaderElement headerElement) { return headerElement.getMustUnderstand(); }
@Override public boolean getMustUnderstand(SOAPHeaderElement headerElement) { return headerElement.getMustUnderstand(); }
@Override public boolean getMustUnderstand(SOAPHeaderElement headerElement) { return headerElement.getMustUnderstand(); }
@Override public boolean getMustUnderstand() throws SoapHeaderException { return getSaajHeaderElement().getMustUnderstand(); }
/** Returns all header elements for which the must understand attribute is true, given the actor or role. */ @Override public Iterator<SOAPHeaderElement> examineMustUnderstandHeaderElements(SOAPHeader header, String actorOrRole) { List<SOAPHeaderElement> result = new ArrayList<SOAPHeaderElement>(); for (Iterator<?> iterator = header.examineHeaderElements(actorOrRole); iterator.hasNext();) { SOAPHeaderElement headerElement = (SOAPHeaderElement) iterator.next(); if (headerElement.getMustUnderstand()) { result.add(headerElement); } } return result.iterator(); }
@Override public boolean getMustUnderstand() throws SoapHeaderException { return getSaajHeaderElement().getMustUnderstand(); }
@Override public boolean getMustUnderstand() throws SoapHeaderException { return getSaajHeaderElement().getMustUnderstand(); }
/** Returns an Iterator over all the SOAPHeaderElement objects in this SOAPHeader object that have the specified * actor and that have a MustUnderstand attribute whose value is equivalent to true. */ public Iterator examineMustUnderstandHeaderElements(String actor) { if (actor == null) throw new IllegalArgumentException(BundleUtils.getMessage(bundle, "INVALID_ACTOR", actor)); // make a defensive copy ArrayList<SOAPHeaderElement> list = new ArrayList<SOAPHeaderElement>(); Iterator it = getChildElements(); while (it.hasNext()) { SOAPHeaderElement shElement = (SOAPHeaderElement)it.next(); if (actor.equals(shElement.getActor()) && shElement.getMustUnderstand()) list.add(shElement); } return list.iterator(); }
@SuppressWarnings("unchecked") @Override public boolean handleMessage(SOAPMessageContext ctx) { log.debug("##########EnsureMustUnderstandHandler called!"); if (Boolean.TRUE.equals(ctx.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY))) { try { SOAPHeader soapHdr = ctx.getMessage().getSOAPHeader(); SOAPHeaderElement hdr; for (Iterator<SOAPHeaderElement> iter = soapHdr.examineAllHeaderElements() ; iter.hasNext();) { hdr = iter.next(); log.debug("##### hdr:{}",hdr.getNodeName()); log.debug("##### hdr.getMustUnderstand:{}",hdr.getMustUnderstand()); if (mustUnderstandHeaders.contains(hdr.getNodeName())) hdr.setMustUnderstand(true); } } catch (SOAPException e) { log.warn("Failed to ensure mustUnderstand SOAP Header!", e); } } return true; }
if (!hdrElem.getMustUnderstand()) { continue;
/** Set the initial understood/not understood state of the headers in this * object */ private void initHeaderUnderstanding() { SOAPHeader soapHeader = ensureSOAPHeader(); if (soapHeader == null) { return; } Iterator allHeaders = soapHeader.examineAllHeaderElements(); while(allHeaders.hasNext()) { SOAPHeaderElement nextHdrElem = (SOAPHeaderElement) allHeaders.next(); if (nextHdrElem == null) { continue; } if (nextHdrElem.getMustUnderstand()) { notUnderstood(nextHdrElem.getElementQName()); } //only headers explicitly marked as understood should be //in the understoodHeaders set, so don't add anything to //that set at the beginning } }
if (!hdrElem.getMustUnderstand()) { continue;
if (!hdrElem.getMustUnderstand()) { continue;
/** Set the initial understood/not understood state of the headers in this * object */ private void initHeaderUnderstanding() { SOAPHeader soapHeader = ensureSOAPHeader(); if (soapHeader == null) { return; } Iterator allHeaders = soapHeader.examineAllHeaderElements(); while(allHeaders.hasNext()) { SOAPHeaderElement nextHdrElem = (SOAPHeaderElement) allHeaders.next(); if (nextHdrElem == null) { continue; } if (nextHdrElem.getMustUnderstand()) { notUnderstood(nextHdrElem.getElementQName()); } //only headers explicitly marked as understood should be //in the understoodHeaders set, so don't add anything to //that set at the beginning } }
/** Set the initial understood/not understood state of the headers in this * object */ private void initHeaderUnderstanding() { SOAPHeader soapHeader = ensureSOAPHeader(); if (soapHeader == null) { return; } Iterator allHeaders = soapHeader.examineAllHeaderElements(); while(allHeaders.hasNext()) { SOAPHeaderElement nextHdrElem = (SOAPHeaderElement) allHeaders.next(); if (nextHdrElem == null) { continue; } if (nextHdrElem.getMustUnderstand()) { notUnderstood(nextHdrElem.getElementQName()); } //only headers explicitly marked as understood should be //in the understoodHeaders set, so don't add anything to //that set at the beginning } }
public void checkMustUnderstand(OperationMetaData opMetaData) throws Exception { CommonMessageContext msgContext = MessageContextAssociation.peekMessageContext(); assert(msgContext != null); SOAPMessage soapMessage = (SOAPMessage)msgContext.getSOAPMessage(); SOAPEnvelope soapEnvelope = soapMessage.getSOAPPart().getEnvelope(); if (soapEnvelope == null || soapEnvelope.getHeader() == null) return; Iterator<?> it = soapEnvelope.getHeader().examineAllHeaderElements(); while (it.hasNext()) { SOAPHeaderElement soapHeaderElement = (SOAPHeaderElement)it.next(); Name name = soapHeaderElement.getElementName(); QName xmlName = new QName(name.getURI(), name.getLocalName()); ParameterMetaData paramMetaData = (opMetaData != null ? opMetaData.getParameter(xmlName) : null); boolean isBoundHeader = (paramMetaData != null && paramMetaData.isInHeader()); if (!isBoundHeader && soapHeaderElement.getMustUnderstand()) verifyUnderstoodHeader(soapHeaderElement); } }