source: examples/example_scripts/perl/abac_prover.pl @ 02036f4

abac0-leakabac0-meimei-idmei-rt0-nmei_rt0tvf-new-xml
Last change on this file since 02036f4 was 4721618, checked in by Mei <mei@…>, 12 years ago

1) tested out python and perl test scripts along with

abac_chunk_t calls in libabac's abac.hh

  • Property mode set to 100755
File size: 923 bytes
Line 
1#!/usr/bin/perl
2
3use strict;
4use ABAC;
5use Getopt::Long;
6use Data::Dumper;
7$Data::Dumper::Indent = 1;
8
9my ($keystore, $role, $principal);
10GetOptions(
11    'keystore=s'    => \$keystore,
12    'role=s'        => \$role,
13    'principal=s'   => \$principal,
14) || usage();
15
16usage() unless defined $keystore && defined $role && defined $principal;
17
18# code starts here
19
20my $ctx = ABAC::Context->new;
21$ctx->load_directory($keystore);
22
23my ($success, $credentials) = $ctx->query($role, $principal);
24
25if ($success) {
26    print "Success\n";
27}
28
29foreach my $credential (@$credentials) {
30    printf "credential %s <- %s\n",
31        $credential->head->string,
32        $credential->tail->string;
33}
34
35sub usage {
36    print "Usage: $0 \\\n";
37    print "        --keystore <keystore> \\\n";
38    print "        --role <role> --principal <principal> \\\n";
39    print "    loads the keystore and runs the query role <-?- principal\n";
40    exit 1;
41}
Note: See TracBrowser for help on using the repository browser.