I've been looking into integrating NERC DataGrid Security (all written in Python) into the existing BADC web site Perl CGI code - quick dirty if necessary.
The NDG Security Single Sign On service has a http interface so this should be straightforward - Perl on one side of the interface and Python the other. However the various SOAP interfaces with WS-Security added into the mix doesn't make it very attractive. I've not looked into Perl SOAP support - and this may be great - but if we are migrating all our Perl code to Python it would seem a wasted effort.
Inline is really impressive. I had a python client call to the NDG Attribute Authority working in minutes - Perl calling Python calling a SOAP Service and returning the response back to Perl as a local variable:
Perl <-> Python <-> SOAP + WS-Security <-> Python Attribute Authority Web service
Installation was fairly straightforward on Ubuntu - libinline-perl package is available but Inline-Python required downloaded and install from CPAN.
I was expecting all kinds of shared library link errors but all works perfectly. It's nice when things work simply easily and quickly for a change :)
#!/usr/bin/env perl
use Inline Python => <<'END';
def getAAHostsInfo():
from ndg.security.common.AttAuthority import AttAuthorityClient
import os
aaClnt = AttAuthorityClient(uri="http://localhost:5000/AttributeAuthority",
cfgFilePath='wssecurity.cfg')
allHostsInfo = aaClnt.getAllHostsInfo()
return "All hosts info = %s" % allHostsInfo
END
print getAAHostsInfo(), "\n";
No comments:
Post a Comment