axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Doug Davis" <>
Subject RE: MU checks
Date Wed, 08 Aug 2001 19:08:47 GMT
Kind of related to this...
Is it really possible to do MU checks on intermediaries?
Let's say a message comes in with 3 headers, all marked
as "actor=foo" and all 3 are MU=1.  The spec says that
a SOAP node should identify all headers targeted for it.
Well, that leaves it wide open to determine how that
targeting is done.  It is legal for a SOAP node to say:
  of those 3 headers with "actor=foo", only the 2nd one
  is targeted for me so I'll just ignore the others
Now, what should the SOAP processor do?  It can't just
assume the other 2 are targeted for this node and throw
an MU fault - because they weren't.  Heck, it can't even
know that the 2nd one was either - just because a handler
asked for a header doesn't mean it is targeted for this
node - nor can it assume that just because it asked for it
that it was processed (hence the 'setProcessed' method we have).
But, what can Axis really do with the processed flag?
A header with the 'processed' flag unset doesn't mean
anything to Axis since it has no way of knowing whether that
header was really targeted for this node.
I supposed adding a "setIsTargetedForThisNode' method is
possible, but that seems kind of silly since anyone calling
that method is surely going to then call 'isProcessed' - or
maybe not - don't know.
Again - more ramblings...

Glen Daniels <> on 08/08/2001 02:53:07 PM

Please respond to

To:   "''" <>
Subject:  RE: MU checks

Right.  It's on the plate for post-alpha.

> -----Original Message-----
> From: Doug Davis []
> Sent: Wednesday, August 08, 2001 2:41 PM
> To:
> Subject: MU checks
> In
> // 1. Check mustUnderstands
> SOAPEnvelope env = msgContext.getRequestMessage().getAsSOAPEnvelope();
> Vector headers = env.getHeaders();
> Vector misunderstoodHeaders = null;
> for (int i = 0; i < headers.size(); i++) {
>     SOAPHeader header = (SOAPHeader)headers.elementAt(i);
>     if (header.isMustUnderstand() && !header.isProcessed()) {
>         if (misunderstoodHeaders == null)
>             misunderstoodHeaders = new Vector();
>         misunderstoodHeaders.addElement(header);
>     }
> }
> This will fault if *any* MU header isn't processed - this
> isn't consistent with SOAP v1.1 or v1.2.  Shouldn't we
> be taking into account the actor?  (for after the alpha)
> -Dug

View raw message