Add AuthenticatedHandler base class

This commit is contained in:
Stefan Haun 2020-09-28 00:04:51 +02:00
parent ce14b7d6af
commit 4cb417a448

20
app.py
View file

@ -18,6 +18,26 @@ from gitmgr import GitManagerConfiguration, GitManager
startup_timestamp = datetime.now() startup_timestamp = datetime.now()
class AuthenticatedHandler(tornado.web.RequestHandler, metaclass=ABCMeta):
# noinspection PyAttributeOutsideInit
def initialize(self, auth_provider=None):
self.auth_provider = auth_provider
def prepare(self):
if self.auth_provider is None:
return
# check authentication
auth_hdr = "Authentication"
if auth_hdr not in self.request.headers:
raise tornado.web.HTTPError(401, reason="authentication not provided")
tk = self.request.headers[auth_hdr]
if not self.auth_provider.validate_token(tk):
raise tornado.web.HTTPError(403, reason="invalid authentication token provided")
class HealthHandler(tornado.web.RequestHandler, metaclass=ABCMeta): class HealthHandler(tornado.web.RequestHandler, metaclass=ABCMeta):
# noinspection PyAttributeOutsideInit # noinspection PyAttributeOutsideInit
def initialize(self, sources=None): def initialize(self, sources=None):