Authen-CyrusSASL
view release on metacpan or search on metacpan
Authen/CyrusSASL.pm view on Meta::CPAN
$res = ' ' x 1024;
# send request
$self->{'sock'}->send ($req) || return SASL_FAIL;
# recv response
$sh = new IO::Select($self->{'sock'}) or return SASL_FAIL;
$sh->can_read($self->{'timeout'}) or return SASL_FAIL;
recv( $self->{'sock'}, $res, 1024, 0 );
# sock->recv does not work
#$self->{'sock'}->recv ($res, 1024, 0) or return SASL_FAIL;
if (substr($res, 0, 2) ne 'OK') {
$! = substr($res, 3);
return SASL_BADAUTH;
}
return SASL_OK;
}
1;
__END__
=head1 NAME
Authen::CyrusSASL - simple Sasl Authen Daemon client facilities
=head1 SYNOPSIS
use Authen::CyrusSASL;
$p = new Authen::CyrusSASL(Type => SASL_AUTHD, Dir => '/var/run/saslauthd');
print "check=", $r->check_pwd('username', 'userpass'), "\n";
$p = new Authen::CyrusSASL(Type => SASL_PWCHECK, Dir => '/var/run/pwcheck');
print "check=", $r->check_pwd('username', 'userpass'), "\n";
=head1 DESCRIPTION
The C<Authen::CyrusSASL> module provides a simple class that allows you to
send request to the cyrus-sasl's 2.0 authen daemon.
This module is based on the Authen::Radius module with the similar
interface.
=head1 CONSTRUCTOR
=over 4
=item new ( Type => < SASL_AUTHD | SASL_PWCHECK >,
< Dir => dirpath | Path => sockpath > [, TimeOut => TIMEOUT] )
Creates & returns a blessed reference to a Authen::CyrusSASL object, or undef on
failure. Error is saved into $!.
Use undef on the return value if you want to undef the underlying
unix socket.
There are two types for Type attribute - one for saslauth daemon and one for
old pwcheck daemon (SASL_PWCHECK). The Type attribute is obligatory.
The default value for Dir is '/var/run/pwcheck' (it then looks for
the path '/var/run/pwcheck/pwcheck') for pwcheck method,
and '/var/run/saslauthd' (path '/var/run/saslauthd/mux') for saslauthd method.
You can specify the full path for pwcheck or mux special files
with the Path attribute.
The TimeOut value is self explonatory.
=back
=head1 METHODS
=over 4
=item check_pwd ( USERNAME, PASSWORD )
Checks with the SASL server if the specified C<PASSWORD> is valid for user
C<USERNAME>. It returns SASL_OK if the C<PASSWORD> is correct,
SASL_FAIL if the connection fails, or SASL_BADAUTH if the password or
the username is incorrect (possible error is in the $! variable).
=back
=head1 SEE ALSO
Cyrus-sasl archive located at ftp://ftp.andrew.cmu.edu/pub/cyrus-mail/
=head1 AUTHOR
Piotr Klaban <poczta@klaban.torun.pl>
=cut
( run in 1.849 second using v1.01-cache-2.11-cpan-39bf76dae61 )