Hello, I am using Hoverfly v0.15.0 and want to use middleware to modify some data.
#!/usr/bin/env python
import sys
import json
import logging
import random
import base64
import os
from cryptography.fernet import Fernet
from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
logging.basicConfig(filename='middleware.log', level=logging.DEBUG)
logging.debug('Middleware "modify_request" called')
def main():
payload = sys.stdin.readlines()[0]
logging.debug(payload)
payload_dict = json.loads(payload)
t = payload_dict['data']['pairs'][0]['request']['headers']['Authorization'][0]
if "response" in payload_dict and "body" in payload_dict["response"]:
payload_dict["response"]["body"] = "{'foo': 'baz'}\n"
print(json.dumps(payload_dict))
if __name__ == "__main__":
main()
But if I remove the line t = payload_dict['data']['pairs'][0]['request']['headers']['Authorization'][0] then it works. I am not an expert of Python but I have executed this script from a main (passing me the string) and it worked so I am not sure where it is the problem.
Tank you very much.