summaryrefslogtreecommitdiffstats
path: root/ipsilon/providers/openid
diff options
context:
space:
mode:
Diffstat (limited to 'ipsilon/providers/openid')
-rwxr-xr-xipsilon/providers/openid/auth.py4
-rwxr-xr-xipsilon/providers/openid/extensions/common.py10
-rwxr-xr-xipsilon/providers/openid/meta.py4
3 files changed, 11 insertions, 7 deletions
diff --git a/ipsilon/providers/openid/auth.py b/ipsilon/providers/openid/auth.py
index da110f7..fba8d10 100755
--- a/ipsilon/providers/openid/auth.py
+++ b/ipsilon/providers/openid/auth.py
@@ -168,7 +168,7 @@ class AuthenticateRequest(ProviderPageBase):
"Trust Root": request.trust_root,
}
userattrs = us.get_user_attrs()
- for n, e in self.cfg.extensions.items():
+ for n, e in self.cfg.extensions.available().items():
data = e.get_display_data(request, userattrs)
self.debug('%s returned %s' % (n, repr(data)))
for key, value in data.items():
@@ -194,7 +194,7 @@ class AuthenticateRequest(ProviderPageBase):
claimed_id=identity_url
)
userattrs = session.get_user_attrs()
- for _, e in self.cfg.extensions.items():
+ for _, e in self.cfg.extensions.available().items():
resp = e.get_response(request, userattrs)
if resp is not None:
response.addExtension(resp)
diff --git a/ipsilon/providers/openid/extensions/common.py b/ipsilon/providers/openid/extensions/common.py
index b75d394..804f695 100755
--- a/ipsilon/providers/openid/extensions/common.py
+++ b/ipsilon/providers/openid/extensions/common.py
@@ -49,13 +49,14 @@ FACILITY = 'openid_extensions'
class LoadExtensions(Log):
- def __init__(self, enabled):
+ def __init__(self):
loader = PluginLoader(LoadExtensions, FACILITY, 'OpenidExtension')
self.plugins = loader.get_plugin_data()
available = self.plugins['available'].keys()
self._debug('Available Extensions: %s' % str(available))
+ def enable(self, enabled):
for item in enabled:
if item not in self.plugins['available']:
self.debug('<%s> not available' % item)
@@ -63,5 +64,8 @@ class LoadExtensions(Log):
self.debug('Enable OpenId extension: %s' % item)
self.plugins['available'][item].enable()
- def get_extensions(self):
- return self.plugins['available']
+ def available(self):
+ available = self.plugins['available']
+ if available is None:
+ available = dict()
+ return available
diff --git a/ipsilon/providers/openid/meta.py b/ipsilon/providers/openid/meta.py
index a04a78c..ea79439 100755
--- a/ipsilon/providers/openid/meta.py
+++ b/ipsilon/providers/openid/meta.py
@@ -42,7 +42,7 @@ class XRDSHandler(MetaHandler):
'http://specs.openid.net/auth/2.0/server',
'http://openid.net/server/1.0',
]
- for _, e in self.cfg.extensions.items():
+ for _, e in self.cfg.extensions.available().items():
types.extend(e.get_type_uris())
return self.reply(types=types,
@@ -65,7 +65,7 @@ class UserXRDSHandler(XRDSHandler):
'http://specs.openid.net/auth/2.0/signon',
'http://openid.net/signon/1.0',
]
- for _, e in self.cfg.extensions.items():
+ for _, e in self.cfg.extensions.available().items():
types.extend(e.get_type_uris())
return self.reply(types=types,