[Catalyst] progressive authentication via db & LDAP

piccard piccard at web.de
Wed Jan 26 13:48:33 GMT 2011


> You set it in the config, you implement a check_password method in 
> your user object (which goes and checks the password from LDAP), 
> you're done.


For anybody who is working on the same problem, this solution worked 4 me:

+ set the extended classin the config via the store_user_class-key

                 credential => {
                         class => 'Password',
                         password_type => 'self_check',
                         password_field => 'user_password'
                 },
                 store => {
                         class           => 'DBIx::Class',
                         user_model      => 'DB::User',
                         store_user_class 
=>'DW::Authentication::Store::DBIx::Class::User',
                         role_relation => 'roles',
                         role_field => 'role_category',
                         use_userdata_from_session => '1'
                 },

+ the new class which includes the new check_password-method (i.e. 
authenticate via LDAP but use the roles inside the DB)

package DW::Authentication::Store::DBIx::Class::User;

use strict;
use warnings;

use Moose;
use MooseX::NonMoose;
use namespace::autoclean;
extends qw/Catalyst::Authentication::Store::DBIx::Class::User/;

sub check_password {
     my ( $self, $password ) = @_;

    # i.e. LDAP-auth

     return 1;

}


__PACKAGE__->meta->make_immutable;
1;



  ... thanx 2 t0m;-)



More information about the Catalyst mailing list