chiark / gitweb /
wip
[cgi-auth-flexible.git] / test.cgi
1 #!/usr/bin/perl -w
2
3 use strict;
4 use warnings;
5 use CGI qw/escapeHTML/;;
6 use CGI::Auth::Flexible;
7 use URI;
8 use Data::Dumper;
9
10 #use Carp::Always;
11 $SIG{__DIE__} = sub { Carp::confess(@_) };
12
13 my $dump = "$ENV{'CAHTEST_HOME'}/dump";
14
15 my $verifier = CGI::Auth::Flexible->new_verifier(
16     username_password_ok => sub { my ($c,$r,$u,$p)=@_; return $p eq 'sesame'; },
17     encrypted_only => 0,
18     promise_check_mutate => 1,
19     dir => $dump,
20 );
21
22 END { $verifier->disconnect() if $verifier; }
23
24 my $q = CGI->new;
25
26 my $authreq = $verifier->new_request($q);
27
28 $authreq->check_ok() or exit;
29
30 my $cookie = $authreq->secret_cookie();
31 my $url = $q->url();
32 my $hiddenhtml = $authreq->secret_hidden_html();
33
34 print <<END;
35 Content-Type: text/html
36 Set-Cookie: $cookie
37
38 <html><head><title>TITLE</title></head>
39 <body><h1>H1</h1>
40 <h1>again</h1>
41
42 <h1>info<h1>
43 <pre>
44 END
45
46 my %vars = $q->Vars();
47 delete $vars{caf_assochash};
48
49 my $txt = Data::Dumper->Dump([$authreq->get_username(), $authreq->mutate_ok(),
50                               $q->path_info(), \%vars],
51                              [qw(username mutate_ok path params)]);
52 foreach my $l (split /\n/, $txt) {
53     print escapeHTML($l),"\n";
54 }
55
56 print <<END;
57 </pre>
58 <form method="POST" action="$url">
59 $hiddenhtml
60 <input type="submit" name="test_cgi_sponges" value="Make sponges">
61 <input type="submit" name="test_cgi_worms" value="Make worms">
62 <input type="submit" name="caf_logout" value="Logout">
63 </form>
64 <form method="POST" action="$url/extra">
65 $hiddenhtml
66 <input type="submit" name="test_cgi_append" value="Append">
67 </form>
68 END