[Catalyst] Announce: Catalyst::Plugin::Authentication update

Jay K jayk at ion0.com
Mon Feb 26 17:47:24 GMT 2007


Hello All,

As some of you know I've been working on an update to Catalyst's
Authentication system for some time.

Well, finally, there is a new Catalyst::Plugin::Authentication module
available for general testing.

The biggest new feature in this release is support for the concept of
realms, which allows you to have multiple pairings of credentials /
stores in the same app.... Essentially different groups of users with
different authentication processes and / or storage methods.  This
allows, for example, two separate db tables for users of different
types (students / instructors, users / admins, etc.)  It also allows
for multiple authentication trys - for example - try against this
LDAP server, if it fails,  try against this db, etc. (note the LDAP
module still needs updating to be compatible with realms)  I'm sure
other uses for realms will show up also.

You can read more about it / get it here:

http://search.cpan.org/~jayk/Catalyst-Plugin-Authentication-0.09999_01/

There is also a new DBIx::Class storage module to go along with the
updated Authentication system available here:

http://search.cpan.org/~jayk/Catalyst-Plugin-Authentication-Store-
DBIx-Class-0.02/

This provides a much more flexible authentication process - allowing
for arbitrary checks when retrieving a user.  Checking a status flag,
or checking against multiple fields for verification, are now
possible.  Essentially anything you could construct with a normal
DBIx::Class search you can use for authentication.  Note that the new
DBIx::Class module only works with the updated Auth module.

Much of the internals of the Auth plugin have been rewritten.  This
requires existing authentication stores / credentials to be updated
in order to function with the realms code.  The updates are
relatively minor (See the Internals doc to see how it works)   It
will take a while for all the existing modules to be updated, so by
default the auth module will operate in compatability mode, allowing
the older modules to be used.  Unfortunately, due to the changes
required for realms support, compatibility mode and realms mode are
mutually exclusive.

If you are interested, please grab a copy / check it out.  If you
feel like lending a hand, things that need doing are:

* Testing of compatibility mode with the existing Store and
Credential modules.

* Helping to complete the tests for the realms code / DBIx::Class

* Updating existing Store / Credentials to be compatible with realms
mode
	(see the 'Internals' pod for details)

* General feedback

Thanks, and obviously, feel free to post questions here, or on #catalyst

JayK





More information about the Catalyst mailing list