Mercurial > crates > nonstick
comparison pam-http/test.c @ 15:27730595f1ea
Adding pam-http module
author | Anthony Nowell <anthony@algorithmia.com> |
---|---|
date | Sun, 24 Sep 2017 00:22:29 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
14:51b097c12d3c | 15:27730595f1ea |
---|---|
1 #include <security/pam_appl.h> | |
2 #include <security/pam_misc.h> | |
3 #include <stdio.h> | |
4 | |
5 const struct pam_conv conv = { | |
6 misc_conv, | |
7 NULL | |
8 }; | |
9 | |
10 int main(int argc, char *argv[]) { | |
11 pam_handle_t* pamh = NULL; | |
12 int retval; | |
13 const char* user = "nobody"; | |
14 | |
15 if(argc != 2) { | |
16 printf("Usage: app [username]\n"); | |
17 exit(1); | |
18 } | |
19 | |
20 user = argv[1]; | |
21 | |
22 retval = pam_start("http-auth", user, &conv, &pamh); | |
23 | |
24 // Are the credentials correct? | |
25 if (retval == PAM_SUCCESS) { | |
26 printf("Credentials accepted.\n"); | |
27 retval = pam_authenticate(pamh, 0); | |
28 } | |
29 | |
30 // Can the accound be used at this time? | |
31 if (retval == PAM_SUCCESS) { | |
32 printf("Account is valid.\n"); | |
33 retval = pam_acct_mgmt(pamh, 0); | |
34 } | |
35 | |
36 // Did everything work? | |
37 if (retval == PAM_SUCCESS) { | |
38 printf("Authenticated\n"); | |
39 } else { | |
40 printf("Not Authenticated\n"); | |
41 } | |
42 | |
43 // close PAM (end session) | |
44 if (pam_end(pamh, retval) != PAM_SUCCESS) { | |
45 pamh = NULL; | |
46 printf("check_user: failed to release authenticator\n"); | |
47 exit(1); | |
48 } | |
49 | |
50 return retval == PAM_SUCCESS ? 0 : 1; | |
51 } | |
52 |