From e8c8dce4043fa4fb3bb636cab21be77978642002 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 11 Apr 2014 17:24:46 -0400 Subject: [PATCH] Add explicit error for Unknown Providers This way the user will get a slightly more meaningful error message. Signed-off-by: Simo Sorce --- ipsilon/providers/saml2/auth.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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) -- 2.20.1