---
name: "Catalyst::Authentication::Store::Htpasswd"
section: "3pm"
platform: "linux"
package: "libcatalyst-authentication-store-htpasswd-perl"
version: "1.006-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catalyst::Authentication::Store::Htpasswd"
---

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

Authen::Htpasswd based user storage/authentication

## NAME

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

## VERSION

version 1.006

## 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::User-\>supports or an override in user\_class.

### 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") });
```

## SEE ALSO

Authen::Htpasswd.

## SUPPORT

Bugs may be submitted through the RT bug tracker \<https://rt.cpan.org/Public/Dist/Display.html?Name=Catalyst-Authentication-Store-Htpasswd\> (or bug-Catalyst-Authentication-Store-Htpasswd@rt.cpan.org \<mailto:bug-Catalyst-Authentication-Store-Htpasswd@rt.cpan.org\>).

There is also a mailing list available for users of this distribution, at \<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst\>.

There is also an irc channel available for users of this distribution, at `"#catalyst"` on `"irc.perl.org"` \<irc://irc.perl.org/#catalyst\>.

## AUTHOR

XXXX XXX'XX (Yuval Kogman) \<nothingmuch@woobling.org\>

## CONTRIBUTORS

- •

  David Kamholz \<dkamholz@cpan.org\>

- •

  Tomas Doran \<bobtfish@bobtfish.net\>

- •

  Karen Etheridge \<ether@cpan.org\>

- •

  Tom Bloor \<t.bloor@shadowcat.co.uk\>

- •

  Christopher Hoskin \<christopher.hoskin@gmail.com\>

- •

  Ilmari Vacklin \<ilmari.vacklin@cs.helsinki.fi\>

## COPYRIGHT AND LICENCE

This software is copyright (c) 2005 by XXXX XXX'XX (Yuval Kogman).

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
