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: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to