raise 500 on failure to identify a user in oauth callback

This commit is contained in:
Min RK
2017-04-21 14:52:23 +02:00
parent 66cb630b86
commit c3a90e0804
2 changed files with 6 additions and 1 deletions

View File

@@ -638,6 +638,8 @@ class HubOAuthCallbackHandler(HubOAuthenticated, RequestHandler):
# TODO: make async (in a Thread?) # TODO: make async (in a Thread?)
token = self.hub_auth.token_for_code(code) token = self.hub_auth.token_for_code(code)
user_model = self.hub_auth.user_for_token(token) user_model = self.hub_auth.user_for_token(token)
if user_model is None:
raise HTTPError(500, "oauth callback failed to identify a user")
app_log.info("Logged-in user %s", user_model) app_log.info("Logged-in user %s", user_model)
self.hub_auth.set_cookie(self, token) self.hub_auth.set_cookie(self, token)
next_url = self.get_argument('next', '') or self.hub_auth.base_url next_url = self.get_argument('next', '') or self.hub_auth.base_url

View File

@@ -5,12 +5,13 @@
# Distributed under the terms of the Modified BSD License. # Distributed under the terms of the Modified BSD License.
import os import os
from textwrap import dedent
from urllib.parse import urlparse from urllib.parse import urlparse
from jinja2 import ChoiceLoader, FunctionLoader from jinja2 import ChoiceLoader, FunctionLoader
from tornado import ioloop from tornado import ioloop
from textwrap import dedent from tornado.web import HTTPError
try: try:
import notebook import notebook
@@ -119,6 +120,8 @@ class OAuthCallbackHandler(HubOAuthCallbackHandler, IPythonHandler):
# TODO: make async (in a Thread?) # TODO: make async (in a Thread?)
token = self.hub_auth.token_for_code(code) token = self.hub_auth.token_for_code(code)
user_model = self.hub_auth.user_for_token(token) user_model = self.hub_auth.user_for_token(token)
if user_model is None:
raise HTTPError(500, "oauth callback failed to identify a user")
self.log.info("Logged-in user %s", user_model) self.log.info("Logged-in user %s", user_model)
self.hub_auth.set_cookie(self, token) self.hub_auth.set_cookie(self, token)
next_url = self.get_argument('next', '') or self.base_url next_url = self.get_argument('next', '') or self.base_url