You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Glen Daniels <gl...@thoughtcraft.com> on 2007/07/17 01:42:19 UTC

Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 commited

Hi Jeff:

I thought this was going to happen AFTER 1.3, and I also thought we 
would have a little more discussion first...?  I am strongly against 
this proposal as it stands (though I am open to convincing) on technical 
grounds (see other thread), and I apologize for not responding sooner to 
your last response to me, but I would really prefer we held off on this 
for just a little bit more.  I'll go finish my response on the other 
thread right now, but until then, I apologize but -1 on this commit.

--Glen

Jeff Barrett wrote:
> Hi All,
> 
> I've commited the changes for 
> https://issues.apache.org/jira/browse/AXIS2-2853 under revision 556761.
> 
> It is implemented as described below with the modifications discussed on 
> the list.  This commit was the framework; I'll add the JAXWS checker as a 
> plugin next (hopefully tomorrow).
> 
> Thanks again for the comments!
> 
> Thanks,
> Jeff
> 
> IBM Software Group - WebSphere Web Services Development
> Phone: 512-838-4587 or Tie Line 678-4587
> Internet e-mail and Sametime ID: barrettj@us.ibm.com
> ----- Forwarded by Jeff Barrett/Austin/IBM on 07/16/2007 06:05 PM -----
> 
> Jeff Barrett/Austin/IBM 
> 07/11/2007 05:20 PM
> 
> To
> axis-dev@ws.apache.org
> cc
> 
> Subject
> [Axis2] Post-1.3 mustUnderstand header validation proposal AXIS2-2853
> 
> 
> 
> 
> 
> 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: barrettj@us.ibm.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 commited

Posted by Jeff Barrett <ba...@us.ibm.com>.
I will revert the change.

Thanks,
Jeff

IBM Software Group - WebSphere Web Services Development
Phone: 512-838-4587 or Tie Line 678-4587
Internet e-mail and Sametime ID: barrettj@us.ibm.com



Sanjiva Weerawarana <sa...@opensource.lk> 
07/17/2007 11:49 AM
Please respond to
axis-dev@ws.apache.org


To
axis-dev@ws.apache.org
cc

Subject
Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 
commited






I'm sorry but I'm also going to -1 this on the basis that its a new 
feature being added in a VERY late stage. The solution may be perfect but 
can we please put it in after the 1.3 release?

Alternatively, let's revoke this, cut the release branch and then commit 
it. Then it'll be in 1.4 (or whatever release we want to do next .. maybe 
1.3.1 if its just this) but its just wrong to slip in new features between 

release candidates.

Sanjiva.

Jeff Barrett wrote:
> Sorry for the confusion.  The Jira was marked post 1.3 because I didn't 
> think I could get it done prior to RC2, which was originally scheduled 
for 
> last Friday, and this contained kernel changes.  Since RC2 was 
postponed, 
> I was able to get it in prior to RC2.
> 
> Thanks,
> Jeff
> 
> IBM Software Group - WebSphere Web Services Development
> Phone: 512-838-4587 or Tie Line 678-4587
> Internet e-mail and Sametime ID: barrettj@us.ibm.com
> 
> 
> 
> "Amila Suriarachchi" <am...@gmail.com> 
> 07/16/2007 11:32 PM
> Please respond to
> axis-dev@ws.apache.org
> 
> 
> To
> axis-dev@ws.apache.org
> cc
> 
> Subject
> Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 
> commited
> 
> 
> 
> 
> 
> 
> this thread it self named as 
> Post-1.3 mustunderstand header validation proposal.
> 
> thanks,
> Amila.
> 
> On 7/16/07, Glen Daniels < glen@thoughtcraft.com> wrote:
> Hi Jeff:
> 
> I thought this was going to happen AFTER 1.3, and I also thought we
> would have a little more discussion first...?  I am strongly against
> this proposal as it stands (though I am open to convincing) on technical
> grounds (see other thread), and I apologize for not responding sooner to 

> your last response to me, but I would really prefer we held off on this
> for just a little bit more.  I'll go finish my response on the other
> thread right now, but until then, I apologize but -1 on this commit. 
> 
> --Glen
> 
> Jeff Barrett wrote:
>> Hi All,
>>
>> I've commited the changes for
>> https://issues.apache.org/jira/browse/AXIS2-2853 under revision 556761.
>>
>> It is implemented as described below with the modifications discussed 
on
>> the list.  This commit was the framework; I'll add the JAXWS checker as 

> a
>> plugin next (hopefully tomorrow). 
>>
>> Thanks again for the comments!
>>
>> Thanks,
>> Jeff
>>
>> IBM Software Group - WebSphere Web Services Development
>> Phone: 512-838-4587 or Tie Line 678-4587
>> Internet e-mail and Sametime ID: barrettj@us.ibm.com
>> ----- Forwarded by Jeff Barrett/Austin/IBM on 07/16/2007 06:05 PM -----
>>
>> Jeff Barrett/Austin/IBM
>> 07/11/2007 05:20 PM
>>
>> To 
>> axis-dev@ws.apache.org
>> cc
>>
>> Subject
>> [Axis2] Post-1.3 mustUnderstand header validation proposal AXIS2-2853
>>
>>
>>
>>
>>
>> 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: barrettj@us.ibm.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-dev-help@ws.apache.org
>>
> 
> --------------------------------------------------------------------- 
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org 
> 
> 
> 
> 

-- 
Sanjiva Weerawarana, Ph.D.
Founder & Director; Lanka Software Foundation; http://www.opensource.lk/
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
Director; Open Source Initiative; http://www.opensource.org/
Member; Apache Software Foundation; http://www.apache.org/
Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 commited

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
I'm sorry but I'm also going to -1 this on the basis that its a new 
feature being added in a VERY late stage. The solution may be perfect but 
can we please put it in after the 1.3 release?

Alternatively, let's revoke this, cut the release branch and then commit 
it. Then it'll be in 1.4 (or whatever release we want to do next .. maybe 
1.3.1 if its just this) but its just wrong to slip in new features between 
release candidates.

Sanjiva.

Jeff Barrett wrote:
> Sorry for the confusion.  The Jira was marked post 1.3 because I didn't 
> think I could get it done prior to RC2, which was originally scheduled for 
> last Friday, and this contained kernel changes.  Since RC2 was postponed, 
> I was able to get it in prior to RC2.
> 
> Thanks,
> Jeff
> 
> IBM Software Group - WebSphere Web Services Development
> Phone: 512-838-4587 or Tie Line 678-4587
> Internet e-mail and Sametime ID: barrettj@us.ibm.com
> 
> 
> 
> "Amila Suriarachchi" <am...@gmail.com> 
> 07/16/2007 11:32 PM
> Please respond to
> axis-dev@ws.apache.org
> 
> 
> To
> axis-dev@ws.apache.org
> cc
> 
> Subject
> Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 
> commited
> 
> 
> 
> 
> 
> 
> this thread it self named as 
> Post-1.3 mustunderstand header validation proposal.
> 
> thanks,
> Amila.
> 
> On 7/16/07, Glen Daniels < glen@thoughtcraft.com> wrote:
> Hi Jeff:
> 
> I thought this was going to happen AFTER 1.3, and I also thought we
> would have a little more discussion first...?  I am strongly against
> this proposal as it stands (though I am open to convincing) on technical
> grounds (see other thread), and I apologize for not responding sooner to 
> your last response to me, but I would really prefer we held off on this
> for just a little bit more.  I'll go finish my response on the other
> thread right now, but until then, I apologize but -1 on this commit. 
> 
> --Glen
> 
> Jeff Barrett wrote:
>> Hi All,
>>
>> I've commited the changes for
>> https://issues.apache.org/jira/browse/AXIS2-2853 under revision 556761.
>>
>> It is implemented as described below with the modifications discussed on
>> the list.  This commit was the framework; I'll add the JAXWS checker as 
> a
>> plugin next (hopefully tomorrow). 
>>
>> Thanks again for the comments!
>>
>> Thanks,
>> Jeff
>>
>> IBM Software Group - WebSphere Web Services Development
>> Phone: 512-838-4587 or Tie Line 678-4587
>> Internet e-mail and Sametime ID: barrettj@us.ibm.com
>> ----- Forwarded by Jeff Barrett/Austin/IBM on 07/16/2007 06:05 PM -----
>>
>> Jeff Barrett/Austin/IBM
>> 07/11/2007 05:20 PM
>>
>> To 
>> axis-dev@ws.apache.org
>> cc
>>
>> Subject
>> [Axis2] Post-1.3 mustUnderstand header validation proposal AXIS2-2853
>>
>>
>>
>>
>>
>> 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: barrettj@us.ibm.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-dev-help@ws.apache.org
>>
> 
> --------------------------------------------------------------------- 
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org 
> 
> 
> 
> 

-- 
Sanjiva Weerawarana, Ph.D.
Founder & Director; Lanka Software Foundation; http://www.opensource.lk/
Founder, Chairman & CEO; WSO2, Inc.; http://www.wso2.com/
Director; Open Source Initiative; http://www.opensource.org/
Member; Apache Software Foundation; http://www.apache.org/
Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 commited

Posted by Jeff Barrett <ba...@us.ibm.com>.
Sorry for the confusion.  The Jira was marked post 1.3 because I didn't 
think I could get it done prior to RC2, which was originally scheduled for 
last Friday, and this contained kernel changes.  Since RC2 was postponed, 
I was able to get it in prior to RC2.

Thanks,
Jeff

IBM Software Group - WebSphere Web Services Development
Phone: 512-838-4587 or Tie Line 678-4587
Internet e-mail and Sametime ID: barrettj@us.ibm.com



"Amila Suriarachchi" <am...@gmail.com> 
07/16/2007 11:32 PM
Please respond to
axis-dev@ws.apache.org


To
axis-dev@ws.apache.org
cc

Subject
Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 
commited






this thread it self named as 
Post-1.3 mustunderstand header validation proposal.

thanks,
Amila.

On 7/16/07, Glen Daniels < glen@thoughtcraft.com> wrote:
Hi Jeff:

I thought this was going to happen AFTER 1.3, and I also thought we
would have a little more discussion first...?  I am strongly against
this proposal as it stands (though I am open to convincing) on technical
grounds (see other thread), and I apologize for not responding sooner to 
your last response to me, but I would really prefer we held off on this
for just a little bit more.  I'll go finish my response on the other
thread right now, but until then, I apologize but -1 on this commit. 

--Glen

Jeff Barrett wrote:
> Hi All,
>
> I've commited the changes for
> https://issues.apache.org/jira/browse/AXIS2-2853 under revision 556761.
>
> It is implemented as described below with the modifications discussed on
> the list.  This commit was the framework; I'll add the JAXWS checker as 
a
> plugin next (hopefully tomorrow). 
>
> Thanks again for the comments!
>
> Thanks,
> Jeff
>
> IBM Software Group - WebSphere Web Services Development
> Phone: 512-838-4587 or Tie Line 678-4587
> Internet e-mail and Sametime ID: barrettj@us.ibm.com
> ----- Forwarded by Jeff Barrett/Austin/IBM on 07/16/2007 06:05 PM -----
>
> Jeff Barrett/Austin/IBM
> 07/11/2007 05:20 PM
>
> To 
> axis-dev@ws.apache.org
> cc
>
> Subject
> [Axis2] Post-1.3 mustUnderstand header validation proposal AXIS2-2853
>
>
>
>
>
> 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: barrettj@us.ibm.com
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>

--------------------------------------------------------------------- 
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org 




-- 
Amila Suriarachchi,
WSO2 Inc. 


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 commited

Posted by Amila Suriarachchi <am...@gmail.com>.
this thread it self named as
Post-1.3 mustunderstand header validation proposal.

thanks,
Amila.

On 7/16/07, Glen Daniels <gl...@thoughtcraft.com> wrote:
>
> Hi Jeff:
>
> I thought this was going to happen AFTER 1.3, and I also thought we
> would have a little more discussion first...?  I am strongly against
> this proposal as it stands (though I am open to convincing) on technical
> grounds (see other thread), and I apologize for not responding sooner to
> your last response to me, but I would really prefer we held off on this
> for just a little bit more.  I'll go finish my response on the other
> thread right now, but until then, I apologize but -1 on this commit.
>
> --Glen
>
> Jeff Barrett wrote:
> > Hi All,
> >
> > I've commited the changes for
> > https://issues.apache.org/jira/browse/AXIS2-2853 under revision 556761.
> >
> > It is implemented as described below with the modifications discussed on
> > the list.  This commit was the framework; I'll add the JAXWS checker as
> a
> > plugin next (hopefully tomorrow).
> >
> > Thanks again for the comments!
> >
> > Thanks,
> > Jeff
> >
> > IBM Software Group - WebSphere Web Services Development
> > Phone: 512-838-4587 or Tie Line 678-4587
> > Internet e-mail and Sametime ID: barrettj@us.ibm.com
> > ----- Forwarded by Jeff Barrett/Austin/IBM on 07/16/2007 06:05 PM -----
> >
> > Jeff Barrett/Austin/IBM
> > 07/11/2007 05:20 PM
> >
> > To
> > axis-dev@ws.apache.org
> > cc
> >
> > Subject
> > [Axis2] Post-1.3 mustUnderstand header validation proposal AXIS2-2853
> >
> >
> >
> >
> >
> > 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: barrettj@us.ibm.com
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: axis-dev-help@ws.apache.org
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
>
>


-- 
Amila Suriarachchi,
WSO2 Inc.

Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 commited

Posted by Jeff Barrett <ba...@us.ibm.com>.
Hi Glen,

When you didn't respond, I thought my note had addressed your concerns. 
I'll look over your response and respond.

Thanks,
Jeff

IBM Software Group - WebSphere Web Services Development
Phone: 512-838-4587 or Tie Line 678-4587
Internet e-mail and Sametime ID: barrettj@us.ibm.com



Glen Daniels <gl...@thoughtcraft.com> 
07/16/2007 06:42 PM
Please respond to
axis-dev@ws.apache.org


To
axis-dev@ws.apache.org
cc

Subject
Re: [Axis2] Pluggable mustUnderstand header validation for AXIS2-2853 
commited






Hi Jeff:

I thought this was going to happen AFTER 1.3, and I also thought we 
would have a little more discussion first...?  I am strongly against 
this proposal as it stands (though I am open to convincing) on technical 
grounds (see other thread), and I apologize for not responding sooner to 
your last response to me, but I would really prefer we held off on this 
for just a little bit more.  I'll go finish my response on the other 
thread right now, but until then, I apologize but -1 on this commit.

--Glen

Jeff Barrett wrote:
> Hi All,
> 
> I've commited the changes for 
> https://issues.apache.org/jira/browse/AXIS2-2853 under revision 556761.
> 
> It is implemented as described below with the modifications discussed on 

> the list.  This commit was the framework; I'll add the JAXWS checker as 
a 
> plugin next (hopefully tomorrow).
> 
> Thanks again for the comments!
> 
> Thanks,
> Jeff
> 
> IBM Software Group - WebSphere Web Services Development
> Phone: 512-838-4587 or Tie Line 678-4587
> Internet e-mail and Sametime ID: barrettj@us.ibm.com
> ----- Forwarded by Jeff Barrett/Austin/IBM on 07/16/2007 06:05 PM -----
> 
> Jeff Barrett/Austin/IBM 
> 07/11/2007 05:20 PM
> 
> To
> axis-dev@ws.apache.org
> cc
> 
> Subject
> [Axis2] Post-1.3 mustUnderstand header validation proposal AXIS2-2853
> 
> 
> 
> 
> 
> 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: barrettj@us.ibm.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-dev-help@ws.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org