[Catalyst] DBIC Authentication Errors

Greg Coates gcoates at csuchico.edu
Wed Sep 24 23:50:25 BST 2008


Yep, that fixed it.  I knew it had to be something simple!

Thanks,
Greg

J. Shirley wrote:
> On Wed, Sep 24, 2008 at 2:52 PM, Greg Coates <gcoates at csuchico.edu> wrote:
>> I'm getting errors when I try to login to my web app, which is set up to use
>> the DBIC authentication plugin.
>>
>>
>>
>> Here's the relevant portion of my config file:
>>
>> authentication:
>>  default_realm: dbic
>>  realms:
>>    dbic:
>>      credential:
>>        class: Password
>>        password_field: usr_password
>>        password_type: clear
>>      store:
>>        class: DBIx::Class
>>        user_class: BlogDB::Users
>>        id_field: usr_login_name
>>
>>
>>
>> When I start the dev server, I see this:
>> [debug] Loaded Config "/path/to/my/config/dev.yml"
>> [debug] Setting up auth realm dbic
>>
>>
>>
>> Here's the login controller:
>>
>> sub login : Local {
>>  my ($self, $c) = @_;
>>
>>  if ($c->request->params->{submitted} eq 'yes') {
>>    my $username = $c->request->params->{usr_login_name} || "";
>>    my $password = $c->request->params->{usr_password} || "";
>>    if ($c->authenticate({ username => $username,
>>                           password => $password })) {
>>      $c->response->redirect( $c->uri_for('/posts') );
>>      return;
>>    } else {
>>      $c->stash->{message} = "Invalid user ID or password.";
>>    }
>>  }
>>
>>  $c->stash->{template} = 'users/login.tt';
>>  $c->stash->{stylesheet} = 'form.css';
>> }
>>
>>
>> The login form displays fine, but when I try to log in using a uid/password
>> combo that IS in the database, I get this error:
>>
>> [debug] "POST" request for "users/login"
>> [debug] Path is "users/login"
>> [error] Caught exception in MyApp::Controller::Users->login "User retrieval
>> failed: no columns from BlogDB::Users were provided at
>> /usr/lib/perl5/site_perl/5.8.5/Catalyst/Authentication/Store/DBIx/Class.pm
>> line 63"
>>
>>
>> I've googled for solutions until my fingertips are numb with no luck.  I
>> suspect there's some stupid little problem that I'm missing.  Can anyone
>> shed some light on this issue for me?
>>
>> Thanks,
>> Greg
>>
> 
> You probably want $c->authenticate({ usr_login_name => $username,
> usr_password => $password });
> 
> The parameters passed into authenticate match what your DBIC schema
> class declares.
> 
> -J
> 
> _______________________________________________
> List: Catalyst at lists.scsys.co.uk
> Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
> Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
> Dev site: http://dev.catalyst.perl.org/



More information about the Catalyst mailing list