ws-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aleksander Slominski <as...@cs.indiana.edu>
Subject Re: Redundant names space removal when Serializing - AXIOM
Date Mon, 21 Nov 2011 18:00:05 GMT
Hi,

If xmlns:xsi is declared for saml:Assertion element then it should be
serialized - otherwise you have loss of information and that is big issue
when namespace prefixes are used inside attribute values (or element values
as well)

Not including in-scope namespaces in serialization of detached element will
be also a problem ...

my 2c,

Alek

On Mon, Nov 21, 2011 at 11:59 AM, Andreas Veithen <andreas.veithen@gmail.com
> wrote:

> On Mon, Nov 21, 2011 at 17:18, Aleksander Slominski
> <aslom@cs.indiana.edu> wrote:
> > Hi,
> > from what I remember of XML and Namespaces: when you detach any child
> > element such as saml:Assertion then all in-scope namespace declared
> prefixes
> > should be copied.
>
> There is no spec that defines a general rule for this. Specs such as
> XML C14N define specific rules for this applicable in specific
> contexts.
>
> > The serializer should recognize if it is serializing a standalone or
> > embedded XML. Is there any API for it? For standalone it should print all
> > in-scope declared namesapce prefixes.
>
> What the serializer does is to generate additional namespace
> declarations if it encounters information items (elements or
> attributes) that have a prefix/namespace URI combination for which no
> namespace declaration is in scope. That covers the case of serializing
> a part of an XML document. This in general gives the expected result,
> except for cases where a namespace declaration is not visibly used,
> e.g. in an attribute value. BTW, it's the same behavior as in DOM.
>
> Anyway, this is not a relevant question because it is not related to
> the problem.
>
> > HTH,
> > Alek
> >
> > On Sun, Nov 20, 2011 at 11:31 PM, Charith Wickramarachchi
> > <charith.dhanushka@gmail.com> wrote:
> >>
> >> Hi ,
> >>
> >> Looked more in to the details of whats happening. So here the problem is
> >> the element that have this redundant names space is the <saml:Assertion
> ...
> >> element which is a signed one.
> >>
> >>
> >> The incoming message to synapse looks like this.
> >>
> >> <soapenv:Envelope
> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> >> xmlns:oas="
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
> "
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >>    <soapenv:Header>
> >>       <oas:Security>
> >> <saml:Assertion ....
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> ...
> >> </saml:Assertion>
> >> </oas:Security>
> >>    </soapenv:Header>
> >> ...........................
> >> </soapenv:Envelope>
> >>
> >>
> >> and output is like
> >>
> >> <soapenv:Envelope
> >> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
> >> xmlns:oas="
> http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd
> "
> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
> >>    <soapenv:Header>
> >>       <oas:Security>
> >> <saml:Assertion ...> ... </saml:Assertion>
> >> </oas:Security>
> >>    </soapenv:Header>
> >>
> >>
> >> So in this case isn't it wrong to do this kind of optimizations ?
> >>
> >> thanks,
> >> Charith
> >>
> >>
> >>
> >>
> >>
> >> On Mon, Nov 21, 2011 at 8:50 AM, Charith Wickramarachchi
> >> <charith.dhanushka@gmail.com> wrote:
> >>>
> >>> Hi ,
> >>>
> >>> This is an issue with the BE service. When the message comes to synapse
> >>> from the client. In its SOAP Message it has same name space declared
> at two
> >>> levels.
> >>>
> >>> At Envelope level and and inside a header. So as a result when message
> go
> >>> through synapse  it will omit this redundant names space declaration.
> >>> But BE service will fail to process this header due to  missing
> >>> namesspace. So its due to BEs xml phaser assumes that headers are self
> >>> contained and they do not see the namesspace defined at Envelope level.
> >>>
> >>> thanks,
> >>> Charith
> >>>
> >>> On Sun, Nov 20, 2011 at 11:12 PM, Sanjiva Weerawarana
> >>> <sanjiva@opensource.lk> wrote:
> >>>>
> >>>> "So when synapse forward them  to the BE service they get omitted as
> >>>> they are defined at SOAP Envelope level."
> >>>> Maybe Synapse is not serializing the headers properly?
> >>>> Sanjiva.
> >>>>
> >>>> On Sun, Nov 20, 2011 at 10:55 PM, Andreas Veithen
> >>>> <andreas.veithen@gmail.com> wrote:
> >>>>>
> >>>>> Axiom never produces malformed XML. Who said that??
> >>>>>
> >>>>> Andreas
> >>>>>
> >>>>> On Sun, Nov 20, 2011 at 17:59, Sanjiva Weerawarana
> >>>>> <sanjiva@opensource.lk> wrote:
> >>>>> > Isn't that a bug?
> >>>>> > If I declare an NS at the Envelope node then that cannot be
removed
> >>>>> > if
> >>>>> > anyone inside uses it. If I'm serializing only the Header
> element(s)
> >>>>> > then
> >>>>> > any in scope namespaces must be available and worst case every
> >>>>> > element will
> >>>>> > re-serialize them. However under no condition is it correct
to
> >>>>> > serialize a
> >>>>> > child element and end up with malformed XML!
> >>>>> >
> >>>>> > Sanjiva.
> >>>>> >
> >>>>> > On Sat, Nov 19, 2011 at 10:28 PM, Andreas Veithen
> >>>>> > <andreas.veithen@gmail.com> wrote:
> >>>>> >>
> >>>>> >> Assuming that the namespace in question is not the SOAP
envelope
> >>>>> >> namespace, instead of hacking Axiom, wouldn't it be easier
to
> remove
> >>>>> >> the namespace declaration from the SOAP envelope (so that
it will
> be
> >>>>> >> serialized in the SOAP header block)?
> >>>>> >>
> >>>>> >> Andreas
> >>>>> >>
> >>>>> >> On Sat, Nov 19, 2011 at 06:11, Charith Wickramarachchi
> >>>>> >> <charith.dhanushka@gmail.com> wrote:
> >>>>> >> > Hi Andreas,
> >>>>> >> >
> >>>>> >> > Issue was this causes an Error in a 3rd party web-service
engine
> >>>>> >> > when
> >>>>> >> > processing some soap headers.
> >>>>> >> >
> >>>>> >> > Scenario is this. Synapse get a soap request which
contains some
> >>>>> >> > redundant
> >>>>> >> > namespace declarations at header level which are internally
used
> >>>>> >> > inside
> >>>>> >> > the
> >>>>> >> > headers. So when synapse forward them  to the BE service
they
> get
> >>>>> >> > omitted as
> >>>>> >> > they are defined at SOAP Envelope level.
> >>>>> >> >
> >>>>> >> > BE services header processor incorrectly assumes that
headers
> are
> >>>>> >> > self
> >>>>> >> > contained so this causes an error.
> >>>>> >> >
> >>>>> >> > I was wondering it may make scene to make it configurable
 as if
> >>>>> >> > we
> >>>>> >> > think
> >>>>> >> > of  synapse point of view omitting redundant namespaces
may not
> be
> >>>>> >> > a
> >>>>> >> > good
> >>>>> >> > idea sometimes. Specially integrating with legacies
like this.
> >>>>> >> > WDYT ? (
> >>>>> >> > I do
> >>>>> >> > agree that this in pure AXIOM point of view its the
correct
> thing
> >>>>> >> > to do
> >>>>> >> > as
> >>>>> >> > it will reduce the data content that is written to
the wire
> etc..
> >>>>> >> > )
> >>>>> >> >
> >>>>> >> > Can please you point me to a place where this is done
? So that
> i
> >>>>> >> > can
> >>>>> >> > hack
> >>>>> >> > the code for the time being for my self and later
provide a
> patch
> >>>>> >> > if
> >>>>> >> > devs
> >>>>> >> > are ok with my above idea.
> >>>>> >> >
> >>>>> >> > thanks,
> >>>>> >> > Charith
> >>>>> >> >
> >>>>> >> >
> >>>>> >> >
> >>>>> >> >
> >>>>> >> >
> >>>>> >> > On Fri, Nov 18, 2011 at 3:55 PM, Andreas Veithen
> >>>>> >> > <andreas.veithen@gmail.com>
> >>>>> >> > wrote:
> >>>>> >> >>
> >>>>> >> >> No, the namespace repairing performed by the serialize
and
> >>>>> >> >> serializeAndConsume methods is not configurable.
> >>>>> >> >>
> >>>>> >> >> What is the use case for preserving a redundant
namespace
> >>>>> >> >> declaration
> >>>>> >> >> on a SOAP header?
> >>>>> >> >>
> >>>>> >> >> Andreas
> >>>>> >> >>
> >>>>> >> >> On Fri, Nov 18, 2011 at 03:23, Charith Wickramarachchi
> >>>>> >> >> <charith.dhanushka@gmail.com> wrote:
> >>>>> >> >> > Hi devs ,
> >>>>> >> >> >
> >>>>> >> >> > When we serialize a OMElement axiom will
omit redundant
> >>>>> >> >> > namesspace
> >>>>> >> >> > declarations by default. Is it possible to
disable this
> >>>>> >> >> > behavior ?
> >>>>> >> >> > In my case i want to keep the redundant namesspace
> declarations
> >>>>> >> >> > in
> >>>>> >> >> > SOAP
> >>>>> >> >> > headers.
> >>>>> >> >> >
> >>>>> >> >> >
> >>>>> >> >> > thanks,
> >>>>> >> >> > Charith
> >>>>> >> >> >
> >>>>> >> >> > --
> >>>>> >> >> > Charith Dhanushka Wickramarachchi
> >>>>> >> >> > http://charithwiki.blogspot.com/
> >>>>> >> >> >
> >>>>> >> >> >
> >>>>> >> >>
> >>>>> >> >>
> >>>>> >> >>
> ---------------------------------------------------------------------
> >>>>> >> >> To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
> >>>>> >> >> For additional commands, e-mail: dev-help@ws.apache.org
> >>>>> >> >>
> >>>>> >> >
> >>>>> >> >
> >>>>> >> >
> >>>>> >> > --
> >>>>> >> > Charith Dhanushka Wickramarachchi
> >>>>> >> > http://charithwiki.blogspot.com/
> >>>>> >> >
> >>>>> >> >
> >>>>> >>
> >>>>> >>
> >>>>> >>
> ---------------------------------------------------------------------
> >>>>> >> To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
> >>>>> >> For additional commands, e-mail: dev-help@ws.apache.org
> >>>>> >>
> >>>>> >
> >>>>> >
> >>>>> >
> >>>>> > --
> >>>>> > Sanjiva Weerawarana, Ph.D.
> >>>>> > Founder, Director & Chief Scientist; Lanka Software Foundation;
> >>>>> > http://www.opensource.lk/
> >>>>> > Founder, Chairman & CEO; WSO2; http://wso2.com/
> >>>>> > Founder & Director; Thinkcube Systems; http://www.thinkcube.com/
> >>>>> > Member; Apache Software Foundation; http://www.apache.org/
> >>>>> > Visiting Lecturer; University of Moratuwa;
> http://www.cse.mrt.ac.lk/
> >>>>> >
> >>>>> > Blog: http://sanjiva.weerawarana.org/
> >>>>> >
> >>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
> >>>>> For additional commands, e-mail: dev-help@ws.apache.org
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> Sanjiva Weerawarana, Ph.D.
> >>>> Founder, Director & Chief Scientist; Lanka Software Foundation;
> >>>> http://www.opensource.lk/
> >>>> Founder, Chairman & CEO; WSO2; http://wso2.com/
> >>>> Founder & Director; Thinkcube Systems; http://www.thinkcube.com/
> >>>> Member; Apache Software Foundation; http://www.apache.org/
> >>>> Visiting Lecturer; University of Moratuwa; http://www.cse.mrt.ac.lk/
> >>>>
> >>>> Blog: http://sanjiva.weerawarana.org/
> >>>
> >>>
> >>>
> >>> --
> >>> Charith Dhanushka Wickramarachchi
> >>> http://charithwiki.blogspot.com/
> >>>
> >>
> >>
> >>
> >> --
> >> Charith Dhanushka Wickramarachchi
> >> http://charithwiki.blogspot.com/
> >>
> >
> >
> >
> > --
> > The best way to predict the future is to invent it - Alan Kay
> >
>



-- 
The best way to predict the future is to invent it - Alan Kay

Mime
View raw message