Hi Kieran,

Do you have any thoughts on how you'd like to see this enabled in the
SoapServer and then surfaced at the SCA level?  It would be good to
mock up a scenario at both levels.  I could take a stab at inventing a
scenario, but if you have something in mind, that would probably be a
better place to start.

Regards,

Graham.


On 1 Mar, 17:42, "[EMAIL PROTECTED]" <[EMAIL PROTECTED]>
wrote:
> Hi Kieran,
>
> I wrote a response a couple of days ago, but for some reason I can't
> see it here, so here goes again...
>
> On 27 Feb, 00:45, "[EMAIL PROTECTED]"
>
> <[EMAIL PROTECTED]> wrote:
> > Thanks for your replies,
>
> > I'd like the WSDL generator to define the SOAP headers. Also the
> > business/application logic should be able to access any headers sent
> > from a SOAP client as SDO objects. I think the best place for the
> > definition of the headers would be in the annotations above each
> > class.
>
> I like the idea of adding support to generate Soap headers in the
> WSDL.  I agree that a class level annotation makes sense as the place
> to add the headers.
>
> I think of Soap headers as things which cut across services and
> ideally should not be surfaced in the business/applications logic
> (e.g. security).  If the business logic needs the info, then I'd
> typically consider moving into the body.
>
> That said, there are sometimes reasons outside ones control which
> might lead to the requirement to access headers from application
> logic, so I wouldn't want us to proclude it, perhaps just not
> recommend it ;-)
>
> > The bug request mentioned seems to not have any real solution except
> > for the fact that there's no current way to do what I want using the
> > SoapServer from PHP.
>
> The lack of real solution was partly why I mentioned it.  Sorry I
> didn't make that clear.
>
> > Consequently, I've posted a feature request (http://bugs.php.net/
> > bug.php?id=40652) for writing SoapHeaders with SoapServer, although
> > after rereading my request, I may not have been clear enough. If you
> > were to post comments of support and/or clarification to the request
> > it would be greatly appreciated, and might give it some more swing.
>
> I've added a comment to try to make sure whatever gets implemented can
> be used in SCA in an effective way.
>
> > Regards,
>
> > Kieran
>
> > On 26 Feb, 16:40, "[EMAIL PROTECTED]"
>
> > <[EMAIL PROTECTED]> wrote:
> > > Hi,
>
> > > I added the __setSoapHeader() to allow me to write a custom Binding
> > > for eBay.  I needed to be able to flow an eBay CustomSecurityHeader in
> > > the SoapHeader.  An extract of its use is as follows (I've modified
> > > the code a little to show how you would use it directly on the proxy
> > > rather than in a custom binding for clarity, but to preserve the
> > > protocol/business logic separation, this is best done in a binding):
>
> > >             $requester_credentials =
> > >                 
> > > $proxy->createDataObject('urn:ebay:apis:eBLBaseComponents',
>
> > >                                         'CustomSecurityHeaderType');
> > >             $requester_credentials->eBayAuthToken = 
> > > $this->config['authtoken'];
>
> > >             $credentials = 
> > > $requester_credentials->createDataObject('Credentials');
>
> > >             $credentials->AppId    = $this->config['appid'];
> > >             $credentials->DevId    = $this->config['devid'];
> > >             $credentials->AuthCert = $this->config['authcert'];
> > >             $proxy->__setSoapHeader($requester_credentials,
> > >                                    'urn:ebay:apis:eBLBaseComponents',
> > >                                    'RequesterCredentials');
> > >             $response = $proxy->GetSearchResults($request);
>
> > > I think it would be good to provide the equivalent on the server
> > > side.  This would probably be best used by custom binding
> > > implementations to keep header handling separate from business logic
> > > (I'm not sure how this could be cleanly done any other way since an
> > > SCA component does not know about the binding implementation, so can't
> > > easily explicitly request the header).
>
> > > Ideally the SoapServer would provide a hook for this to be
> > > implemented, but unfortunately this is not the case 
> > > (seehttp://bugs.php.net/bug.php?id=38309).  It may be possible to extend
> > > the SCA_Bindings_ws_ServiceRequestHandler to parse out the header into
> > > an SDO, but this will impact performance (the SoapServer has already
> > > parsed the request once).
>
> > > We may be able to request that the SoapServer provide the hook (or
> > > offer to contribute it), if that's what we decide is the best way
> > > forward.
>
> > > On 26 Feb, 11:51, [EMAIL PROTECTED] wrote:
>
> > > > On 26 Feb, 00:54, "[EMAIL PROTECTED]"
>
> > > > <[EMAIL PROTECTED]> wrote:
> > > > > Hi,
>
> > > > > I'm working with a medium sized telco in Australia to reimplement
> > > > > their CRM. First thing we're doing is to turn all their core services
> > > > > into SOAP exposed services.
>
> > > > > SOAP headers would make our life a lot easier. I've read the
> > > > > documentation and had a quick look at the source code - but it seems
> > > > > as though there's no way to do this.
>
> > > > > Is there technical limitations as to why this isn't implemented? We
> > > > > have a few developers here, and if it's not too difficult to implement
> > > > > we may be ale to allocate resources to implementing it.
>
> > > > > Great work, by the way.
>
> > > > > Regards,
>
> > > > > Kieran
>
> > > > Hi Kieran and thanks:-)
>
> > > > Do you mean you want to be able to set the SOAP hearders that are sent
> > > > with a SOAP request?  Looking at the AVOCET branch in CVS it seems
> > > > Graham Charters has had this problem as a method was added to allow
> > > > SOAP headers to be set. If you look in the branch at file SCA/Bindings/
> > > > ws/Proxy.php there is a new method.
>
> > > > public function __setSoapHeader($header_sdo, $ns, $name) {
>
> > > > I don't see any examples of how to use it though so maybe Graham will
> > > > comment with some detail on the ins and outs of the change.
>
> > > > If you want to read the SOAP headers in a service then I'm not sure
> > > > how you go about it at present. There is no technical reason why we
> > > > shouldn't allow access to the headers but we would have to add an API
> > > > to retireve the information for a call.
>
> > > > Thanks for the offer of help it's very welcome. Lets discuss your
> > > > exact requirements here then we can work out how we implement it.
>
> > > > Regards
>
> > > > Simon


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"phpsoa" group.
To post to this group, send email to phpsoa@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.co.uk/group/phpsoa?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to