NAME
Authen::Htpasswd - interface to read and modify Apache .htpasswd files
SYNOPSIS
my $pwfile = Authen::Htpasswd->new('user.txt', { encrypt_hash => 'md5' });# authenticate a user (checks all hash methods by default)if ($pwfile->check_user_password('bob', 'foo')) { ... }# modify the file (writes immediately)$pwfile->update_user('bob', $password, $info);$pwfile->add_user('jim', $password);$pwfile->delete_user('jim');# get user objects tied to a filemy $user = $pwfile->lookup_user('bob');if ($user->check_password('vroom', [qw/ md5 sha1 /])) { ... } # only use secure hashes$user->password('foo'); # writes to file$user->set(password => 'bar', extra_info => 'editor'); # change more than one thing at once# or manage the file yourselfmy $user = Authen::Htpasswd::User->new('bill', { hashed_password => 'iQ.IuWbUIhlPE' });my $user = Authen::Htpasswd::User->new('bill', 'bar', 'staff', { encrypt_hash => 'crypt' });print PASSWD $user->to_line, "\n";
DESCRIPTION
This module provides a convenient, object-oriented interface to Apache-style .htpasswd files.
It supports passwords encrypted via MD5, SHA-1, and crypt, as well as plain (cleartext) passwords.
Additional fields after username and password, if present, are accessible via the "extra_info" array.
METHODS
new
my $pwfile = Authen::Htpasswd->new($filename, \%options);
Creates an object for a given .htpasswd file. Options:
- encrypt_hash
-
How passwords should be encrypted if a user is added or changed. Valid values are
"md5","sha1","crypt", and"plain". Default is"crypt".
- check_hashes
-
An array of hash methods to try when checking a password. The methods will be tried in the order given. Default is
"md5","sha1","crypt","plain".
lookup_user
my $userobj = $pwfile->lookup_user($username);
Returns an Authen::Htpasswd::User object for the given user in the password file.
all_users
my @users = $pwfile->all_users;
check_user_password
$pwfile->check_user_password($username,$password);
Returns whether the password is valid. Shortcut for "$pwfile->lookup_user($username)->check_password($password)".
update_user
$pwfile->update_user($userobj);$pwfile->update_user($username, $password[, @extra_info], \%options);
Modifies the entry for a user saves it to the file. If the user entry does not exist, it is created. The options in the second form are passed to Authen::Htpasswd::User.
add_user
$pwfile->add_user($userobj);$pwfile->add_user($username, $password[, @extra_info], \%options);
Adds a user entry to the file. If the user entry already exists, an exception is raised. The options in the second form are passed to Authen::Htpasswd::User.
delete_user
$pwfile->delete_user($userobj);$pwfile->delete_user($username);
Removes a user entry from the file.
AUTHOR
David Kamholz "[email protected]"
Yuval Kogman
SEE ALSO
Apache::Htpasswd.
COPYRIGHT & LICENSE
Copyright (c) 2005 - 2007 the aforementioned authors.This program is free software; you can redistributeit and/or modify it under the same terms as Perl itself.