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 )