public Object[] getHeaders(QName name, JAXBContext context, boolean allRoles) { SOAPMessage msg = getMessage(); SOAPHeader header; try { header = msg.getSOAPPart().getEnvelope().getHeader(); if (header == null || !header.hasChildNodes()) { return new Object[0]; } List<Object> ret = new ArrayList<>(); Iterator<SOAPHeaderElement> it = CastUtils.cast(header.examineAllHeaderElements()); while (it.hasNext()) { SOAPHeaderElement she = it.next(); if ((allRoles || roles.contains(she.getActor())) && name.equals(she.getElementQName())) { ret.add(JAXBUtils.unmarshall(context, she)); } } return ret.toArray(new Object[0]); } catch (SOAPException | JAXBException e) { throw new WebServiceException(e); } }
/** Returns the SOAP 1.1 actor or SOAP 1.2 role attribute for the given header element. */ @Override public String getActorOrRole(SOAPHeaderElement headerElement) { return headerElement.getActor(); }
@Override public String getActorOrRole(SOAPHeaderElement headerElement) { return headerElement.getActor(); }
@Override public String getActorOrRole(SOAPHeaderElement headerElement) { return headerElement.getActor(); }
@Override public String getActorOrRole() throws SoapHeaderException { return getSaajHeaderElement().getActor(); }
@Override public String getActorOrRole() throws SoapHeaderException { return getSaajHeaderElement().getActor(); }
@Override public String getActorOrRole() throws SoapHeaderException { return getSaajHeaderElement().getActor(); }
/** Returns an Iterator over all the SOAPHeaderElement objects in this SOAPHeader object that have the specified actor. */ public Iterator examineHeaderElements(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())) list.add(shElement); } return list.iterator(); }
/** 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(); }
@Override @SuppressWarnings("unchecked") public Iterator<SoapHeaderElement> examineHeaderElementsToProcess(String[] actors) { List<SOAPHeaderElement> result = new ArrayList<SOAPHeaderElement>(); Iterator<SOAPHeaderElement> iterator = getSaajHeader().examineAllHeaderElements(); while (iterator.hasNext()) { SOAPHeaderElement saajHeaderElement = iterator.next(); String headerActor = saajHeaderElement.getActor(); if (shouldProcess(headerActor, actors)) { result.add(saajHeaderElement); } } return new SaajSoapHeaderElementIterator(result.iterator()); }
public Iterator extractHeaderElements(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())) { removeChild(shElement); list.add(shElement); } } return list.iterator(); }
@Override @SuppressWarnings("unchecked") public Iterator<SoapHeaderElement> examineHeaderElementsToProcess(String[] actors) { List<SOAPHeaderElement> result = new ArrayList<SOAPHeaderElement>(); Iterator<SOAPHeaderElement> iterator = getSaajHeader().examineAllHeaderElements(); while (iterator.hasNext()) { SOAPHeaderElement saajHeaderElement = iterator.next(); String headerActor = saajHeaderElement.getActor(); if (shouldProcess(headerActor, actors)) { result.add(saajHeaderElement); } } return new SaajSoapHeaderElementIterator(result.iterator()); }
public Iterator<SoapHeaderElement> examineHeaderElementsToProcess(String[] actors) { List<SOAPHeaderElement> result = new ArrayList<SOAPHeaderElement>(); Iterator<SOAPHeaderElement> iterator = getImplementation().examineAllHeaderElements(getSaajHeader()); while (iterator.hasNext()) { SOAPHeaderElement saajHeaderElement = iterator.next(); String headerActor = saajHeaderElement.getActor(); if (shouldProcess(headerActor, actors)) { result.add(saajHeaderElement); } } return new SaajSoapHeaderElementIterator(result.iterator()); }
@Override @SuppressWarnings("unchecked") public Iterator<SoapHeaderElement> examineHeaderElementsToProcess(String[] actors) { List<SOAPHeaderElement> result = new ArrayList<SOAPHeaderElement>(); Iterator<SOAPHeaderElement> iterator = getSaajHeader().examineAllHeaderElements(); while (iterator.hasNext()) { SOAPHeaderElement saajHeaderElement = iterator.next(); String headerActor = saajHeaderElement.getActor(); if (shouldProcess(headerActor, actors)) { result.add(saajHeaderElement); } } return new SaajSoapHeaderElementIterator(result.iterator()); }
@Override protected void verifyUnderstoodHeader(SOAPHeaderElement element) throws Exception { QName name = new QName(element.getNamespaceURI(), element.getLocalName()); String actor = element.getActor(); Set<String> roles = getRoles(); boolean isActor = actor == null || actor.length() == 0 || Constants.URI_SOAP11_NEXT_ACTOR.equals(actor) || roles.contains(actor); if (isActor && !headerSource.getHeaders().contains(name)) { // How do we pass NotUnderstood blocks? They are not in the fault element QName faultCode = SOAPConstants.SOAP_MUSTUNDERSTAND_FAULT; SOAPFaultImpl fault = new SOAPFaultImpl(); fault.setFaultCode(faultCode); fault.setFaultString("SOAP header blocks not understood"); throwFaultException(fault); } } }
public Object[] getHeaders(QName name, JAXBContext context, boolean allRoles) { SOAPMessage msg = getMessage(); SOAPHeader header; try { header = msg.getSOAPPart().getEnvelope().getHeader(); if (header == null || !header.hasChildNodes()) { return new Object[0]; } List<Object> ret = new ArrayList<>(); Iterator<SOAPHeaderElement> it = CastUtils.cast(header.examineAllHeaderElements()); while (it.hasNext()) { SOAPHeaderElement she = it.next(); if ((allRoles || roles.contains(she.getActor())) && name.equals(she.getElementQName())) { ret.add(JAXBUtils.unmarshall(context, she)); } } return ret.toArray(new Object[0]); } catch (SOAPException | JAXBException e) { throw new WebServiceException(e); } }
@Override protected void verifyUnderstoodHeader(SOAPHeaderElement element) throws Exception { QName name = new QName(element.getNamespaceURI(), element.getLocalName()); String actor = element.getActor(); Set<String> roles = getRoles(); boolean isActor = actor == null || actor.length() == 0 || Constants.URI_SOAP11_NEXT_ACTOR.equals(actor) || roles.contains(actor); if (isActor && !headerSource.getHeaders().contains(name)) { QName faultCode = Constants.SOAP11_FAULT_CODE_MUST_UNDERSTAND; String faultString = "Unprocessed 'mustUnderstand' header element: " + element.getElementName(); SOAPFaultImpl fault = new SOAPFaultImpl(); fault.setFaultCode(faultCode); fault.setFaultString(faultString); throwFaultException(fault); } } }