use strict;
use WWW::Mechanize;
+ use LWP::ConnCache;
use GSSAPI;
use GSSAPI::OID;
use MIME::Base64;
sub parse_token($) {
my ($json) = @_;
+ print $json;
my $ref = decode_json($json);
- return $ref->{'gssweb'}{'token'};
+ return decode_base64($ref->{'gssweb'}{'token'});
}
-
+;
sub token_body($$) {
my ($target_server, $itoken) = @_;
my ($url, $gssname) = @ARGV;
my $www = WWW::Mechanize->new('autocheck' => 0);
+$www->conn_cache(LWP::ConnCache->new);
my $done = 0;
my $response_token = undef;
-unless ($done) {
+ while (!$done) {
$www->post($url, 'Content' => token_body($gssname, $response_token));
my $status = $www->status();
} else {
print "Unexpected response status: $status\n";
print $www->content();
+ $done = 1;
}
}