Loading ...
Sorry, an error occurred while loading the content.

AW: [soaplite] WS-Trust / WS Security / RequestSecurityToken, was: namespace

Expand Messages
  • Martin Busik
    Hi, ... in priniple yes. If you use this, you can write: $proxy- uri( http://docs.oasis-open.org/ws-sx/ws-trust/200512/ )
    Message 1 of 2 , Dec 1, 2009
    • 0 Attachment
      Hi,
      > I) You also replied to another email in the soaplite, yahoo
      > email. Where you specified that through this command:
      > $proxy->uri("http://www.betfair.com/publicapi/v3/BFGlobalServi
      > ce/"); # namespace of your method
      >
      > We can generate
      > <soap:Body>
      > <login xmlns="http://www.betfair.com/publicapi/v3/BFGlobalService/">
      >
      > Can I do this for my requirement too?

      in priniple yes. If you use this, you can write:

      $proxy->uri("http://docs.oasis-open.org/ws-sx/ws-trust/200512/")
      $proxy->call("RequestSecurityToken",...

      instead of
      $proxy->serializer->register_ns("http://docs.oasis-open.org/ws-sx/ws-trust/2
      00512/","ns2")
      $proxy->call("ns2:RequestSecurityToken",...

      I.e. you do not need prefixes ($prefix2) for your elements inside
      RequestSecurityToken, when using ->uri(NS) and
      when all request elements are within this namespace.

      > 2) You also mentioned that I can register namespaces inside
      > SOAP:Envelop , and then do not need to do that stuff again
      > for SOAP::Header , SOAP:Body?

      right.

      > Are you sure that the code which you sent me , ( where we are
      > not inserting namespaces inside Header / body ) would also work?

      yes. Except - the server does strange things with the request :-/
      But I don't excpect the server to do strange things...

      >
      > SOAP::Lite I guess creates the header and body automatically
      > when I issue the method call at runtime.I do not have the
      > control to insert namespaces there.

      You can. But why do you need them? It is ok to put a namespace declaration
      on a valid "place". Envelope is
      a valid place.

      Anyway, you can supply a namespace for every element, including the method
      name (RequestSecurityToken) by using:

      $proxy->call(SOAP::Data->name("xyxyxy:RequestSecurityToken")->attr( {
      "xmlns:xyxyxy => "urn:theNamespace" }), ...

      Cheers,
      Martin
    Your message has been successfully submitted and would be delivered to recipients shortly.