Apache-OWA
view release on metacpan or search on metacpan
package Apache::OWA;
use strict;
use Apache::DBI;
use DBI;
use Apache::Constants qw(OK NOT_FOUND SERVER_ERROR AUTH_REQUIRED);
use Apache::Request ();
use Data::Dumper;
use vars qw($VERSION %owa_mapping %owa_version);
my $DEBUG = 0;
$VERSION = '0.7';
my (@dbinfo, $sth, $sql, $r, $dbh, @pass_vars);
# i like to buffer and then flush... YMMV.
#local $| = 1;
###################################################################
sub auth_handler ($) {
$r = Apache::Request->new( shift );
($DEBUG) = $r->dir_config('DEBUG');
$r->warn('Apache::OWA::auth_handler start.') if ($DEBUG > 1);
my ($sent_pw, $user, $db);
# get username & password
(my $res, $sent_pw) = $r->get_basic_auth_pw;
return $res if $res != OK;
$user = $r->connection->user;
# need both username & password
unless ( $user && $sent_pw) {
$r->note_basic_auth_failure;
$r->warn('Apache::OWA::auth_handler exit(AUTH_REQUIRED)') if ($DEBUG > 1);
return AUTH_REQUIRED;
}
# get configuration
if ($r->dir_config('DB_AUTH')) {
$r->dir_config('DB') ?
$db = $r->dir_config('DB') :
$db = $ENV{'ORACLE_SID'};
@dbinfo = ($db,$user,$sent_pw);
}
elsif ( $r->dir_config('DB_PROC_AUTH') ) {
@dbinfo = split(/:/,$r->dir_config('DAD'));
}
# don't authenticate sub-requests
if ( $r->is_main() ) {
if ( $r->dir_config('DB_AUTH') ) {
$dbh = DBI->connect("dbi:Oracle:$dbinfo[0]",$dbinfo[1],$dbinfo[2],
{ PrintError => 0, RaiseError => 0, AutoCommit => 1 })
|| return AUTH_REQUIRED;
}
elsif ( $r->dir_config('DB_PROC_AUTH') ) {
my ( $proc ) = $r->dir_config('DB_PROC_AUTH');
$dbh = DBI->connect("dbi:Oracle:$dbinfo[0]",$dbinfo[1],$dbinfo[2],
{ PrintError => 0, RaiseError => 0, AutoCommit => 1 })
( run in 2.153 seconds using v1.01-cache-2.11-cpan-99c4e6809bf )