Rich,
Good idea; will do.
Thanks,
Jeff
IBM Software Group - WebSphere Web Services Development
Phone: 512-838-4587 or Tie Line 678-4587
Internet e-mail and Sametime ID: [EMAIL PROTECTED]
R J Scheuerle Jr/Austin/[EMAIL PROTECTED] wrote on 07/12/2007 07:26:49 AM:
> Jeff,
> I like the idea of having pluggable validators. +1
>
> When you add the Validator interface, can you provide guidance in
> the javadoc to log trace when a header understood (and removed from
> the NotUnderstoodHeaders Set).
>
> For example it would be nice to see trace like:
> JAXWSSoapHeaderValidator: The JAX-WS application handler,
> mySample.handler, understands header {http://mySample}Foo.
>
> Thanks,
> Rich Scheuerle
> IBM Web Services
> Apache Axis2 ([EMAIL PROTECTED])
>
> Jeff Barrett/Austin/[EMAIL PROTECTED] wrote on 07/11/2007 05:20:35 PM:
>
> > Hi All,
> >
> > Here is my proposal for a mustUnderstand header validation framework.
> >
> > PLEASE NOTE the mustUnderstand processing is required for fixes we're
> > trying to get in by 7/20 and which Geronimo needs.
> >
> > So, please take a look as soon as possible. If the overview seems OK,
> > then I'll start on the code (this is post 1.3 work)
> >
> > Here's the Jira: https://issues.apache.org/jira/browse/AXIS2-2853
> >
> > Goals
> > =====
> >
> > 1. Pluggable and extensible via configuration. Allow higher-level,
> > non-engine components to participate in mustUnderstand validation.
> > Examples include JAX-WS runtime and appliction handlers, WS-RM, and
> > systems using Axis2 as a bus.
> >
> > 2. Support for actors/roles. Only mustUnderstand headers for
> > actors/roles in which this node acts should be checked. Note that
> > actors/roles would not be implemented immediately, but future support
is
> > taken into consideration in the design.
> >
> > OVERVIEW
> > ========
> >
> > A list of soapHeaderValidators can optionally be configured in
axis2.xml.
> > The list of validators will be stored on the AxisConfiguration. Each
> > validator has a method which takes a collection of not-yet-understood
> > header QNames, a collection of String roles, and a MessageContext. The
> > method will return a collection of header QNames based on the input
> > parameter which are still not understood; that is, it removes any that
it
> > understands from the list.
> >
> > The AxisEngine.checkMustUnderstand() method will invoke each
validator,
> > passing in the collection of still-not-understood headers. If, after
all
> > the validators are called the collection is not empty, a
mustUnderstand
> > fault is thrown. The logic would be something like:
> >
> > String[] rolesActedIn = ... // list of
actors/roles
> > acted in.
> > QName[] notUnderstoodHeaders = ... // list of all mU
headers
> > not marked as processed
> > SOAPHeaderValidator[] validators =
> > axisConfig.getSoapHeaderValidators();
> > for (SOAPHeaderValidator validator : validators) {
> > notUnderstoodHeaders =
> > validator.validate(notUnderstoodHeaders, rolesActedIn, messageContext)
> > }
> >
> > // If there are any not-understood headers after running the
> > validators
> > // throw an exception
> > if (notUnderstoodHeader.length != 0) {
> > throw notUnderstoodException
> > }
> >
> > There is no API for the registration of understood headers; each
validator
> >
> > is responsible for deciding what it understands and removing it from
the
> > collection. For example, the JAXWS validator would look for a
property
> > (which it set earlier) on the AxisOperation containing the QNames for
any
> > JAXWS SEI header parameters and any headers understood by JAXWS
> > application handlers. That property would be set by JAXWS on the
> > AxisOperation during application startup.
> >
> > Configuration in axis2.xml
> > --------------------------
> >
> > The <soapHeaderValidators> element is optional. If ommited then all
> > mustUnderstand headers must be marked as processed by handlers, or a
> > mustUnderstand fault will be thown (i.e. current
> > AxisEngine.checkMustUnderstand semantics are unchanged)
> >
> > <soapHeaderValidators>
> >
> > <soapHeaderValidator>org.apache.axis2.jaxws.
> > JAXWSSoapHeaderValidator</soapHeaderValidator>
> >
> > <soapHeaderValidator>my.other.validator.
> > MySOAPHeaderValidator</soapHeaderValidator>
> > </soapHeaderValidators>
> >
> >
> >
> > Thanks,
> > Jeff
> >
> > IBM Software Group - WebSphere Web Services Development
> > Phone: 512-838-4587 or Tie Line 678-4587
> > Internet e-mail and Sametime ID: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]