summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2014-04-11 17:24:46 -0400
committerSimo Sorce <simo@redhat.com>2014-04-11 17:25:53 -0400
commite8c8dce4043fa4fb3bb636cab21be77978642002 (patch)
tree69599d183c69cefd603b3965ddd33c7f46b70a22
parent425edee520f5423031c65c7dd26e985278e4cc05 (diff)
downloadipsilon-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-xipsilon/providers/saml2/auth.py12
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)