[Repoze-checkins] r790 - repoze.pam/tags/0.5
Chris McDonough
chrism at agendaless.com
Sun Mar 9 14:25:08 UTC 2008
Author: Chris McDonough <chrism at agendaless.com>
Date: Sun Mar 9 09:25:07 2008
New Revision: 790
Log:
0.5 (2008-03-09)
- Allow "remote user key" (default: REMOTE_USER) to be overridden
(pass in remote_user_key to middleware constructor).
- Allow form plugin to override the default form.
- API change: IIdentifiers are no longer required to put both 'login'
and 'password' in a returned identity dictionary. Instead, an
IIdentifier can place arbitrary key/value pairs in the identity
dictionary (or return an empty dictionary).
- API return value change: the "failure" identity which IIdentifiers
return is now None rather than an empty dictionary.
- The IAuthenticator interface now specifies that IAuthenticators
must not raise an exception when evaluating an identity that does
not have "expected" key/value pairs (e.g. when an IAuthenticator
that expects login and password inspects an identity returned by an
IP-based auth system which only puts the IP address in the
identity); instead they fail gracefully by returning None.
- Add (cookie) "auth_tkt" identification plugin.
- Stamp identity dictionaries with a userid by placing a key named
'repoze.pam.userid' into the identity for each authenticated
identity.
- If an IIdentifier plugin inserts a 'repoze.pam.userid' key into the
identity dictionary, consider this identity "preauthenticated". No
authenticator plugins will be asked to authenticate this identity.
This is designed for things like the recently added auth_tkt
plugin, which embeds the user id into the ticket. This effectively
alllows an IIdentifier plugin to become an IAuthenticator plugin
when breaking apart the responsibility into two separate plugins is
"make-work". Preauthenticated identities will be selected first
when deciding which identity to use for any given request.
- Insert a 'repoze.pam.identity' key into the WSGI environment on
ingress if an identity is found. Its value will be the identity
dictionary related to the identity selected by repoze.pam on
ingress. Downstream consumers are allowed to mutate this
dictionary; this value is passed to "remember" and "forget", so its
main use is to do a "credentials reset"; e.g. a user has changed
his username or password within the application, but we don't want
to force him to log in again after he does so.
Added:
repoze.pam/tags/0.5/
- copied from r789, /repoze.pam/trunk/
More information about the Repoze-checkins
mailing list