diff options
author | Simo Sorce <simo@redhat.com> | 2014-04-11 17:24:46 -0400 |
---|---|---|
committer | Simo Sorce <simo@redhat.com> | 2014-04-11 17:25:53 -0400 |
commit | e8c8dce4043fa4fb3bb636cab21be77978642002 (patch) | |
tree | 69599d183c69cefd603b3965ddd33c7f46b70a22 | |
parent | 425edee520f5423031c65c7dd26e985278e4cc05 (diff) | |
download | ipsilon-e8c8dce4043fa4fb3bb636cab21be77978642002.tar.gz ipsilon-e8c8dce4043fa4fb3bb636cab21be77978642002.tar.xz ipsilon-e8c8dce4043fa4fb3bb636cab21be77978642002.zip |
Add explicit error for Unknown Providers
This way the user will get a slightly more meaningful error message.
Signed-off-by: Simo Sorce <simo@redhat.com>
-rwxr-xr-x | ipsilon/providers/saml2/auth.py | 12 |
1 files changed, 11 insertions, 1 deletions
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) |