source: examples/python_tests/file_read_rt2/query.py @ 47d5cf9

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

1) add more python examples

  • Property mode set to 100755
File size: 1.9 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
22alphaID=ABAC.ID("Alpha_ID.pem")
23alphaID.id_load_privkey_file("Alpha_private.pem");
24alpha=alphaID.id_keyid()
25
26bobID=ABAC.ID("Bob_ID.pem")
27bobID.id_load_privkey_file("Bob_private.pem");
28bob=bobID.id_keyid()
29
30maryannID=ABAC.ID("Maryann_ID.pem")
31maryannID.id_load_privkey_file("Maryann_private.pem")
32maryann=maryannID.id_keyid()
33
34joeID=ABAC.ID("Joe_ID.pem")
35joeID.id_load_privkey_file("Joe_private.pem")
36joe=joeID.id_keyid()
37
38##########################################################################
39# role=[keyid:Alpha].role:read([urn:'file://fileA'])
40# p=[keyid:Bob]
41param=ABAC.DataTerm("urn", "'file://fileA'")
42role = ABAC.Role(alpha,"read")
43role.role_add_data_term(param)
44p=ABAC.Role(bob)
45print "\n===good============ alpha.read(fileA) <- Bob"
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:Alpha].role:read([urn:'file://fileA'])
52# p=[keyid:Maryann]
53param=ABAC.DataTerm("urn", "'file://fileA'")
54role = ABAC.Role(alpha,"read")
55p=ABAC.Role(maryann)
56print "\n===bad============ alpha.read(fileA) <- Maryann"
57out = ctxt.query(role, p)
58for c in out[1]:
59    print "%s <- %s" % (c.head_string(), c.tail_string())
60
61
62##########################################################################
63# dump the loaded principals/policies
64#
65out = ctxt.context_principals()
66print "\n...final principal set..."
67for x in out[1]:
68    print "%s " % x.string()
69print "\n"
70out = ctxt.context_credentials()
71print "\n...final policy attribute set..."
72for c in out[1]:
73    print "%s <- %s" % (c.head_string(), c.tail_string())
74print "\n"
75
Note: See TracBrowser for help on using the repository browser.