[Catalyst-commits] r8508 - in Catalyst-Authentication-Credential-HTTP/1.000/trunk: . lib/Catalyst/Authentication/Credential

t0m at dev.catalyst.perl.org t0m at dev.catalyst.perl.org
Mon Oct 6 15:08:16 BST 2008


Author: t0m
Date: 2008-10-06 15:08:16 +0100 (Mon, 06 Oct 2008)
New Revision: 8508

Modified:
   Catalyst-Authentication-Credential-HTTP/1.000/trunk/Changes
   Catalyst-Authentication-Credential-HTTP/1.000/trunk/Todo
   Catalyst-Authentication-Credential-HTTP/1.000/trunk/lib/Catalyst/Authentication/Credential/HTTP.pm
Log:
Add an extra field which I need

Modified: Catalyst-Authentication-Credential-HTTP/1.000/trunk/Changes
===================================================================
--- Catalyst-Authentication-Credential-HTTP/1.000/trunk/Changes	2008-10-05 07:47:50 UTC (rev 8507)
+++ Catalyst-Authentication-Credential-HTTP/1.000/trunk/Changes	2008-10-06 14:08:16 UTC (rev 8508)
@@ -1,3 +1,7 @@
+1.006  2008-10-06
+  - Added username_field configuration option. I need this to play
+    nice with Catalyst::Authentication::Store::Tangram.
+
 1.005  2008-09-25
   - Added better description of the use of the domains and
     use_uri_for options (info culled from RFC2617).

Modified: Catalyst-Authentication-Credential-HTTP/1.000/trunk/Todo
===================================================================
--- Catalyst-Authentication-Credential-HTTP/1.000/trunk/Todo	2008-10-05 07:47:50 UTC (rev 8507)
+++ Catalyst-Authentication-Credential-HTTP/1.000/trunk/Todo	2008-10-06 14:08:16 UTC (rev 8508)
@@ -2,4 +2,6 @@
 . Test 'algorithm' config / MD5-sess properly.
 . Full implementation of MD5-sess with remote authentication service.
 . Domain option should be able to be passed as config.
-. Support for NTLM auth?
\ No newline at end of file
+. Support for NTLM auth?
+. Config verification / validation on construction.
+. Test all config parameters (esp username_field)
\ No newline at end of file

Modified: Catalyst-Authentication-Credential-HTTP/1.000/trunk/lib/Catalyst/Authentication/Credential/HTTP.pm
===================================================================
--- Catalyst-Authentication-Credential-HTTP/1.000/trunk/lib/Catalyst/Authentication/Credential/HTTP.pm	2008-10-05 07:47:50 UTC (rev 8507)
+++ Catalyst-Authentication-Credential-HTTP/1.000/trunk/lib/Catalyst/Authentication/Credential/HTTP.pm	2008-10-06 14:08:16 UTC (rev 8508)
@@ -13,11 +13,12 @@
     __PACKAGE__->mk_accessors(qw/_config realm/);
 }
 
-our $VERSION = "1.005";
+our $VERSION = "1.006";
 
 sub new {
     my ($class, $config, $app, $realm) = @_;
     
+    $config->{username_field} ||= 'username';
     my $self = { _config => $config, _debug => $app->debug };
     bless $self, $class;
     
@@ -58,7 +59,7 @@
     my $headers = $c->req->headers;
 
     if ( my ( $username, $password ) = $headers->authorization_basic ) {
-	    my $user_obj = $realm->find_user( { username => $username }, $c);
+	    my $user_obj = $realm->find_user( { $self->_config->{username_field} => $username }, $c);
 	    if (ref($user_obj)) {            
             if ($self->check_password($user_obj, {$self->_config->{password_field} => $password})) {
                 $c->set_authenticated($user_obj);
@@ -125,7 +126,7 @@
         my $user;
 
         unless ( $user = $auth_info->{user} ) {
-            $user = $realm->find_user( { username => $username }, $c);
+            $user = $realm->find_user( { $self->_config->{username_field} => $username }, $c);
         }
         unless ($user) {    # no user, no authentication
             $c->log->debug("Unable to locate user matching user info provided") if $c->debug;
@@ -569,6 +570,10 @@
 The name of accessor used to retrieve the value of the password field from the user object. Same usage as in 
 L<Catalyst::Authentication::Credential::Password|Catalyst::Authentication::Credential::Password/password_field>
 
+=item username_field
+
+The field name that the user's username is mapped into when finding the user from the realm. Defaults to 'username'.
+
 =item use_uri_for
 
 If this configuration key has a true value, then the domain(s) for the authorization header will be




More information about the Catalyst-commits mailing list