I'd like to extend that security model in a way to control access to the methods of the SOAP-Server based on either (lets say) userid, hostname or even a kerberos ticket.
I did a bit UTSL in SOAP::Lite and so far I was not able to determine a point in the code to place this extension. One idea would be to overload the "dispatch_to" method of SOAP::Lite.
I have a feeling that grabbing the Apache request before it hits the SOAP stuff through a PerlHandler) would be the easiest way of doing that. Although that's not how I'm currently approaching it :)
I was going to add a 'LocalAuth' module (or similar) that would be run at the beginning of a method call, something along the lines of:
as the final lock down at the application level, where individual methods are listed in a DB along with identifying group(s) of hosts allowed to run them (then do a group look up to see which group the particular host belongs to.
I'm still in flux over all this, but having great fun experimenting :) Perhaps you'd care to expand on your ideas...
The DB solution is exactly what I have in mind. The "$auth->can" call in the method call is one solution I thought about. Since this requires an additional call in the method code, I would opt for an inherited method or an additional module in SOAP::Lite, that does this work.