from ipsilon.providers.common import ProviderException
from ipsilon.tools.saml2metadata import SAML2_NAMEID_MAP
-import cherrypy
+from ipsilon.util.log import Log
import lasso
class NameIdNotAllowed(Exception):
- def __init__(self):
- message = 'The specified Name ID is not allowed'
+ def __init__(self, nid):
+ message = 'Name ID [%s] is not allowed' % nid
super(NameIdNotAllowed, self).__init__(message)
self.message = message
return repr(self.message)
-class ServiceProvider(object):
+class ServiceProvider(Log):
def __init__(self, config, provider_id):
self.cfg = config
idval = data.keys()[0]
self.cfg.del_datum(idval)
- def _debug(self, fact):
- if cherrypy.config.get('debug', False):
- cherrypy.log(fact)
-
def normalize_username(self, username):
if 'strip domain' in self._properties:
return username.split('@', 1)[0]
return username
+ def is_valid_nameid(self, value):
+ if value in SAML2_NAMEID_MAP:
+ return True
+ return False
+
+ def valid_nameids(self):
+ return SAML2_NAMEID_MAP.keys()
+
class ServiceProviderCreator(object):
return ServiceProvider(self.cfg, spid)
-class IdentityProvider(object):
+class IdentityProvider(Log):
def __init__(self, config):
self.server = lasso.Server(config.idp_metadata_file,
config.idp_key_file,
def get_providers(self):
return self.server.get_providers()
-
- def _debug(self, fact):
- if cherrypy.config.get('debug', False):
- cherrypy.log(fact)