Hi,

On Fri, Jun 22, 2012 at 2:18 PM, Isuru Suriarachchi <[email protected]> wrote:

> Lakmali,
>
> Can you please explain why we need this SuperTenantRolePlayer and why it
> always returns false for isUltimateDestination()? Looks like, we can't
> always return false here and have to figure out whether this is the
> ultimate destination of the message. If the message is going into a tenant,
> returning false is ok. But for the super tenant case, it should return
> true. In any case, please look into this urgently and fix. This has
> introduced a fundamental bug in addressing and RM.
>

We need to set the SuperTenantRolePlayer to invoke secure services by
tenants. This was actually had been a module inside products previously
(ex: AS org.wso2.stratos.appserver.deployment) and I just made it common by
adding it as a stratos component. This was done as a fix for the issue [1].

Previously this was only added to the services. Now after product-service
merging this SuperTenantRolePlayer might be an issue to the products. Will
look in this.

[1] 
https://wso2.org/jira/browse/STRATOS-1953<https://wso2.org/jira/browse/STRATOS-1953>

Thanks,
Lakmali


>
> Thanks,
> ~Isuru
>
> On Fri, Jun 22, 2012 at 1:34 PM, Andun Gunawardena <[email protected]> wrote:
>
>> Hi All,
>>
>> I have notified that Sandesha2 module cant be engaged in the
>> way which was described in 
>> [1]<http://wso2.org/project/app-server/4.1.2/docs/commodity_quote_guide.html>.
>> In the client side it shows the follwoing error,
>>
>> ERROR [2012-06-21 12:19:47,991] The endpoint reference (EPR) for the
>> Operation not found is and the WSA Action = . If this EPR was previously
>> reachable, please contact the server administrator.
>>
>> When I did a SOAP tracing in AS, I found that the Addressing module is
>> not engaged properly in the response SOAP message. That causes the
>> Sandesha2 handshaking protocol to crash by not having necessary EPRs. The
>> following SOAP message is the SOAP message which was returned to the first
>> handshaking SOAP message, and it doesn't have addressing headers.
>>
>> <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope
>> ">
>>    <soapenv:Header />
>>    <soapenv:Body>
>>       <ns:greetResponse xmlns:ns="http://www.wso2.org/types";>
>>          <return>Hello World, AndunSLG !!!</return>
>>       </ns:greetResponse>
>>    </soapenv:Body>
>> </soapenv:Envelope>
>>
>> In the org.apache.axiom.soap.impl.llom.SOAPHeaderImpl class's 127 line
>> has the following Boolean check which have to return true for
>> the correct excution,
>>
>> return (rolePlayer == null || rolePlayer.isUltimateDestination());
>>
>> But in the current carbon trunk, the rolePlayer object is a instance
>> of org.wso2.carbon.stratos.deployment.SuperTenantRolePlayer. It has the
>> method isUltimateDestination() implemented as follows,
>>
>> public boolean isUltimateDestination() {
>>         return false;
>> }
>>
>> So because of that
>> Axis2's org.apache.axis2.handlers.addressing.AddressingInHandler class
>> disables the AddressignOutHandler. So no addressing happens at the out
>> flow. That causes all the trouble in Addressing and Sandesha2. I put return
>> true experimentally and that makes all the troubles back to normal. So is
>> the implementation of public boolean isUltimateDestination()  is correct ?
>>
>>
>
>
> --
> Isuru Suriarachchi
> Senior Technical Lead
> WSO2 Inc. http://wso2.com
> email : [email protected]
> blog : http://isurues.wordpress.com/
>
> lean . enterprise . middleware
>
>


-- 
Lakmali Baminiwatta*
*
Software Engineer
WSO2, Inc.: http://wso2.com
lean.enterprise.middleware
mobile:  +94 71 2335936
*
*
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to