Fix issue if you have auth store plugins before authentication plugin
[catagits/Catalyst-Plugin-Authentication.git] / lib / Catalyst / Plugin / Authentication.pm
index 30cdaa3..91ac80b 100644 (file)
@@ -12,7 +12,7 @@ use Tie::RefHash;
 use Class::Inspector;
 use Catalyst::Authentication::Realm;
 
-our $VERSION = "0.10012";
+our $VERSION = "0.10013";
 
 sub set_authenticated {
     my ( $c, $user, $realmname ) = @_;
@@ -165,10 +165,10 @@ sub find_realm_for_persisted_user {
     } else {
         ## we have no choice but to ask each realm whether it has a persisted user.
         foreach my $realmname (@{$c->_auth_realm_restore_order}) {
-            my $ret = $c->auth_realms->{$realmname}->user_is_restorable($c);
-            if ($ret) {
-                return $c->auth_realms->{$realmname};
-            }
+            my $realm = $c->auth_realms->{$realmname}
+                || Catalyst::Exception->throw("Could not find authentication realm '$realmname'");
+            return $realm
+                if $realm->user_is_restorable($c);
         }
     }
     return undef;
@@ -342,14 +342,13 @@ sub setup_auth_realm {
 
 sub auth_realms {
     my $self = shift;
+    $self->_authentication_initialize(); # Ensure _auth_realms created!
     return($self->_auth_realms);
 }
 
 sub get_auth_realm {
     my ($app, $realmname) = @_;
-    
     return $app->auth_realms->{$realmname};
-    
 }
 
 
@@ -1113,7 +1112,11 @@ Jess Robinson
 
 David Kamholz
 
-Tomas Doran (t0m), C<bobtfish@bobtfish.net> 
+Tomas Doran (t0m), C<bobtfish@bobtfish.net>
+
+kmx
+
+Nigel Metheringham
 
 =head1 COPYRIGHT & LICENSE