Commit 4e64c503 by Ed Crewe

fix broken proxy auth check

parent 9d56c5a2
...@@ -49,27 +49,25 @@ def _verify_cas2(ticket, service): ...@@ -49,27 +49,25 @@ def _verify_cas2(ticket, service):
urlencode(params)) urlencode(params))
page = urlopen(url) page = urlopen(url)
response = page.read()
try: tree = ElementTree.fromstring(response)
response = page.read() page.close()
tree = ElementTree.fromstring(response)
if tree[0].tag.endswith('authenticationSuccess'): if tree[0].tag.endswith('authenticationSuccess'):
username = tree[0][0].text username = tree[0][0].text
if len(tree[0]) >= 2 and tree[0][1].tag.endswith('proxyGrantingTicket'): if len(tree[0]) >= 2 and tree[0][1].tag.endswith('proxyGrantingTicket'):
pgtIou = PgtIOU.objects.get(pgtIou = tree[0][1].text) pgtIou = PgtIOU.objects.get(pgtIou = tree[0][1].text)
try: try:
tgt = Tgt.objects.get(username = username) tgt = Tgt.objects.get(username = username)
tgt.tgt = pgtIou.tgt tgt.tgt = pgtIou.tgt
tgt.save() tgt.save()
except ObjectDoesNotExist: except ObjectDoesNotExist:
Tgt.objects.create(username = username, tgt = pgtIou.tgt) Tgt.objects.create(username = username, tgt = pgtIou.tgt)
pgtIou.delete() pgtIou.delete()
return username return username
else: else:
return None return None
finally:
page.close()
def verify_proxy_ticket(ticket, service): def verify_proxy_ticket(ticket, service):
......
...@@ -98,6 +98,7 @@ class TestCAS(unittest.TestCase): ...@@ -98,6 +98,7 @@ class TestCAS(unittest.TestCase):
print 'PASS: Got PT - %s' % pt print 'PASS: Got PT - %s' % pt
else: else:
print pt print pt
#self.logout()
print '' print ''
print 'Test SSO server login with proxy ticket' print 'Test SSO server login with proxy ticket'
...@@ -107,7 +108,8 @@ class TestCAS(unittest.TestCase): ...@@ -107,7 +108,8 @@ class TestCAS(unittest.TestCase):
print 'PASS: Got Success response for app %s using proxy %s' % (self.urls['app'], proxy) print 'PASS: Got Success response for app %s using proxy %s' % (self.urls['app'], proxy)
else: else:
print 'FAIL: The proxy login to %s via %s has failed' % (self.urls['app'], self.urls['proxy']) print 'FAIL: The proxy login to %s via %s has failed' % (self.urls['app'], self.urls['proxy'])
self.logout()
print '' print ''
print 'Test direct proxy login' print 'Test direct proxy login'
print '-----------------------' print '-----------------------'
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment