You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by Marina Deslaugiers <ma...@orange-ftgroup.com> on 2008/06/02 16:22:35 UTC

Re: URGENT - CONTINUED Need help again on binding to external web service with login authentication within Tuscany

Hi Simon,

Thank you very much for your help. I will try to understand your  
explanations and to integrate the changes.
Unfortunately at the moment I am very busy on other staff so I am not  
sure I will get the time required to do that before thursday evening.
BUT I do want to keep in contact with you.

Regarding the HTTP Basic authentication do you plan to add such a  
definition into Tuscany ?
This type of authentication is MANDATORY for (and the only one  
handled by) the nursery web services we must consider in our evaluation.
>> To do HTTP basic authentication we need a new a new policy  
>> definition. I don't think we have done this yet so I'll
>> be interested to see if anyone posts here to contradict me.



Regards,
Marina.


Le 2 juin 08 à 15:44, Simon Laws a écrit :

> On Mon, Jun 2, 2008 at 1:15 PM, Simon Laws <si...@googlemail.com>
> wrote:
>
>> Hi Marina
>>
>> I've just been looking at this so some comments in line...
>>
>> Simon
>>
>>
>>>
>>>>>      1) the namespaces used in SOAP BODY are not in conformity  
>>>>> with the
>>>>> WSDL. Indeed, one can find the value "http://translatewithsms"   
>>>>> as the
>>>>> "pseudo"  namespace _ns_. Replacing that value with the one  
>>>>> defined in
>>>>> the
>>>>> WSDL say "http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/
>>>>> SMSSenderSEI",
>>>>> the SOAP frame works
>>>>>
>>>>> Note that I realized that "translatewithsms" is the package  
>>>>> name of my
>>>>> Eclipse project (containing in particular java client,  
>>>>> interfaces etc.
>>>>> files).
>>>>
>>>>
>> A. How did you generate the Java interface that you are using to  
>> type the
>> component reference that refers to this remote service?
>> B. How do you define the interface of the reference that refers to  
>> the
>> remote service. Do you use interface.wsdl?
>>
>> If you have generated your java interface into the package
>> "translatewithsms" and you use this to describe the reference  
>> interface (or
>> is defaults to this) then it will invent the message namespace  
>> based on the
>> package name I believe.
>>
>>
>>>
>>>>>
>>>>>      2) at HTTP level, the web service in the Nursery is  
>>>>> protected by
>>>>> "Basic Authentication" ; but the "Authorization" header is not  
>>>>> sent by
>>>>> Tuscany
>>>>>
>>>>>       (NB: at the current state, we cannot know whether it is  
>>>>> actually a
>>>>> problem EXCEPT if Tuscany uses pre-emptive authentication  
>>>>> mecanisms
>>>>>
>>>>
>> Yes. You definitions.xml file turns on the WSSecurity  
>> authorization using
>> the <tuscany:wsConfigParam> element. To do HTTP basic  
>> authentication we need
>> a new a new policy definition. I don't think we have done this yet  
>> so I'll
>> be interested to see if anyone posts here to contradict me.
>>
>>
>>
>>>>>      3) Note that Tuscany sends the authentication
>>>>> credentials(user/password) using WS-Security that is not taken  
>>>>> into
>>>>> account
>>>>> by the Nursery platform.  This is not a problem however,  
>>>>> credentials are
>>>>> not
>>>>>  operate.
>>>>>
>>>>> NB:  tcpdump files can be opened with WireShark http://
>>>>> www.wireshark.org/download.html
>>>>>
>>>>>
>> I see. This comes back to replacing wssecurity based  
>> authentication with
>> HTTP basic authentication.
>>
>>
>>>>>
>>>>>  I might be responsible for these problems as I have probably made
>>>>> mistakes
>>>>> in coding (at least regarding the policy expression). Please  
>>>>> can you
>>>>> help me
>>>>> in correcting.
>>>>>
>>>>> Thanks you very much.
>>>>>
>>>>> Regards,
>>>>> Marina.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
> Marina
>
> I tried a test to help clarrify what I'm talking about in terms of  
> getting
> the namespace right. I changed a calculator sample I'm using for  
> some other
> testing to take the namespace from a manually altered WSDL file.  
> This is how
> I set up the composite.
>
>     <component name="CalculatorServiceComponent">
>         <implementation.java  
> class="calculator.CalculatorServiceImpl"/>
>         <reference name="addService">
>            <interface.wsdl interface="
> http://calculator2#wsdl.interface(AddService)"/>
>            <binding.ws uri="http://localhost:8085/AddService"
> requires="authentication" />
>         </reference>
>         <reference name="subtractService"
> target="SubtractServiceComponent"/>
>         <reference name="multiplyService"
> target="MultiplyServiceComponent"/>
>         <reference name="divideService"  
> target="DivideServiceComponent"/>
>     </component>
>
>     <component name="AddServiceComponent">
>         <implementation.java class="calculator.AddServiceImpl"/>
>         <service name="AddService">
>              <interface.wsdl interface="
> http://calculator2#wsdl.interface(AddService)" />
>              <binding.ws uri="http://localhost:8085/AddService"
> requires="authentication"/>
>         </service>
>     </component>
>
> The WSDL sits alongside the composite file in the contribution and is
> automatically parsed by the runtime. Note that I'm telling the  
> reference to
> take the interface details from the WSDL file with the line
>
> <interface.wsdl interface="http://calculator2#wsdl.interface 
> (AddService)"/>
>
> This won't fix your HTTP basic authentication problem but should  
> correct the
> namespace issue.
>
> Regards
>
> Simon


Re: URGENT - CONTINUED Need help again on binding to external web service with login authentication within Tuscany

Posted by Marina Deslaugiers <ma...@orange-ftgroup.com>.
Hi,

Yesterday, I put a message as well as two attachement files on the  
JIRA issue I have created tuscany-2355 but I did not realize it was  
not posted on the user-list. So below it is.

Thanks for your answer (even if I feel you are very busy)

Regards,
Marina.


> Hi,
>
> Following your indications, Simon, I change my composite file to  
> take interface details from the WSDL file into account (adding the  
> <interface.wsdl interface= ... />".
>
> We proceeded again testing with the person responsible of web  
> service "Nursery" support to users.
>
> But, I still get the same error on the namespace:
>  " the namespaces used in SOAP BODY are not in conformity with the  
> WSDL. Indeed, one can find the value "http://translatewithsms"  as  
> the "pseudo"  namespace _ns_. Replacing that value with the one  
> defined in the WSDL say "http://com.osa.mdsp.enabler.sei/SMSEnabler/ 
> V2_0/SMSSenderSEI", the SOAP frame works"
>
> If any, what mistake have I done ? Can you give me a correction,  
> please.
> I attach my modified Composite file and the WSDL file to this post.
>
> Thanks for your help


Le 2 juin 08 à 16:22, Marina Deslaugiers a écrit :

> Hi Simon,
>
> Thank you very much for your help. I will try to understand your  
> explanations and to integrate the changes.
> Unfortunately at the moment I am very busy on other staff so I am  
> not sure I will get the time required to do that before thursday  
> evening.
> BUT I do want to keep in contact with you.
>
> Regarding the HTTP Basic authentication do you plan to add such a  
> definition into Tuscany ?
> This type of authentication is MANDATORY for (and the only one  
> handled by) the nursery web services we must consider in our  
> evaluation.
>>> To do HTTP basic authentication we need a new a new policy  
>>> definition. I don't think we have done this yet so I'll
>>> be interested to see if anyone posts here to contradict me.
>
>
>
> Regards,
> Marina.
>
>
> Le 2 juin 08 à 15:44, Simon Laws a écrit :
>
>> On Mon, Jun 2, 2008 at 1:15 PM, Simon Laws  
>> <si...@googlemail.com>
>> wrote:
>>
>>> Hi Marina
>>>
>>> I've just been looking at this so some comments in line...
>>>
>>> Simon
>>>
>>>
>>>>
>>>>>>      1) the namespaces used in SOAP BODY are not in conformity  
>>>>>> with the
>>>>>> WSDL. Indeed, one can find the value "http:// 
>>>>>> translatewithsms"  as the
>>>>>> "pseudo"  namespace _ns_. Replacing that value with the one  
>>>>>> defined in
>>>>>> the
>>>>>> WSDL say "http://com.osa.mdsp.enabler.sei/SMSEnabler/V2_0/
>>>>>> SMSSenderSEI",
>>>>>> the SOAP frame works
>>>>>>
>>>>>> Note that I realized that "translatewithsms" is the package  
>>>>>> name of my
>>>>>> Eclipse project (containing in particular java client,  
>>>>>> interfaces etc.
>>>>>> files).
>>>>>
>>>>>
>>> A. How did you generate the Java interface that you are using to  
>>> type the
>>> component reference that refers to this remote service?
>>> B. How do you define the interface of the reference that refers  
>>> to the
>>> remote service. Do you use interface.wsdl?
>>>
>>> If you have generated your java interface into the package
>>> "translatewithsms" and you use this to describe the reference  
>>> interface (or
>>> is defaults to this) then it will invent the message namespace  
>>> based on the
>>> package name I believe.
>>>
>>>
>>>>
>>>>>>
>>>>>>      2) at HTTP level, the web service in the Nursery is  
>>>>>> protected by
>>>>>> "Basic Authentication" ; but the "Authorization" header is not  
>>>>>> sent by
>>>>>> Tuscany
>>>>>>
>>>>>>       (NB: at the current state, we cannot know whether it is  
>>>>>> actually a
>>>>>> problem EXCEPT if Tuscany uses pre-emptive authentication  
>>>>>> mecanisms
>>>>>>
>>>>>
>>> Yes. You definitions.xml file turns on the WSSecurity  
>>> authorization using
>>> the <tuscany:wsConfigParam> element. To do HTTP basic  
>>> authentication we need
>>> a new a new policy definition. I don't think we have done this  
>>> yet so I'll
>>> be interested to see if anyone posts here to contradict me.
>>>
>>>
>>>
>>>>>>      3) Note that Tuscany sends the authentication
>>>>>> credentials(user/password) using WS-Security that is not taken  
>>>>>> into
>>>>>> account
>>>>>> by the Nursery platform.  This is not a problem however,  
>>>>>> credentials are
>>>>>> not
>>>>>>  operate.
>>>>>>
>>>>>> NB:  tcpdump files can be opened with WireShark http://
>>>>>> www.wireshark.org/download.html
>>>>>>
>>>>>>
>>> I see. This comes back to replacing wssecurity based  
>>> authentication with
>>> HTTP basic authentication.
>>>
>>>
>>>>>>
>>>>>>  I might be responsible for these problems as I have probably  
>>>>>> made
>>>>>> mistakes
>>>>>> in coding (at least regarding the policy expression). Please  
>>>>>> can you
>>>>>> help me
>>>>>> in correcting.
>>>>>>
>>>>>> Thanks you very much.
>>>>>>
>>>>>> Regards,
>>>>>> Marina.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>> Marina
>>
>> I tried a test to help clarrify what I'm talking about in terms of  
>> getting
>> the namespace right. I changed a calculator sample I'm using for  
>> some other
>> testing to take the namespace from a manually altered WSDL file.  
>> This is how
>> I set up the composite.
>>
>>     <component name="CalculatorServiceComponent">
>>         <implementation.java  
>> class="calculator.CalculatorServiceImpl"/>
>>         <reference name="addService">
>>            <interface.wsdl interface="
>> http://calculator2#wsdl.interface(AddService)"/>
>>            <binding.ws uri="http://localhost:8085/AddService"
>> requires="authentication" />
>>         </reference>
>>         <reference name="subtractService"
>> target="SubtractServiceComponent"/>
>>         <reference name="multiplyService"
>> target="MultiplyServiceComponent"/>
>>         <reference name="divideService"  
>> target="DivideServiceComponent"/>
>>     </component>
>>
>>     <component name="AddServiceComponent">
>>         <implementation.java class="calculator.AddServiceImpl"/>
>>         <service name="AddService">
>>              <interface.wsdl interface="
>> http://calculator2#wsdl.interface(AddService)" />
>>              <binding.ws uri="http://localhost:8085/AddService"
>> requires="authentication"/>
>>         </service>
>>     </component>
>>
>> The WSDL sits alongside the composite file in the contribution and is
>> automatically parsed by the runtime. Note that I'm telling the  
>> reference to
>> take the interface details from the WSDL file with the line
>>
>> <interface.wsdl interface="http://calculator2#wsdl.interface 
>> (AddService)"/>
>>
>> This won't fix your HTTP basic authentication problem but should  
>> correct the
>> namespace issue.
>>
>> Regards
>>
>> Simon
>