From: Simo Sorce Date: Fri, 11 Apr 2014 21:24:46 +0000 (-0400) Subject: Add explicit error for Unknown Providers X-Git-Tag: v0.2.2~38 X-Git-Url: http://git.cascardo.info/?p=cascardo%2Fipsilon.git;a=commitdiff_plain;h=e8c8dce4043fa4fb3bb636cab21be77978642002 Add explicit error for Unknown Providers This way the user will get a slightly more meaningful error message. Signed-off-by: Simo Sorce --- diff --git a/ipsilon/providers/saml2/auth.py b/ipsilon/providers/saml2/auth.py index bac73a5..65d795d 100755 --- a/ipsilon/providers/saml2/auth.py +++ b/ipsilon/providers/saml2/auth.py @@ -42,6 +42,13 @@ class InvalidRequest(ProviderException): self._debug(message) +class UnknownProvider(ProviderException): + + def __init__(self, message): + super(UnknownProvider, self).__init__(message) + self._debug(message) + + class AuthenticateRequest(ProviderPageBase): def __init__(self, *args, **kwargs): @@ -81,7 +88,7 @@ class AuthenticateRequest(ProviderPageBase): msg = 'Invalid SP [%s] (%r [%r])' % (login.remoteProviderId, e, message) - raise InvalidRequest(msg) + raise UnknownProvider(msg) self._debug('SP %s requested authentication' % login.remoteProviderId) @@ -98,6 +105,9 @@ class AuthenticateRequest(ProviderPageBase): except InvalidRequest, e: self._debug(str(e)) raise cherrypy.HTTPError(400, 'Invalid SAML request token') + except UnknownProvider, e: + self._debug(str(e)) + raise cherrypy.HTTPError(400, 'Unknown Service Provider') except Exception, e: # pylint: disable=broad-except self._debug(str(e)) raise cherrypy.HTTPError(500)