mirror of
https://github.com/norohind/FDEV-CAPI-Handler.git
synced 2025-06-07 19:03:21 +03:00
web: fix secret check, add ListTokens, RandomToken
This commit is contained in:
parent
2719d804eb
commit
317dff9e3b
20
web.py
20
web.py
@ -12,7 +12,8 @@ logger.propagate = False
|
|||||||
|
|
||||||
def check_secret(req: falcon.request.Request, resp: falcon.response.Response, resource, params) -> None:
|
def check_secret(req: falcon.request.Request, resp: falcon.response.Response, resource, params) -> None:
|
||||||
cookies_secret = req.get_cookie_values('key')
|
cookies_secret = req.get_cookie_values('key')
|
||||||
if cookies_secret[0] != config.access_key:
|
|
||||||
|
if cookies_secret is None or cookies_secret[0] != config.access_key:
|
||||||
raise falcon.HTTPForbidden
|
raise falcon.HTTPForbidden
|
||||||
|
|
||||||
|
|
||||||
@ -83,12 +84,29 @@ class CleanOrphanRecords:
|
|||||||
capi_authorizer.cleanup_orphans()
|
capi_authorizer.cleanup_orphans()
|
||||||
|
|
||||||
|
|
||||||
|
class ListTokens:
|
||||||
|
@falcon.before(check_secret)
|
||||||
|
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response):
|
||||||
|
resp.content_type = falcon.MEDIA_JSON
|
||||||
|
resp.text = json.dumps(capi_authorizer.list_all_users())
|
||||||
|
|
||||||
|
|
||||||
|
class RandomToken:
|
||||||
|
# for legacy reasons
|
||||||
|
@falcon.before(check_secret)
|
||||||
|
def on_get(self, req: falcon.request.Request, resp: falcon.response.Response):
|
||||||
|
import random
|
||||||
|
random_state = random.choice(capi_authorizer.list_all_users())
|
||||||
|
|
||||||
|
|
||||||
application = falcon.App()
|
application = falcon.App()
|
||||||
application.add_route('/authorize', AuthInit())
|
application.add_route('/authorize', AuthInit())
|
||||||
application.add_route('/fdev-redirect', FDEVCallback())
|
application.add_route('/fdev-redirect', FDEVCallback())
|
||||||
application.add_route('/users/{state}', TokenByState()) # for legacy reasons
|
application.add_route('/users/{state}', TokenByState()) # for legacy reasons
|
||||||
|
application.add_route('/random_token', RandomToken()) # for legacy reasons, subject to decommissioning
|
||||||
application.add_route('/users/by-state/{state}', TokenByState())
|
application.add_route('/users/by-state/{state}', TokenByState())
|
||||||
application.add_route('/users/by-nickname/{nickname}', TokenByNickname())
|
application.add_route('/users/by-nickname/{nickname}', TokenByNickname())
|
||||||
|
application.add_route('/users', ListTokens())
|
||||||
application.add_route('/tools/clean-orphan-records', CleanOrphanRecords())
|
application.add_route('/tools/clean-orphan-records', CleanOrphanRecords())
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
x
Reference in New Issue
Block a user