source: swig/python/abac_prover.py

Last change on this file was 605ee1d, checked in by Mike Ryan <mikeryan@…>, 12 years ago

be clear when a proof has failed

  • Property mode set to 100755
File size: 1.1 KB
RevLine 
[06e2fc5]1#!/usr/bin/python
2
[7af34ed]3import getopt
[06e2fc5]4import sys
5from ABAC import *
6import pprint
7
[7af34ed]8def usage():
9    print "Usage: abac_prover.py \\"
10    print "        --keystore <keystore> \\"
11    print "        --role <role> --principal"
12    print "    loads the keystore and runs the query role <-?- principal"
13    sys.exit(1)
14
[06e2fc5]15pp = pprint.PrettyPrinter(indent=4)
16
[7af34ed]17keystore = ''
18role = ''
19principal = ''
20
21try:
22    opts, args = getopt.getopt(sys.argv[1:], '', ['keystore=', 'role=', 'principal='])
23except getopt.GetoptError, err:
24    print str(err)
25    sys.exit(1)
26
27for o, a in opts:
28    if o == '--keystore':
29        keystore = a
30    elif o == '--role':
31        role = a
32    elif o == '--principal':
33        principal = a
34    else:
35        assert False, "WAT"
[06e2fc5]36
[7af34ed]37if keystore == '' or role == '' or principal == '':
38    usage()
39
40# code begins here! sorry about that
[06e2fc5]41
42ctx = Context()
43ctx.load_directory(keystore)
44
[7af34ed]45(success, credentials) = ctx.query(role, principal)
46
47if success:
48    print "success"
[605ee1d]49else:
50    print "fail, here's a partial proof"
[06e2fc5]51
52for credential in credentials:
53    print "credential %s <- %s" % (credential.head().string(), credential.tail().string())
54    # pp.pprint(credential)
Note: See TracBrowser for help on using the repository browser.