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 <[EMAIL PROTECTED]>
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

Reply via email to