ASNMTAP
view release on metacpan or search on metacpan
lib/ASNMTAP/Asnmtap/Plugins/WebTransact.pm view on Meta::CPAN
if ($rvOpen) {
print HTTPDUMP '<HR>', $request_as_string, "\n";
if ( defined $response_as_content ) {
$response_as_content =~ s/(window.location.href)/\/\/$1/gi;
# RFC 1738 -> [ $\/:;=?@.\-!*'()\w&+,]+
$response_as_content =~ s/(<META\s+HTTP-EQUIV\s*=\s*\"Refresh\"\s+CONTENT\s*=\s*\"\d+;\s*URL\s*=[^"]+\"(?:\s+\/?)?>)/<!--$1-->/img;
# remove password from Basic Authentication URL before putting into database!
$response_as_content =~ s/(http[s]?)\:\/\/(\w+)\:(\w+)\@/$1\:\/\/$2\:********\@/img;
# comment <SCRIPT></SCRIPT>
$response_as_content =~ s/<SCRIPT/<!--<SCRIPT/gi;
$response_as_content =~ s/<\/SCRIPT>/<\/SCRIPT>-->/gi;
# replace <BODY onload="..."> with <BODY>
$response_as_content =~ s/<BODY\s*onload\s*=\s*.*\s*>/<BODY>/gi;
print HTTPDUMP '<HR>', $response_as_content, "\n";
} else {
print HTTPDUMP "<HR><B>Empty response</B>\n";
}
close(HTTPDUMP);
} else {
print ref ($self) .": Cannot open $debugfile to print debug information\n";
}
}
# = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
sub _next_url {
my ($response, $response_as_content) = @_;
# FIXME. Some applications (eg IIS module for SAP R3) have an action field relative to hostname.
# Others (eg ADDS v2) have use a refresh header with relative to hostname/path ..
if ( $response_as_content =~ m#META\s+http-equiv="refresh"\s+content="\d+;\s+url=([^"]+)"# ) {
my $rel_url = $1;
my $base = $response->base;
$base =~ m#(http://.+/).+?$#;
my $url = $1 . $rel_url;
return $url;
} elsif ( $response_as_content =~ m#form name="[^"]+"\s+method="post"\s+action="([^"]+)"#i or $response_as_content =~ m#form\s+method="post"\s+action="([^"]+)"#i ) {
# Attachmate eVWP product doesn't have a form name.
my $rel_url = $1;
my $base = $response->base;
$base =~ m#(http://.+?)/#; # only want hostname
my $url = $1 . $rel_url;
return $url;
} else {
return '';
}
}
# Destructor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
sub DESTROY {
print (ref ($_[0]), "::DESTROY: ()\n") if ( ${$_[0]->{asnmtapInherited}}->getOptionsValue ( 'debug' ) );
rename ( $_[0]->{_KnownError}, $_[0]->{_KnownError} .'-KnownError' ) if ( defined $_[0]->{_KnownError} and ! $_[0]->{_unknownErrors} );
${$_[0]->{asnmtapInherited}}->appendPerformanceData ( "'url timing retries'=". $_[0]->{_timing_tries} .';;;;' );
}
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1;
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
__END__
=head1 NAME
ASNMTAP::Asnmtap::Plugins::WebTransact is a Perl module that provides WebTransact functions used by ASNMTAP-based plugins.
=head1 DESCRIPTION
This module implements a check of a Web Transaction.
A Web transaction is a sequence of web pages, often fill out forms,
that accomplishes an enquiry or an update. Common examples are database
searches and registration activities.
=head1 AUTHOR
Stanley Hopcroft [Stanley.Hopcroft@IPAustralia.Gov.AU]
Alex Peeters [alex.peeters@citap.be]
=head1 COPYRIGHT NOTICE
(c) Copyright 2003-2004 Stanley.Hopcroft@IPAustralia.Gov.AU
ASNMTAP::Asnmtap::Plugins::WebTransact is based on 'Nagios::WebTransact' v0.14.1 & v0.16 from Stanley Hopcroft [Stanley.Hopcroft@IPAustralia.Gov.AU]
=head1 SEE ALSO
ASNMTAP::Asnmtap::Plugins::WebTransact.pod
( run in 0.423 second using v1.01-cache-2.11-cpan-39bf76dae61 )