On 09/24/2007 11:55 AM, Peter Karman wrote:
> As I have the time (and who knows how long that will last...), I'd still like
> to bring the LDAP plugins up to speed. I'll hack on it a bit today and see
> where I get.
>
These patches seem to bring the LDAP plugins up the latest Authentication API,
to support realms, etc.
--
Peter Karman . [EMAIL PROTECTED] . http://peknet.com/
--- /home/msi/pek/perl/lib/perl5/site_perl/5.8.8/Catalyst/Plugin/Authentication/Store/LDAP/Backend.pm 2006-03-21 17:31:19.000000000 -0600
+++ lib/Catalyst/Plugin/Authentication/Store/LDAP/Backend.pm 2007-09-24 12:19:06.366910000 -0500
@@ -75,6 +75,8 @@
use strict;
use warnings;
+our $VERSION = '0.02';
+
use Catalyst::Plugin::Authentication::Store::LDAP::User;
use Net::LDAP;
@@ -115,10 +117,24 @@
return $self;
}
+=head2 find_user($id)
+
+Creates a L<Catalyst::Plugin::Authentication::Store::LDAP::User> object
+for the given User ID. This is the preferred deprecated mechanism for getting a
+given User out of the Store.
+
+=cut
+
+sub find_user {
+ my ( $self, $authinfo, $c ) = @_;
+ return $self->get_user( $authinfo->{id} || $authinfo->{username} );
+}
+
+
=head2 get_user($id)
Creates a L<Catalyst::Plugin::Authentication::Store::LDAP::User> object
-for the given User ID. This is the preferred mechanism for getting a
+for the given User ID. This is the old deprecated mechanism for getting a
given User out of the Store.
=cut
--- /home/msi/pek/perl/lib/perl5/site_perl/5.8.8/Catalyst/Plugin/Authentication/Store/LDAP.pm 2006-03-21 17:31:39.000000000 -0600
+++ lib/Catalyst/Plugin/Authentication/Store/LDAP.pm 2007-09-24 12:09:49.138025000 -0500
@@ -5,28 +5,14 @@
use strict;
use warnings;
-our $VERSION = '0.04';
+our $VERSION = '0.05';
use Catalyst::Plugin::Authentication::Store::LDAP::Backend;
-sub setup {
- my $c = shift;
-
- if (exists($c->config->{'authentication'})) {
- unless (exists($c->config->{'authentication'}->{'ldap'})) {
- Catalyst::Exception->throw("I require \$c->config->{'authentication'}->{'ldap'} to be configured.");
- }
- } else {
- Catalyst::Exception->throw("I require \$c->config->{'authentication'}->{'ldap'} to be configured.");
- }
-
- $c->default_auth_store(
- Catalyst::Plugin::Authentication::Store::LDAP::Backend->new(
- $c->config->{'authentication'}->{'ldap'}
- )
- );
-
- $c->NEXT::setup(@_);
+sub new {
+ my ( $class, $config, $app ) = @_;
+ return Catalyst::Plugin::Authentication::Store::LDAP::Backend->new(
+ $config);
}
__PACKAGE__;
@@ -84,7 +70,10 @@
sub login : Global {
my ( $self, $c ) = @_;
- $c->login( $c->req->param("login"), $c->req->param("password"), );
+ $c->authenticate({
+ id => $c->req->param("login"),
+ password => $c->req->param("password")
+ });
$c->res->body("Welcome " . $c->user->username . "!");
}
@@ -122,29 +111,37 @@
# Config for Store::LDAP
authentication:
- ldap:
- ldap_server: ldap.yourcompany.com
- ldap_server_options:
- timeout: 30
- binddn: anonymous
- bindpw: dontcarehow
- start_tls: 1
- start_tls_options:
- verify: none
- user_basedn: ou=people,dc=yourcompany,dc=com
- user_filter: (&(objectClass=posixAccount)(uid=%s))
- user_scope: one
- user_field: uid
- user_search_options:
- deref: always
- use_roles: 1
- role_basedn: ou=groups,ou=OxObjects,dc=yourcompany,dc=com
- role_filter: (&(objectClass=posixGroup)(memberUid=%s))
- role_scope: one
- role_field: uid
- role_value: dn
- role_search_options:
- deref: always
+ default_realm: ldap
+ realms:
+ ldap:
+ credential:
+ class: Password
+ password_field: password
+ password_type: self_check
+ store:
+ class: LDAP
+ ldap_server: ldap.yourcompany.com
+ ldap_server_options:
+ timeout: 30
+ binddn: anonymous
+ bindpw: dontcarehow
+ start_tls: 1
+ start_tls_options:
+ verify: none
+ user_basedn: ou=people,dc=yourcompany,dc=com
+ user_filter: (&(objectClass=posixAccount)(uid=%s))
+ user_scope: one
+ user_field: uid
+ user_search_options:
+ deref: always
+ use_roles: 1
+ role_basedn: ou=groups,ou=OxObjects,dc=yourcompany,dc=com
+ role_filter: (&(objectClass=posixGroup)(memberUid=%s))
+ role_scope: one
+ role_field: uid
+ role_value: dn
+ role_search_options:
+ deref: always
=head2 ldap_server
_______________________________________________
List: [email protected]
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/