
gavin.henry at gmail
Jun 28, 2012, 2:51 PM
Post #3 of 10
(379 views)
Permalink
|
|
Re: Using Progressive realms when username and password fields are all different
[In reply to]
|
|
On 28 June 2012 21:50, Tim Anderson <tja824 [at] gmail> wrote: > Gavin, > > Assuming you are using the Authentication plugin, you can define multiple > realm objects, each of which allows you to specify the columns to be used > for username and password. The documentation is pretty good on this one, > and it's working well for me. > > http://search.cpan.org/~bobtfish/Catalyst-Plugin-Authentication-0.10020/lib/Catalyst/Plugin/Authentication.pm#CONFIGURATION > > Does that help? Hi Tim, That's what I already have. I have 3 realms defined and then a Progressive realm listing them: <progressive_oauth> class Progressive realms customers_oauth realms partners_oauth realms admins_oauth <authinfo_munge> <customers_oauth> type customer </customers_oauth> <partners_oauth> type partner </partners_oauth> <admins_oauth> type admin </admins_oauth> </authinfo_munge> </progressive_oauth> <customers_oauth> <credential> class Password password_type clear username_field useralias password_field uipass </credential> <store> class DBIx::Class user_model A2BillingDB::CcCard </store> </customers_oauth> <partners_oauth> <credential> class Password password_type clear username_field login password_field passwd </credential> <store> class DBIx::Class user_model A2BillingDB::CcAgent </store> </partners_oauth> <admins_oauth> <credential> class Password password_type hashed password_hash_type Whirlpool username_field login password_field pwd_encoded </credential> <store> class DBIx::Class user_model A2BillingDB::CcUiAuthen </store> </admins_oauth> So I do: # Get the username and password from form my $username = $c->request->params->{username}; my $password = $c->request->params->{password}; my $signin = $c->request->params->{signin}; if ($signin) { # If the username and password values were found in form if ( $username && $password ) { # Attempt to log the user in if ( $c->authenticate( { username => $username, password => $password }, 'progressive_oauth' ) ) { I would expect me passing in username and password like above to then map that to the config that defines username_field and password_field but instead I get: Thu Jun 28 22:50:22 2012] [error] Failed to load user data. You passed [password,realm,type,username] to authenticate() but your user source (A2BillingDB::CcAgent) only has these columns: [id,datecreation,active,login,passwd,location,language,id_tariffgroup,options,credit,currency,locale,commission,vat,banner,perms,lastname,firstname,address,city,state,country,zipcode,phone,email,fax,company,com_balance,threshold_remittance,bank_info] Check your authenticate() call. Thanks. -- http://www.suretecsystems.com/services/openldap/ http://www.surevoip.co.uk _______________________________________________ List: Catalyst [at] lists Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst [at] lists/ Dev site: http://dev.catalyst.perl.org/
|