source:
examples/example_scripts/perl/abac_prover.pl
@
c6d5da3
Last change on this file since c6d5da3 was bea18ef, checked in by , 12 years ago | |
---|---|
|
|
File size: 921 bytes |
Rev | Line | |
---|---|---|
[bea18ef] | 1 | #!/usr/bin/perl |
2 | ||
3 | use strict; | |
4 | use ABAC; | |
5 | use Getopt::Long; | |
6 | use Data::Dumper; | |
7 | $Data::Dumper::Indent = 1; | |
8 | ||
9 | my ($keystore, $role, $principal); | |
10 | GetOptions( | |
11 | 'keystore=s' => \$keystore, | |
12 | 'role=s' => \$role, | |
13 | 'principal=s' => \$principal, | |
14 | ) || usage(); | |
15 | ||
16 | usage() unless defined $keystore && defined $role && defined $principal; | |
17 | ||
18 | # code starts here | |
19 | ||
20 | my $ctx = ABAC::Context->new; | |
21 | $ctx->load_directory($keystore); | |
22 | ||
23 | my ($success, $credentials) = $ctx->query($role, $principal); | |
24 | ||
25 | if ($success) { | |
26 | print "Success\n"; | |
27 | } | |
28 | ||
29 | foreach my $credential (@$credentials) { | |
30 | printf "credential %s <- %s\n", | |
31 | $credential->head_string, | |
32 | $credential->tail_string; | |
33 | } | |
34 | ||
35 | sub 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.