source: examples/python_tests/experiment_create_rt0/query.py @ 669b481

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

1) add more python examples

  • Property mode set to 100755
File size: 2.1 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
22acmeID=ABAC.ID("Acme_ID.pem");
23acmeID.id_load_privkey_file("Acme_private.pem");
24acme=acmeID.id_keyid()
25
26bobID=ABAC.ID("Bob_ID.pem");
27bobID.id_load_privkey_file("Bob_private.pem");
28bob=bobID.id_keyid()
29
30aliceID=ABAC.ID("Alice_ID.pem");
31aliceID.id_load_privkey_file("Alice_private.pem");
32alice=aliceID.id_keyid()
33
34globotronID=ABAC.ID("Globotron_ID.pem");
35globotronID.id_load_privkey_file("Globotron_private.pem");
36globotron=globotronID.id_keyid()
37
38##########################################################################
39# role=[keyid:Globotron].role:admin
40# p=[keyid:Alice]
41role = ABAC.Role(globotron,"admin")
42p = ABAC.Role(alice)
43print "\n===good=============== Globotron.admin <- Alice"
44out = ctxt.query(role, p)
45for c in out[1]:
46    print "%s <- %s" % (c.head_string(), c.tail_string())
47
48##########################################################################
49# role=[keyid:Globotron].role:admin
50# p=[keyid:Bob]
51role = ABAC.Role(globotron,"admin")
52p = ABAC.Role(bob)
53print "\n===bad=============== Globotron.admin <- Bob"
54out = ctxt.query(role, p)
55for c in out[1]:
56    print "%s <- %s" % (c.head_string(), c.tail_string())
57
58
59##########################################################################
60# role=[keyid:Acme].role:experiment_create
61# p=[keyid:Bob]
62role = ABAC.Role(acme,"experiment_create")
63p = ABAC.Role(bob)
64print "\n===good=============== Acme.experiment_create <- Bob"
65out = ctxt.query(role, p)
66for c in out[1]:
67    print "%s <- %s" % (c.head_string(), c.tail_string())
68
69
70##########################################################################
71# dump the loaded principals/policies
72#
73out = ctxt.context_principals()
74print "\n...final principal set..."
75for x in out[1]:
76    print "%s " % x.string()
77print "\n"
78out = ctxt.context_credentials()
79print "\n...final policy attribute set..."
80for c in out[1]:
81    print "%s <- %s" % (c.head_string(), c.tail_string())
82print "\n"
83
84
Note: See TracBrowser for help on using the repository browser.