implemented base support for CASv3
This commit is contained in:
+16
-1
@@ -2005,6 +2005,12 @@ class Auth(object):
|
|||||||
return self.cas_validate(version=2, proxy=False)
|
return self.cas_validate(version=2, proxy=False)
|
||||||
elif args(1) == self.settings.cas_actions['proxyvalidate']:
|
elif args(1) == self.settings.cas_actions['proxyvalidate']:
|
||||||
return self.cas_validate(version=2, proxy=True)
|
return self.cas_validate(version=2, proxy=True)
|
||||||
|
elif (args(1) == 'p3'
|
||||||
|
and args(2) == self.settings.cas_actions['servicevalidate']):
|
||||||
|
return self.cas_validate(version=3, proxy=False)
|
||||||
|
elif (args(1) == 'p3'
|
||||||
|
and args(2) == self.settings.cas_actions['proxyvalidate']):
|
||||||
|
return self.cas_validate(version=3, proxy=True)
|
||||||
elif args(1) == self.settings.cas_actions['logout']:
|
elif args(1) == self.settings.cas_actions['logout']:
|
||||||
return self.logout(next=request.vars.service or DEFAULT)
|
return self.logout(next=request.vars.service or DEFAULT)
|
||||||
else:
|
else:
|
||||||
@@ -2830,6 +2836,15 @@ class Auth(object):
|
|||||||
if success:
|
if success:
|
||||||
if version == 1:
|
if version == 1:
|
||||||
message = 'yes\n%s' % user[userfield]
|
message = 'yes\n%s' % user[userfield]
|
||||||
|
elif version == 3:
|
||||||
|
username = user.get('username', user[userfield])
|
||||||
|
message = build_response(
|
||||||
|
TAG['cas:authenticationSuccess'](
|
||||||
|
TAG['cas:user'](username),
|
||||||
|
TAG['cas:attributes'](
|
||||||
|
*[TAG['cas:' + field.name](user[field.name])
|
||||||
|
for field in self.table_user()
|
||||||
|
if field.readable])))
|
||||||
else: # assume version 2
|
else: # assume version 2
|
||||||
username = user.get('username', user[userfield])
|
username = user.get('username', user[userfield])
|
||||||
message = build_response(
|
message = build_response(
|
||||||
@@ -7072,4 +7087,4 @@ class Config(object):
|
|||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
import doctest
|
import doctest
|
||||||
doctest.testmod()
|
doctest.testmod()
|
||||||
|
|||||||
Reference in New Issue
Block a user