Hi List,

I've been experimenting with CGI::Application::Authentication for a project. I've established a simple test site and successfully Authenticated using first the Dummy, then Generic drivers. I'm having a problem with the DBI driver and wonder whether I've missed something in the docs. Here's the code that fails.

package MyApp;
use DBI;
use base 'CGI::Application';
use CGI::Application::Plugin::Session;
use CGI::Application::Plugin::DBH (qw/dbh_config dbh/);
use CGI::Application::Plugin::Authentication;

__PACKAGE__->authen->config(
#       DRIVER => [ 'DBI',
#                               DBH                     => $self->dbh,
#                               TABLE           => 'user_info',
#                               CONSTRAINTS     => {
#                                       'user_info.user_name'   => 
'__CREDENTIAL_1__',
#                                       'user_info.user_passwd' => 
'__CREDENTIAL_2__',
#                                       } ],
        DRIVER => [ 'Generic', { foo_user => 'foo', bar_user => 'bar' } ],
        STORE  => 'Session',
        POST_LOGIN_RUNMODE => 'welcome',
);

__PACKAGE__->authen->protected_runmodes('welcome');

sub cgiapp_init {
        my $self = shift;
        $self->start_mode('welcome');
        $self->run_modes( [ qw/
                welcome
                / ] );
$self->dbh_config( $ENV{DB_DSN}, $ENV{DB_USER}, $ENV{DB_PWD}, { RaiseError => 1 } );
}

sub welcome {
        my $self = shift;
        
        my $username = $self->authen->username;
        
        my $output = $self->dump_html();
        return $output;
}

1;

Apache error log indicates:
Can't call method "dbh" on an undefined value at /usr/local/www/sites/ ph/modules/MyApp.pm line 31. Compilation failed in require at /usr/local/www/sites/ph/modules/ myapp line 8. BEGIN failed--compilation aborted at /usr/local/www/sites/ph/modules/ myapp line 8.

I'm following the example in the CGI::Application::Plugin::DBH documentation, but I'm not able to get a database handle. The Environment variables are set correctly and are passed to the module. I can store sessions in mysql using the same credentials set up in another trial.

Any ideas or observations?

Ed Pigg


---------------------------------------------------------------------
Web Archive:  http://www.mail-archive.com/[email protected]/
             http://marc.theaimsgroup.com/?l=cgiapp&r=1&w=2
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to