use Class::Inspector;
use Catalyst::Authentication::Realm;
-our $VERSION = "0.10011";
+our $VERSION = "0.10012";
sub set_authenticated {
my ( $c, $user, $realmname ) = @_;
} 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;
Authentication
/;
- __PACKAGE__->config->{'Plugin::Authentication'} =
+ __PACKAGE__->config( 'Plugin::Authentication' =>
{
default => {
credential => {
}
}
}
- };
+ }
+ );
This tells the authentication plugin what realms are available, which
credential and store modules are used, and the configuration of each. With
You can accomplish this simply by installing the L<DBIx::Class|Catalyst::Authentication::Store::DBIx::Class> Store and
changing your config:
- __PACKAGE__->config->{'Plugin::Authentication'} =
+ __PACKAGE__->config( 'Plugin::Authentication'} =>
{
default_realm => 'members',
members => {
role_column => 'roles'
}
}
- };
+ }
+ );
The authentication system works behind the scenes to load your data from the
new source. The rest of your application is completely unchanged.
=head1 CONFIGURATION
# example
- __PACKAGE__->config->{'Plugin::Authentication'} =
+ __PACKAGE__->config( 'Plugin::Authentication' =>
{
default_realm => 'members',
authserver => '192.168.10.17'
}
}
- };
+ }
+ );
NOTE: Until version 0.10008 of this module, you would need to put all the
realms inside a "realms" key in the configuration. Please see
realms inside a "realms" key in the configuration.
# example
- __PACKAGE__->config->{'Plugin::Authentication'} =
+ __PACKAGE__->config( 'Plugin::Authentication'} =>
{
default_realm => 'members',
realms => {
...
},
},
- };
+ }
+ );
-If you use the old, deprecated C<< __PACKAGE__->config->{'authentication'} >>
+If you use the old, deprecated C<< __PACKAGE__->config( 'authentication' ) >>
configuration key, then the realms key is still required.
=head1 COMPATIBILITY ROUTINES
Return the store whose name is 'default'.
-This is set to C<< $c->config->{'Plugin::Authentication'}{store} >> if that value exists,
+This is set to C<< $c->config( 'Plugin::Authentication' => { store => # Store} ) >> if that value exists,
or by using a Store plugin:
# load the Minimal authentication store.