#!/usr/bin/perl
use strict;
use CGI;
use MD5;
my $EZproxyStartingPointURL = "";
sub EZproxyURLInit
{
my ($EZproxyServerURL, $secret, $user, $groups) = @_;
my ($packet, $EZproxyTicket);
if ($secret eq "") {
die "EZproxyURLInit secret missing";
}
$packet = '$u' . time();
if ($groups ne "") {
$packet .= '$g' . $groups;
}
$EZproxyTicket = CGI::escape(MD5->hexhash($secret . $user . $packet) .
$packet);
$EZproxyStartingPointURL = $EZproxyServerURL . "/login?user=" .
CGI::escape($user) . "&ticket=" . $EZproxyTicket;
}
sub EZproxyURL
{
my ($url) = @_;
if ($EZproxyStartingPointURL eq "") {
die "EZproxyURLInit must be called before EZproxyURL";
}
return $EZproxyStartingPointURL . "&qurl=" . CGI::escape($url);
}
EZproxyURLInit("http://ezproxy.yourlib.org", "shhh", "someuser");
print "Content-Type: text/html\n\n";
print
"Some Database
\n",
"Other Database
\n";