source: examples/python_tests/evaluator_rt1/query.py @ 5f551d3

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

1) add more python examples

  • Property mode set to 100755
File size: 2.2 KB
Line 
1#!/usr/bin/env python
2
3"""
4  to test with python
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
16# print "ABAC version %s" % ctxt.version()
17
18keystore=os.environ["keystore"]
19
20ctxt.load_directory(keystore)
21
22isiID=ABAC.ID("ISI_ID.pem")
23isiID.id_load_privkey_file("ISI_private.pem");
24isi=isiID.id_keyid()
25
26uscID=ABAC.ID("USC_ID.pem")
27uscID.id_load_privkey_file("USC_private.pem");
28usc=uscID.id_keyid()
29
30maryannID=ABAC.ID("Maryann_ID.pem")
31maryannID.id_load_privkey_file("Maryann_private.pem");
32maryann=maryannID.id_keyid()
33
34johnID=ABAC.ID("John_ID.pem")
35johnID.id_load_privkey_file("John_private.pem");
36john=johnID.id_keyid()
37
38##########################################################################
39#role=[keyid:USC].role:evaluatorOf([keyid:Maryann])
40#p=[keyid:John]
41param=ABAC.DataTerm(maryannID)
42role = ABAC.Role(usc,"evaluatorOf")
43role.role_add_data_term(param)
44p = ABAC.Role(john)
45print "\n===good============ USC.evaluatorOf(Maryann) <- John"
46out = ctxt.query(role, p)
47for c in out[1]:
48    print "%s <- %s" % (c.head_string(), c.tail_string())
49
50##########################################################################
51#role=[keyid:USC].role:managerOf([keyid:Maryann])
52#p=[keyid:John]
53param=ABAC.DataTerm(maryannID)
54role = ABAC.Role(usc,"managerOf")
55role.role_add_data_term(param)
56p = ABAC.Role(john)
57print "\n===good============ USC.managerOf(Maryann) <- John"
58out = ctxt.query(role, p)
59for c in out[1]:
60    print "%s <- %s" % (c.head_string(), c.tail_string())
61
62##########################################################################
63# role=[keyid:USC].role:employee
64# p=[keyid:John]"
65role = ABAC.Role(usc,"employee")
66p = ABAC.Role(john)
67print "\n===good============  USC.employee <-?- John"
68out = ctxt.query(role,p)
69for c in out[1]:
70    print "%s <- %s" % (c.head_string(), c.tail_string())
71
72
73##########################################################################
74# dump the loaded principals/policies
75#
76out = ctxt.context_principals()
77print "\n...final principal set..."
78for x in out[1]:
79    print "%s " % x.string()
80print "\n"
81out = ctxt.context_credentials()
82print "\n...final policy attribute set..."
83for c in out[1]:
84    print "%s <- %s" % (c.head_string(), c.tail_string())
85print "\n"
86
Note: See TracBrowser for help on using the repository browser.