summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristofer Hallin <kristofer@sunet.se>2022-01-17 16:43:01 +0100
committerKristofer Hallin <kristofer@sunet.se>2022-01-17 16:43:01 +0100
commit55b8d76d1871d55930654ea753b599ee8234ae95 (patch)
tree431f396b26b2c9987e7f9b21d8233e6b0256b74a
parentba4183e8dc5ba23ad3e60f34260f242f4339b19c (diff)
New claims etc.
-rw-r--r--tools/jwt_producer.py30
1 files changed, 21 insertions, 9 deletions
diff --git a/tools/jwt_producer.py b/tools/jwt_producer.py
index 3f8094d..a8f9ded 100644
--- a/tools/jwt_producer.py
+++ b/tools/jwt_producer.py
@@ -1,20 +1,24 @@
+import getopt
import sys
+
import jwt
-import getopt
def usage():
progname = sys.argv[0]
- print(f'{progname} -p <path to public key> -s <path to private key>' +
- '-d <domain>, for example sunet.se>')
+ print(f'Usage: {progname} [-p <path>] [-w <value>] [-r <value>]\n' +
+ ' -p <path to private key>\n' +
+ ' -w <write, comma separated list of domains>\n' +
+ ' -r <read, comma separated list of domains>')
sys.exit(0)
-def create_token(private_key, domain):
+def create_token(private_key, write_domain, read_domain):
payload = {
'type': 'access',
- 'domains': [domain] # We'll just do one domain now
+ 'write': [write_domain],
+ 'read': [read_domain]
}
with open(private_key, "r") as fd:
@@ -24,8 +28,11 @@ def create_token(private_key, domain):
if __name__ == '__main__':
+ read_domain = ''
+ write_domain = ''
+
try:
- opts, args = getopt.getopt(sys.argv[1:], 'p:d:')
+ opts, args = getopt.getopt(sys.argv[1:], 'p:w:r:h')
except getopt.GetoptError:
usage()
@@ -35,11 +42,16 @@ if __name__ == '__main__':
for opt, arg in opts:
if opt == '-p':
private_key = arg
- elif opt == '-d':
- domain = arg
+ elif opt == '-w':
+ write_domain = arg
+ elif opt == '-r':
+ read_domain = arg
+ elif opt == '-h':
+ usage()
else:
usage()
- token = create_token(private_key, domain).decode('utf-8')
+ token = create_token(private_key, write_domain,
+ read_domain).decode('utf-8')
print(f'{token}')