source: examples/python_tests/alumni2_rt1/query.py @ a0c1772

mei_rt2mei_rt2_fix_1
Last change on this file since a0c1772 was f824a9e, checked in by Mei <mei@…>, 12 years ago

1) add more doc to python_tests

  • Property mode set to 100755
File size: 2.5 KB
RevLine 
[5f551d3]1#!/usr/bin/env python
2
3"""
[f824a9e]4Run the queries described in README
[5f551d3]5
6cmd1:env keystore=`pwd` ./query.py
7cmd2: env ABAC_CN=1 keystore=`pwd` ./query.py
8
9"""
10
11import os
12import ABAC
13
14ctxt = ABAC.Context()
15
[f824a9e]16# Keystore is the directory containing the principal credentials.
17# Load existing principals and/or policy credentials
18if (os.environ.has_key("keystore")) :
19    keystore=os.environ["keystore"]
20    ctxt.load_directory(keystore)
21else:
22    print("keystore is not set...")
23    exit(1)
[5f551d3]24
[f824a9e]25# retrieve principals' keyid value from local credential files
[5f551d3]26stateUID=ABAC.ID("StateU_ID.pem")
27stateUID.id_load_privkey_file("StateU_private.pem")
28stateU=stateUID.id_keyid()
29
30bobID=ABAC.ID("Bob_ID.pem")
31bobID.id_load_privkey_file("Bob_private.pem")
32bob=bobID.id_keyid()
33
34joeID=ABAC.ID("Joe_ID.pem")
35joeID.id_load_privkey_file("Joe_private.pem")
36joe=joeID.id_keyid()
37
38maryannID=ABAC.ID("Maryann_ID.pem")
39maryannID.id_load_privkey_file("Maryann_private.pem")
40maryann=maryannID.id_keyid()
41
42##########################################################################
[f824a9e]43# dump the loaded principals/policies
44#
45out = ctxt.context_principals()
46print "\n...final principal set..."
47for x in out[1]:
48    print "%s " % x.string()
49out = ctxt.context_credentials()
50print "\n...final policy attribute set..."
51for c in out[1]:
52    print "%s <- %s" % (c.head_string(), c.tail_string())
53
54##########################################################################
55# is bob a founding alumni of stateU ?
[5f551d3]56# role=[keyid:stateU].role:foundingAlumni
57# p=[keyid:Bob]
58role = ABAC.Role(stateU,"foundingAlumni")
59p = ABAC.Role(bob)
60print "\n===good============ stateU.foundingAlumni <- Bob"
61out = ctxt.query(role, p)
62for c in out[1]:
63    print "%s <- %s" % (c.head_string(), c.tail_string())
64
65##########################################################################
[f824a9e]66# is maryann a founding alumni of stateU ?
[5f551d3]67# role=[keyid:stateU].role:foundingAlumni
68# p=[keyid:Maryann]
69role = ABAC.Role(stateU,"foundingAlumni")
70p = ABAC.Role(maryann)
71print "\n===bad============ stateU.foundingAlumni <- Maryann"
72out = ctxt.query(role, p)
73for c in out[1]:
74    print "%s <- %s" % (c.head_string(), c.tail_string())
75
76##########################################################################
[f824a9e]77# is joe a founding alumni of stateU ?
[5f551d3]78# role=[keyid:stateU].role:foundingAlumni
79# p=[keyid:Joe]
80role = ABAC.Role(stateU,"foundingAlumni")
81p = ABAC.Role(joe)
82print "\n===bad============ stateU.foundingAlumni <- Joe"
83out = ctxt.query(role, p)
84for c in out[1]:
85    print "%s <- %s" % (c.head_string(), c.tail_string())
Note: See TracBrowser for help on using the repository browser.