From: <ba...@us...> - 2007-12-19 04:22:11
|
Revision: 424 http://pywbem.svn.sourceforge.net/pywbem/?rev=424&view=rev Author: bartw Date: 2007-12-18 20:22:16 -0800 (Tue, 18 Dec 2007) Log Message: ----------- got Pegasus Local authentication working (requires a patch to fix the Pegasus HTTP server, pegasus bug 7202) Modified Paths: -------------- pywbem/trunk/cim_http.py pywbem/trunk/cim_operations.py Modified: pywbem/trunk/cim_http.py =================================================================== --- pywbem/trunk/cim_http.py 2007-12-18 07:11:43 UTC (rev 423) +++ pywbem/trunk/cim_http.py 2007-12-19 04:22:16 UTC (rev 424) @@ -149,32 +149,32 @@ data = '<?xml version="1.0" encoding="utf-8" ?>\n' + data + if ssl: + h = HTTPSConnection(host, port = port, key_file = key_file, + cert_file = cert_file) + else: + h = HTTPConnection(host, port = port) + + locallogin = None + if host in ('localhost', '127.0.0.1'): + uid = os.getuid() + try: + locallogin = pwd.getpwuid(uid)[0] + except KeyError: + locallogin = None while numTries < tryLimit: numTries = numTries + 1 - if ssl: - h = HTTPSConnection(host, port = port, key_file = key_file, - cert_file = cert_file) - else: - h = HTTPConnection(host, port = port) - h.putrequest('POST', '/cimom') h.putheader('Content-type', 'application/xml; charset="utf-8"') h.putheader('Content-length', len(data)) - locallogin = None - if host in ('localhost', '127.0.0.1'): - uid = os.getuid() - try: - locallogin = pwd.getpwuid(uid)[0] - except KeyError: - locallogin = None if localAuthHeader is not None: h.putheader(*localAuthHeader) elif creds is not None: h.putheader('Authorization', 'Basic %s' % base64.encodestring('%s:%s' % (creds[0], creds[1]))[:-1]) - if locallogin is not None and localAuthHeader is None: + elif locallogin is not None: h.putheader('PegasusAuthorization', 'Local "%s"' % locallogin) for hdr in headers: @@ -202,6 +202,7 @@ raise response = h.getresponse() + body = response.read() if response.status != 200: if response.status == 401: @@ -242,9 +243,7 @@ if end > beg: file = authChal[beg:end] fo = open(file, 'r') - cookie = '' - for line in fo: - cookie+= line.rstrip() + cookie = fo.read().strip() fo.close() localAuthHeader = ('PegasusAuthorization', 'Local "%s:%s:%s"' % \ @@ -272,7 +271,7 @@ break - return response.read() + return body def get_object_header(obj): Modified: pywbem/trunk/cim_operations.py =================================================================== --- pywbem/trunk/cim_operations.py 2007-12-18 07:11:43 UTC (rev 423) +++ pywbem/trunk/cim_operations.py 2007-12-19 04:22:16 UTC (rev 424) @@ -94,7 +94,7 @@ that is part of the certificate in cert_file. """ - def __init__(self, url, creds, default_namespace = DEFAULT_NAMESPACE, + def __init__(self, url, creds = None, default_namespace = DEFAULT_NAMESPACE, x509 = None, verify_callback = None): self.url = url self.creds = creds This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |