Catalyst::Authentication::Store::Htpasswd(3)

NAME
Catalyst::Authentication::Store::Htpasswd - Authen::Htpasswd based user storage/authentication.

SYNOPSIS
    use Catalyst qw/
      Authentication
    /;

    __PACKAGE__->config(
        authentication => {
            default_realm => 'test',
            realms => {
                test => {
                    credential => {
                        class          => 'Password',
                        password_field => 'password',
                        password_type  => 'self_check',
                    },
                    store => {
                        class => 'Htpasswd',
                        file => 'htpasswd',
                    },
                },
            },
        },
    );

    sub login : Global {
        my ( $self, $c ) = @_;

        $c->authenticate({ username => $c->req->param("login"), password => $c->req->param("password") });
    }

DESCRIPTION
This plugin uses Authen::Htpasswd to let your application use "<.htpasswd"> files for it's authentication storage.

METHODS

  new
Simple constructor, dies if the htpassword file can't be found

  find_user
Looks up the user, and returns a Catalyst::Authentication::Store::Htpasswd::User object.

  user_supports
Delegates to Catalyst::Authentication::Store::Htpasswd::User-user_supports|Catalyst::Authentication::Store::Htpasswd::User#user_supports>

  from_session
Delegates the user lookup to "find_user"

CONFIGURATION

  file
The path to the htpasswd file. If the path starts with a slash, then it is assumed to be a fully qualified path, otherwise the path is fed through " $c-"path_to > and so normalised to the application root.

Alternatively, it is possible to pass in an " Authen::Htpasswd " object here, and this will be used as the htpasswd file.

  user_class
Change the user class which this store returns. Defaults to " Catalyst::Authentication::Store::Htpasswd::User ". This can be used to add additional functionality to the user class by sub-classing it, but will not normally be needed.

  user_field
Change the field that the username is found in in the information passed into the call to "$c->authenticate()".

This defaults to username , and generally you should be able to use the module as shown in the synopsis, however if you need a different field name then this setting can change the default.

Example:

    __PACKAGE__->config( authentication => { realms => { test => {
                    store => {
                        class => 'Htpasswd',
                        user_field => 'email_address',
                    },
    }}});
    # Later in your code
    $c->authenticate({ email_address => $c->req->param("email"), password => $c->req->param("password") });

AUTHORS
Yuval Kogman "<nothingmuch@woobling.org">

David Kamholz "<dkamholz@cpan.org">

Tomas Doran "<bobtfish@bobtfish.net">

SEE ALSO
Authen::Htpasswd.

COPYRIGHT & LICENSE
        Copyright (c) 2005-2008 the aforementioned authors. All rights
        reserved. This program is free software; you can redistribute
        it and/or modify it under the same terms as Perl itself.

POD ERRORS
Hey! The above document had some coding errors, which are explained below:

Around line 125:
    L<> starts or ends with whitespace

Around line 130:
    L<> starts or ends with whitespace