/** * Answer if an application handler (such as a JAXWS application handler) has registered that * it understands this header. Note that the handlers do this registration only on the * service-requester side. That is because on the service-provider side the handlers have * not been instantiated at this point so can not be queried yet. * @param headerBlock Contains the SOAP header to check * @param messageContext Contains the inbound message context * @return true if this header QName is registered as being understood or false otherwise. */ private static boolean clientHandlerUnderstandsHeader(SOAPHeaderBlock headerBlock, MessageContext messageContext) { boolean headerUnderstood = false; // Get the property off the outbound context, if it exists and contains this header // then it is understood QName headerQName = headerBlock.getQName(); Set understoodHeaders = getUnderstoodClientHeaders(messageContext); if (understoodHeaders != null && understoodHeaders.size() > 0) { headerUnderstood = understoodHeaders.contains(headerQName); } return headerUnderstood; }
/** * Answer if an application handler (such as a JAXWS application handler) has registered that * it understands this header. Note that the handlers do this registration only on the * service-requester side. That is because on the service-provider side the handlers have * not been instantiated at this point so can not be queried yet. * @param headerBlock Contains the SOAP header to check * @param messageContext Contains the inbound message context * @return true if this header QName is registered as being understood or false otherwise. */ private static boolean clientHandlerUnderstandsHeader(SOAPHeaderBlock headerBlock, MessageContext messageContext) { boolean headerUnderstood = false; // Get the property off the outbound context, if it exists and contains this header // then it is understood QName headerQName = headerBlock.getQName(); Set understoodHeaders = getUnderstoodClientHeaders(messageContext); if (understoodHeaders != null && understoodHeaders.size() > 0) { headerUnderstood = understoodHeaders.contains(headerQName); } return headerUnderstood; }
public InvocationResponse invoke(MessageContext msgContext) throws AxisFault { org.apache.axiom.soap.SOAPEnvelope envelope = msgContext.getEnvelope(); if (envelope.getHeader() == null) { return InvocationResponse.CONTINUE; } // Get all the headers targeted to us Iterator headerBlocks = envelope.getHeader().getHeadersToProcess((RolePlayer)msgContext.getConfigurationContext().getAxisConfiguration().getParameterValue("rolePlayer")); while (headerBlocks.hasNext()) { SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) headerBlocks.next(); QName headerName = headerBlock.getQName(); if(headerName.getLocalPart().equals("Security")) { headerBlock.setProcessed(); } } return InvocationResponse.CONTINUE; } }
/** * Remove the MustUnderstand header blocks. * @param envelope */ public static SOAPEnvelope removeMustUnderstand(SOAPEnvelope envelope) { if (LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled()) log.debug("Enter: SandeshaUtil::removeMustUnderstand"); // you have to explicitely set the 'processed' attribute for header // blocks, since it get lost in the above read from the stream. SOAPHeader header = envelope.getHeader(); if (header != null) { Iterator childrenOfOldEnv = header.getChildElements(); while (childrenOfOldEnv.hasNext()) { SOAPHeaderBlock oldEnvHeaderBlock = (SOAPHeaderBlock) childrenOfOldEnv.next(); QName oldEnvHeaderBlockQName = oldEnvHeaderBlock.getQName(); if (oldEnvHeaderBlockQName != null) { // If we've processed the part and it has a must understand, set it as processed if (oldEnvHeaderBlock.isProcessed() && oldEnvHeaderBlock.getMustUnderstand()) { // Remove the MustUnderstand part oldEnvHeaderBlock.setMustUnderstand(false); } } } } if (LoggingControl.isAnyTracingEnabled() && log.isDebugEnabled()) log.debug("Exit: SandeshaUtil::removeMustUnderstand"); return envelope; }
public static Sequence fromSOAPHeaderBlock(SOAPHeaderBlock soapHeaderBlock) { soapHeaderBlock.setProcessed(); String soapNamespace = soapHeaderBlock.getQName().getNamespaceURI(); Sequence sequence = new Sequence(); sequence.setSoapNamesapce(soapNamespace); String rmNamesapce = soapHeaderBlock.getNamespace().getNamespaceURI(); sequence.setRmNamespace(rmNamesapce); soapHeaderBlock.setProcessed(); if (soapHeaderBlock.getNamespace().getNamespaceURI().equals(MercuryConstants.RM_1_0_NAMESPACE)) { // we have found the sequence header block. Iterator sequenceElementIter = soapHeaderBlock.getChildElements(); OMElement childElement; for (; sequenceElementIter.hasNext();) { childElement = (OMElement) sequenceElementIter.next(); if (childElement.getLocalName().equals(MercuryConstants.IDENTIFIER)) { sequence.setSequenceID(childElement.getText()); } else if (childElement.getLocalName().equals(MercuryConstants.MESSAGE_NUMBER)) { sequence.setMessageNumber(Long.parseLong(childElement.getText())); } else if (childElement.getLocalName().equals(MercuryConstants.LAST_MESSAGE)) { sequence.setLastMessage(true); } } } return sequence; }
public static SequenceAcknowledgment fromSOAPHeaderBlock(SOAPHeaderBlock soapHeaderBlock) throws RMMessageBuildingException { soapHeaderBlock.setProcessed(); String soapNamespace = soapHeaderBlock.getQName().getNamespaceURI(); SequenceAcknowledgment sequenceAcknowledgment = new SequenceAcknowledgment(); sequenceAcknowledgment.setSoapNamesapce(soapNamespace); String rmNamesapce = soapHeaderBlock.getNamespace().getNamespaceURI(); sequenceAcknowledgment.setRmNamespace(rmNamesapce); Iterator elementIter = soapHeaderBlock.getChildElements(); OMElement childElement; for (; elementIter.hasNext();) { childElement = (OMElement) elementIter.next(); if (childElement.getLocalName().equals(MercuryConstants.IDENTIFIER)) { sequenceAcknowledgment.setIdentifier(childElement.getText()); } else if (childElement.getLocalName().equals(MercuryConstants.ACKKNOWLEDGEMENT_RANGE)) { sequenceAcknowledgment.addAcknowledgmentRange(AcknowledgmentRange.fromOM(childElement)); } } return sequenceAcknowledgment; }
while(headers.hasNext()){ SOAPHeaderBlock element = (SOAPHeaderBlock)headers.next(); QName elementName = element.getQName(); String namespace = elementName.getNamespaceURI(); String localName = elementName.getLocalPart();
while (headerBlocks.hasNext()) { SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) headerBlocks.next(); QName headerName = headerBlock.getQName();
while (headerBlocks.hasNext()) { SOAPHeaderBlock headerBlock = (SOAPHeaderBlock) headerBlocks.next(); QName headerName = headerBlock.getQName();
final QName hbQName = hb.getQName(); final SOAPHeaderElement headerEle = header.addHeaderElement(env.createName(hbQName .getLocalPart(), hbQName.getPrefix(), hbQName.getNamespaceURI()));
SOAPHeaderBlock element = (SOAPHeaderBlock) headerBlocs.next(); if(element.isProcessed()) { processedHeaderQNames.add(element.getQName());
final QName hbQName = hb.getQName(); final SOAPHeaderElement headerEle = header.addHeaderElement(env.createName(hbQName .getLocalPart(), hbQName.getPrefix(), hbQName.getNamespaceURI()));
OMElement e = header.getFirstChildWithName(shb.getQName());