forked from xapi-project/xen-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
testauthx.ml
119 lines (96 loc) · 4.66 KB
/
testauthx.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
(*
* Copyright (C) 2006-2009 Citrix Systems Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published
* by the Free Software Foundation; version 2.1 only. with the special
* exception on linking described in file LICENSE.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*)
open Auth_signature
open Authx
let usage() =
print_endline "Usage:";
Printf.printf "%s <username> <password>\n" Sys.argv.(0);
exit 1
let _ =
if Array.length Sys.argv <> 3 then usage ();
let username = Sys.argv.(1)
and password = Sys.argv.(2) in
let hr x = print_endline ("-----------------------------\n"^x) in
(* should return 2037 *)
hr ("TEST 1a. Authx.get_subject_identifier "^username);
let userid = AuthX.methods.get_subject_identifier username in
print_endline ("userid="^userid);
hr ("TEST 1b. AuthX.methods.get_subject_identifier "^username^"_werq (unknown subject)");
try
print_endline (AuthX.methods.get_subject_identifier (username^"_werq"));
with Not_found -> print_endline "subject Not_found, as expected";
(* should return a list of groups that subjectid 1000 (a user) belongs to *)
hr ("TEST 2a. AuthX.methods.query_group_membership "^userid^" (a user subject)");
let conc x y = (x^","^y) in
let groupid_list = AuthX.methods.query_group_membership userid in
print_endline (List.fold_left (conc) "" groupid_list);
(* should return a list of groups that subjectid 10024 (a group) belongs to *)
let agroup = List.hd groupid_list in
hr ("TEST 2b. AuthX.methods.query_group_membership "^agroup^" (a group subject)");
print_endline (List.fold_left (conc) "" (AuthX.methods.query_group_membership agroup));
hr "TEST 2c. AuthX.methods.query_group_membership u999 (unknown subject)";
try
print_endline (List.fold_left (conc) "" (AuthX.methods.query_group_membership "u999"));
with Not_found -> print_endline "subject Not_found, as expected.";
hr "TEST 2d. AuthX.methods.query_group_membership a999 (unknown subject)";
try
print_endline (List.fold_left (conc) "" (AuthX.methods.query_group_membership "a999"));
with Not_found -> print_endline "subject Not_found, as expected.";
hr "TEST 2e. AuthX.methods.query_group_membership 999 (unknown subject)";
try
print_endline (List.fold_left (conc) "" (AuthX.methods.query_group_membership "999"));
with Not_found -> print_endline "subject Not_found, as expected.";
(* should return a list with information about subject_id 1000 (a user)*)
hr ("TEST 3a. AuthX.methods.query_subject_information "^userid^" (a user)");
let infolist1 = AuthX.methods.query_subject_information userid in
for i=0 to (List.length infolist1)-1 do
let print_elems (e1,e2) = print_endline (e1^": "^e2) in
print_elems (List.nth infolist1 i)
done;
(* should return a list with information about subject_id 10024 (a group)*)
hr ("TEST 3b. AuthX.methods.query_subject_information "^agroup^" (a group)");
let infolist1 = AuthX.methods.query_subject_information agroup in
for i=0 to (List.length infolist1)-1 do
let print_elems (e1,e2) = print_endline (e1^": "^e2) in
print_elems (List.nth infolist1 i)
done;
(* should return an error not_found *)
hr "TEST 3c. AuthX.methods.query_subject_information u999 (unknown subject)";
try
let infolist1 = AuthX.methods.query_subject_information "u999" in
for i=0 to (List.length infolist1)-1 do
let print_elems (e1,e2) = print_endline (e1^": "^e2) in
print_elems (List.nth infolist1 i)
done;
with Not_found -> print_endline "subject Not_found, as expected.";
(* should return an error not_found *)
hr "TEST 3d. AuthX.methods.query_subject_information a999 (unknown subject)";
try
let infolist1 = AuthX.methods.query_subject_information "a999" in
for i=0 to (List.length infolist1)-1 do
let print_elems (e1,e2) = print_endline (e1^": "^e2) in
print_elems (List.nth infolist1 i)
done;
with Not_found -> print_endline "subject Not_found, as expected.";
(* should return an error not_found *)
hr "TEST 3e. AuthX.methods.query_subject_information 999 (unknown subject)";
try
let infolist1 = AuthX.methods.query_subject_information "999" in
for i=0 to (List.length infolist1)-1 do
let print_elems (e1,e2) = print_endline (e1^": "^e2) in
print_elems (List.nth infolist1 i)
done;
with Not_found -> print_endline "subject Not_found, as expected.";
hr ("TEST 4. AuthX.methods.authenticate_username_password "^username);
print_endline (AuthX.methods.authenticate_username_password username password);