#!/usr/bin/env python3 import os import sys from tokenSigningFilePath import token_signing_filepath file = __file__.split(':/cygwin')[-1] http_root = os.path.dirname(os.path.dirname(os.path.abspath(os.path.dirname(file)))) sys.path.insert(0, http_root) token_signing_file = open('{}.tmp'.format(token_signing_filepath), 'a') cookies_found = False is_last_request = False is_wrong_content_type = False is_null_content = False request_method = os.environ.get('REQUEST_METHOD', None) host = os.environ.get('HTTP_HOST', None) cookie = os.environ.get('HTTP_COOKIE', None) content_type = os.environ.get('CONTENT_TYPE', None) uri = os.environ.get('REQUEST_URI', None) if request_method: token_signing_file.write('REQUEST_METHOD: {}\n'.format(request_method)) if host: token_signing_file.write('HTTP_HOST: {}\n'.format(host)) if cookie: token_signing_file.write('Cookies in token signing request: {}\n'.format(cookie)) cookies_found = True if content_type: token_signing_file.write('Content type: {}\n'.format(content_type)) if uri: position_of_dummy = uri.find('?dummy=') if position_of_dummy == -1: output_url = uri else: output_url = uri[0:position_of_dummy] token_signing_file.write('REQUEST_URI: {}\n'.format(output_url)) position_of_dummy = uri.find('&last=') if position_of_dummy != -1: is_last_request = True position_of_dummy = uri.find('&wrongContentType=') if position_of_dummy != -1: is_wrong_content_type = True position_of_dummy = uri.find('&nullContent=') if position_of_dummy != -1: is_null_content = True if not cookies_found: token_signing_file.write('No cookies in token signing request.\n') request_body = ''.join(sys.stdin.readlines()) token_signing_file.write('Request body:\n{}\n'.format(request_body)) token_signing_file.close() if is_last_request: if os.path.isfile('{}.tmp'.format(token_signing_filepath)): os.rename('{}.tmp'.format(token_signing_filepath), token_signing_filepath) content_type = 'application/json' if is_wrong_content_type: content_type = 'text/html' content = '{"token_public_key": "ABCD", "unlinkable_token": "ABCD"}' if is_null_content: content = '' sys.stdout.write( 'status: 201\r\n' 'Set-Cookie: cookieSetInTokenSigningResponse=1; path=/\r\n' 'Content-Type: {}\r\n\r\n' '{}'.format(content_type, content) )