I am writing a web service client using the suds python library. I have run into a problem with being able to access the WSDL when Windows Authentication is the only means of Authentication enabled. Both Negotiate and NTLM are the providers available.
Based on the documentation of suds i should be able to use the ntlm library to use Windows Authentication with my client. I have added the ntlm library to my pylib directory and i am able to call the functions, but i receive an error “unsupported hash type md4”
https://fedorahosted.org/suds/wiki/Documentation#WindowsNTLM
python-ntlm appears to require Python 2.6. I’m not sure it will work in Ignition.
is there another way i can write a web service that can gain access through windows authentication? suds does seem to be pretty easy, but if it cannot authenticate with windows i am kinda of stuck.
How is the function system.net.httpGet getting through the authentication and grabbing the WSDL?
I was thinking maybe i could pull down the WSDL with system.net. httpGet and reference it local to ignition, but it appears to want to call other files on the web service.
is there an older version python-ntlm out there some where that will work with 2.5.3?
system.net.httpGet is written by us using Java’s HttpURLConnection, which must support NTLM if it works for you.
suds and python-ntlm are written in Jython and their implementation is based on the Python stdlib.
It doesn’t look like the error your seeing is even a Python 2.5 vs 2.6 error but rather that the Jython implementation of hashlib doesn’t support the md4 message digest. Not sure there’s anything you can do about that.
The Sepasoft guys might have a web services module that can deal with WSDL files… maybe you can talk to them? Otherwise you might built your own module using whatever the standard Java tools for dealing with WSDL and web services are… (don’t ask me, as Google)