From 0860c6988bb1ebbaadea31245a9f0f609c80ca8e Mon Sep 17 00:00:00 2001 From: Kristofer Hallin Date: Fri, 29 Oct 2021 14:00:29 +0200 Subject: Simple tool which will produce JWT tokens for testing. --- tools/jwt_producer.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 tools/jwt_producer.py (limited to 'tools/jwt_producer.py') diff --git a/tools/jwt_producer.py b/tools/jwt_producer.py new file mode 100644 index 0000000..3f8094d --- /dev/null +++ b/tools/jwt_producer.py @@ -0,0 +1,45 @@ +import sys +import jwt +import getopt + + +def usage(): + progname = sys.argv[0] + + print(f'{progname} -p -s ' + + '-d , for example sunet.se>') + sys.exit(0) + + +def create_token(private_key, domain): + payload = { + 'type': 'access', + 'domains': [domain] # We'll just do one domain now + } + + with open(private_key, "r") as fd: + key = fd.read() + + return jwt.encode(payload=payload, algorithm='ES256', key=key) + + +if __name__ == '__main__': + try: + opts, args = getopt.getopt(sys.argv[1:], 'p:d:') + except getopt.GetoptError: + usage() + + if len(sys.argv) != 5: + usage() + + for opt, arg in opts: + if opt == '-p': + private_key = arg + elif opt == '-d': + domain = arg + else: + usage() + + token = create_token(private_key, domain).decode('utf-8') + + print(f'{token}') -- cgit v1.1