Add AuthenticatedHandler base class
This commit is contained in:
parent
c317949b41
commit
683b4514e6
1 changed files with 20 additions and 0 deletions
20
app.py
20
app.py
|
@ -17,6 +17,26 @@ from auth import AuthProvider
|
||||||
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):
|
def initialize(self):
|
||||||
|
|
Loading…
Reference in a new issue