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]

Reply via email to