diff --git a/kernel_gateway/services/sessions/handlers.py b/kernel_gateway/services/sessions/handlers.py index 0db38ae..b5b81e1 100644 --- a/kernel_gateway/services/sessions/handlers.py +++ b/kernel_gateway/services/sessions/handlers.py @@ -27,6 +27,23 @@ def get(self): else: super(SessionRootHandler, self).get() +class SessionHandler(TokenAuthorizationMixin, + CORSMixin, + JSONErrorsMixin, + notebook_handlers.SessionHandler): + """Extends the notebook session handler with token auth, CORS, and + JSON errors. + """ + def set_default_headers(self): + self.set_header('Content-Type', 'application/json') + self.set_header('Access-Control-Allow-Origin', self.settings['kg_allow_origin']) + self.set_header('Access-Control-Allow-Headers', self.settings['kg_allow_headers']) + self.set_header('Access-Control-Allow-Methods', self.settings['kg_allow_methods']) + + def options(self, **kwargs): + """Method for properly handling CORS pre-flight""" + self.finish() + default_handlers = [] for path, cls in notebook_handlers.default_handlers: if cls.__name__ in globals():