source: examples/python_tests/acme_friend_rt1/query.py @ 7211a95

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

1) add more python examples
2) add the missing linking role and linking oset api calls
3) fix the output of time typed data term/oset obj in typed_string format

(transform back from yap time format to our ddddddddTdddddd format

  • Property mode set to 100755
File size: 2.8 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
26coyoteID=ABAC.ID("Coyote_ID.pem")
27coyoteID.id_load_privkey_file("Coyote_private.pem");
28coyote=coyoteID.id_keyid()
29
30roadrunnerID=ABAC.ID("Roadrunner_ID.pem")
31roadrunnerID.id_load_privkey_file("Roadrunner_private.pem");
32roadrunner=roadrunnerID.id_keyid()
33
34jackrabbitID=ABAC.ID("Jackrabbit_ID.pem")
35jackrabbitID.id_load_privkey_file("Jackrabbit_private.pem");
36jackrabbit=jackrabbitID.id_keyid()
37
38##########################################################################
39# role =[keyid:Acme].role:friendof([keyid:Roadrunner])
40# p= [keyid:Coyote]
41param=ABAC.DataTerm(roadrunnerID)
42role = ABAC.Role(acme,"friendof")
43role.role_add_data_term(param)
44p = ABAC.Role(coyote)
45print "\n===bad============ Acme.friendOf(Roadrunner) <- Coyote"
46out = ctxt.query(role, p)
47
48for c in out[1]:
49    print "%s <- %s" % (c.head_string(), c.tail_string())
50
51##########################################################################
52# role =[keyid:Acme].role:friendof([keyid:Roadrunner])
53# p= [keyid:Jackrabbit]
54param=ABAC.DataTerm(roadrunnerID)
55role = ABAC.Role(acme,"friendof")
56role.role_add_data_term(param)
57p = ABAC.Role(jackrabbit)
58print "\n===good============ Acme.friendOf(Roadrunner) <- Jackrabbit"
59out = ctxt.query(role, p)
60
61for c in out[1]:
62    print "%s <- %s" % (c.head_string(), c.tail_string())
63
64
65##########################################################################
66# role =[keyid:Acme].role:preferred_customer
67# p =[keyid:Jackrabbit]
68role = ABAC.Role(acme,"preferred_customer")
69p = ABAC.Role(jackrabbit)
70print "\n===good============ Acme.preferred_customer <- Jackrabbit"
71out = ctxt.query(role, p)
72
73for c in out[1]:
74    print "%s <- %s" % (c.head_string(), c.tail_string())
75
76##########################################################################
77# role =[keyid:Acme].role:preferred_customer
78# p =[keyid:Coyote]
79role = ABAC.Role(acme,"preferred_customer")
80p = ABAC.Role(coyote)
81print "\n===good============ Acme.preferred_customer <- Coyote"
82out = ctxt.query(role, p)
83
84for c in out[1]:
85    print "%s <- %s" % (c.head_string(), c.tail_string())
86
87
88
89##########################################################################
90# dump the loaded principals/policies
91#
92out = ctxt.context_principals()
93print "\n...final principal set..."
94for x in out[1]:
95    print "%s " % x.string()
96print "\n"
97out = ctxt.context_credentials()
98print "\n...final policy attribute set..."
99for c in out[1]:
100    print "%s <- %s" % (c.head_string(), c.tail_string())
101print "\n"
Note: See TracBrowser for help on using the repository browser.