/
alt3rmann
/
graphql-engine
Обзор
Документация
Войти
/
alt3rmann
/
graphql-engine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
server/tests-py/auth_webhook_server.py
57 строк
2 KB
Samir Talwar
server/tests-py: Generate random ports for helper services.
21 окт 2022, 20:34
21 окт 2022, 20:34
133a9b7
Код
Авторство
О чём код?
""" Sample auth webhook to receive a cookie and respond """ from http import HTTPStatus from context import ThreadedHTTPServer from webserver import MkHandlers, RequestHandler, Response class CookieAuth(RequestHandler): def get(self, request): print('auth GET request') headers = {k.lower(): v for k, v in request.headers.items()} print(headers) cookieHdrs = [] if 'cookie' in headers and headers['cookie']: res = {'x-hasura-role': 'admin'} for k, v in headers.items(): if 'response-set-cookie' in k: hdr = ('Set-Cookie', v) cookieHdrs.append(hdr) print('auth response: OK') return Response(HTTPStatus.OK, res, cookieHdrs) print('auth response: Unauthorized') return Response(HTTPStatus.UNAUTHORIZED) def post(self, request): print('auth POST request') headers = {k.lower(): v for k, v in request.json['headers'].items()} cookieHdrs = [] if 'cookie' in headers and headers['cookie']: res = {'x-hasura-role': 'admin'} for k, v in headers.items(): if 'response-set-cookie' in k: hdr = ('Set-Cookie', v) cookieHdrs.append(hdr) print('auth response: OK') return Response(HTTPStatus.OK, res, headers) print('auth response: Unauthorized') return Response(HTTPStatus.UNAUTHORIZED) handlers = MkHandlers({ '/auth': CookieAuth, }) def create_server(server_address): return ThreadedHTTPServer(server_address, handlers) def stop_server(server): server.shutdown() server.server_close()