OLD | NEW |
1 import logging | 1 import logging |
2 import urllib2 | 2 import urllib2 |
3 | 3 |
4 import kerberos as krb | 4 import kerberos as krb |
5 | 5 |
6 class GssapiAuthError(Exception): | 6 class GssapiAuthError(Exception): |
7 """raised on error during authentication process""" | 7 """raised on error during authentication process""" |
8 | 8 |
9 import re | 9 import re |
10 RGX = re.compile('(?:.*,)*\s*Negotiate\s*([^,]*),?', re.I) | 10 RGX = re.compile('(?:.*,)*\s*Negotiate\s*([^,]*),?', re.I) |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
55 server_response = self.parent.open(req) | 55 server_response = self.parent.open(req) |
56 negotiate = get_negociate_value(server_response.info()) | 56 negotiate = get_negociate_value(server_response.info()) |
57 if negotiate is None: | 57 if negotiate is None: |
58 logging.warning('HTTPGssapiAuthHandler: failed to authenticate s
erver') | 58 logging.warning('HTTPGssapiAuthHandler: failed to authenticate s
erver') |
59 else: | 59 else: |
60 logging.debug('HTTPGssapiAuthHandler negotiate 2: %s' % negotiat
e) | 60 logging.debug('HTTPGssapiAuthHandler negotiate 2: %s' % negotiat
e) |
61 result = krb.authGSSClientStep(self._context, negotiate) | 61 result = krb.authGSSClientStep(self._context, negotiate) |
62 if result < 1: | 62 if result < 1: |
63 raise GssapiAuthError("HTTPGssapiAuthHandler: step 2 failed
with %d" % result) | 63 raise GssapiAuthError("HTTPGssapiAuthHandler: step 2 failed
with %d" % result) |
64 return server_response | 64 return server_response |
65 except GssapiAuthError as exc: | 65 except GssapiAuthError, exc: |
66 logging.error(repr(exc)) | 66 logging.error(repr(exc)) |
67 finally: | 67 finally: |
68 self.clean_context() | 68 self.clean_context() |
69 self._reset() | 69 self._reset() |
70 | 70 |
71 if __name__ == '__main__': | 71 if __name__ == '__main__': |
72 import sys | 72 import sys |
73 # debug | 73 # debug |
74 import httplib | 74 import httplib |
75 httplib.HTTPConnection.debuglevel = 1 | 75 httplib.HTTPConnection.debuglevel = 1 |
76 httplib.HTTPSConnection.debuglevel = 1 | 76 httplib.HTTPSConnection.debuglevel = 1 |
77 # debug | 77 # debug |
78 import logging | 78 import logging |
79 logging.basicConfig(level=logging.DEBUG) | 79 logging.basicConfig(level=logging.DEBUG) |
80 # handle cookies | 80 # handle cookies |
81 import cookielib | 81 import cookielib |
82 cj = cookielib.CookieJar() | 82 cj = cookielib.CookieJar() |
83 ch = urllib2.HTTPCookieProcessor(cj) | 83 ch = urllib2.HTTPCookieProcessor(cj) |
84 # test with url sys.argv[1] | 84 # test with url sys.argv[1] |
85 h = HTTPGssapiAuthHandler() | 85 h = HTTPGssapiAuthHandler() |
86 response = urllib2.build_opener(h, ch).open(sys.argv[1]) | 86 response = urllib2.build_opener(h, ch).open(sys.argv[1]) |
87 print '\nresponse: %s\n--------------\n' % response.code, response.info() | 87 print '\nresponse: %s\n--------------\n' % response.code, response.info() |
OLD | NEW |