blob: 2bd9ff6fea4536ae23667e5281fef750b1e6117f [file] [log] [blame]
#!/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)
)