Hi All, I just cleaned up the use of 'repetition' element in the out flow cofiguration and now Axis2 security module configuration look as described in this : http://marc.theaimsgroup.com/?l=axis-dev&m=112983906808070&w=2
This is how the interop scenario 5 configuration looks like in Axis2 now: (See <parameter name="OutflowSecurity"> element) http://svn.apache.org/viewcvs.cgi/*checkout*/webservices/axis2/trunk/java/modules/integration/test-resources/security/s5.client.axis2.xml msgContext.getEnvelope().build() will build the OM (aka AXIOM) structure of the envelope element IF it is not built at that point, due to the deferred built nature of OM. It does not serialize the envelope but simply completes the XML object model. In the case when the handler is chained (repeated) (in fact whenever the handler is called) the OM is completely built just before converting OM to DOM. See : org.apache.axis2.security.util.Axis2Util.getDocumentFromSOAPEnvelope(SOAPEnvelope env) [1]. In this I had to perform env.build(), since evn.serializeAndConsume() does not serialize the envelope properly (to construct DOM) when it is not completely built. BTW evn.serializeAndConsume() used to be env.serialize() [2] until recently. Making the OM structure complete was added to this point in the handler code when we introduced MTOM optimizing certain portions of the message. For example base64 encoded text in the CipherData element can be MTOM optimized. This was done to make sure that the OM structure that is complete before its querried using XPath. But, now I see that, this shouldn't make a diffrence, since during XPath processing the OM structure is built anyway :-). Therefore we can actually get rid of that line and things should work without a problem. Thanks, Ruchith [1] http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/util/Axis2Util.java?rev=326985&view=markup [2] http://svn.apache.org/viewcvs.cgi/webservices/axis2/trunk/java/modules/security/src/org/apache/axis2/security/util/Axis2Util.java?rev=293501&r1=292217&r2=293501&diff_format=h On 10/21/05, Davanum Srinivas <[EMAIL PROTECTED]> wrote: > Yes, we are gonna clean up that repition thing. Ruchith can explain it > better. It has to do with Signing twice for example > > thanks, > dims > > On 10/21/05, Dittmann, Werner <[EMAIL PROTECTED]> wrote: > > Thanks Dims, Ruchith. > > > > I just had a look in Axis2 security handler, looks very nice > > indeed. Also the parameter structurce looks much nicer > > than in Axis1 :-). > > > > Seems that I need to get maven to get Axis2 up and running > > on my system. > > > > Just one small question: When doing a "repetition" > > aka HandlerChaining there is a call to > > msgContext.getEnvelope().build() even in the case there > > is a repetition and the enevelope may not be ready yet. Isn't > > that an overhead (I'm not familiar with the way Axis2 sets up > > it internal structures)? > > > > Regards, > > Werner > > > > > -----Ursprüngliche Nachricht----- > > > Von: Davanum Srinivas [mailto:[EMAIL PROTECTED] > > > Gesendet: Freitag, 21. Oktober 2005 16:12 > > > An: Ruchith Fernando > > > Cc: Dittmann, Werner; [email protected] > > > Betreff: Re: Picking up resources with a custom classloader > > > > > > > > > Werner, > > > > > > The code is here: > > > http://svn.apache.org/repos/asf/webservices/axis2/trunk/java/m > > > odules/security/ > > > > > > As you can see it is a VERY THIN layer on top of wss4j. just 4 classes > > > and some supporting classes. > > > > > > thanks, > > > dims > > > > > > On 10/21/05, Ruchith Fernando <[EMAIL PROTECTED]> wrote: > > > > Hi Werner, > > > > > > > > Please see my comments below: > > > > > > > > Thanks, > > > > Ruchith > > > > > > > > On 10/21/05, Dittmann, Werner <[EMAIL PROTECTED]> wrote: > > > > > All, > > > > > > > > > > without having a look into Axis2 I have some questions: > > > > > > > > > > - how many classloader environments does Axis2 need/uses? > > > > > - what is the difference between "Axis2 module classloader" > > > > > and "Axis2 service classloader" > > > > > > > > Axis2 uses two classloaders one for services and one for > > > modules. IMHO > > > > this is mainly because the Axis2 services and modules are > > > archived and > > > > they are expected to work in isolation. Therefore the > > > classloader that > > > > is associated with the module archive is the 'module class > > > loader' and > > > > similarly with the service. The third party libs and other resources > > > > associated with the module or the service will be packaged in that > > > > respective archive and will only be pickedup by the respective > > > > classloader. > > > > > > > > > - does a handler like the WSS4J handler runs as Axis2 service > > > > > or as Axis2 module? > > > > > > > > We have ports of the WSdoAll* handlers in a Axis2 module. > > > > > > > > > > > > > > Regards, > > > > > Werner > > > > > > > > > > > > > > > > -----Ursprüngliche Nachricht----- > > > > > > Von: Ruchith Fernando [mailto:[EMAIL PROTECTED] > > > > > > Gesendet: Freitag, 21. Oktober 2005 14:58 > > > > > > An: [email protected] > > > > > > Betreff: Picking up resources with a custom classloader > > > > > > > > > > > > > > > > > > Hi All, > > > > > > > > > > > > Dims made some changes recently to enable WSS4J to load > > > the password > > > > > > callback class from a given class loader. This allowed > > > Axis2 security > > > > > > module (which is a port of the WSDoAll* handlers) to be > > > able to load > > > > > > the password callback parameters from the service's > > > class loader. > > > > > > > > > > > > Axis2 services have their own classloader and this is > > > different from > > > > > > the classloader available to the Axis2 module. > > > Therefore we need to > > > > > > supply the service's classloader to WSS4J to pickup the required > > > > > > resources and classes. > > > > > > > > > > > > Therefore we should also be able to load the other > > > resources such as > > > > > > crypto.propertes with a custom class loader (the > > > service's classloader > > > > > > in the case of Axis2), and we may have to load a > > > different Crypto impl > > > > > > from the Axis2 service archive. Right now this is not > > > possible since > > > > > > the CryptoFactory and the default Crypto impl (Merlin) > > > is not capable > > > > > > of accessing a custom class loader. > > > > > > > > > > > > I made some changes and tried it out with Axis2 and it > > > was able to > > > > > > pickup the resources from the Axis2 service archive. > > > Please have a > > > > > > look at the attached diff. > > > > > > > > > > > > Can we have this option in WSS4J? Or is there a better > > > way to do it? > > > > > > Thoughts? :-) > > > > > > > > > > > > Thanks > > > > > > -- > > > > > > Ruchith > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Ruchith > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > -- > > > Davanum Srinivas : http://wso2.com/blogs/ > > > > > > > > -- > Davanum Srinivas : http://wso2.com/blogs/ > -- Ruchith --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
