On Wed, Nov 14, 2012 at 1:29 PM, <exar...@twistedmatrix.com> wrote: > This isn't right. The point of declaring interfaces on the checker is > so the system knows what kind of credentials it can check. If your > credentials object implements a different interface than your checker > declares it can check, the system won't ever ask the checker to check > the credentials. >
Just to be clear: the thing being checked, i.e. the thing being provided by the user when logging in, is just an IUsernamePassword. Hence, the credentialInterfaces list on the ICredentialsChecker is [IUsernamePassword]. The only place where IUsernameHashedPassword comes in to play is storage, i.e. the thing I am checking the user-provided IUsernamePassword against. Maybe code is better: https://gist.github.com/4072062 (old.py is what it is now, new.py is what I'm proposing) Jean-Paul cheers lvh
_______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python