[Zope-dev] Re: [Plone-developers] PAULA: bringing Zope 3's
authentication to Plone and beyond
Hermann Himmelbauer
dusty at qwer.tk
Mon Jul 14 03:50:25 EDT 2008
Am Samstag, 12. Juli 2008 03:04 schrieb Florian Friesdorf:
> On Thu, Jul 10, 2008 at 10:56:19PM +0200, Wichert Akkerman wrote:
> > Previously Florian Friesdorf wrote:
> > > Hi *,
> > PAS works fine and covers a lot more functionality than PAU and there are
> > more PAS plugins than PAU plugins.
>
> PAU is doing things different than PlonePAS/PAS, but I don't see how the
> current functionality of PlonePAS/PAS could not be achieved with PAU?
At first, I very much appreciate putting working into PAU. I personally use
Zope3 only, so I have little experience with Zope2 and none with PAS,
therefore I can't compare them.
In my projects, I use PAU only, so I do have some experience with it. And my
personal impression is, that PAU is a very interesting approach, but it has
it's drawbacks. I would denote the following:
1) No way to pass PAU-related information to form-code: In PAU, the
authentication is entirely done before user code, e.g. form handling etc. In
my scenario, I have a login form (z3c.form based), which has two input fields
that comply to z3c.form, so if the correct user data is inserted in these
fields, I'm logged in.
If login data is wrong, then the form has no way to find out, why the login
process failed (e.g. "no such user", "wrong password", "no cookie support").
Moreover, my login form has a "Cancel" button, which should cancel the login
process. If correct login data is entered, and "Cancel" is pressed, the user
is logged in nevertheless.
2) Lack of documentation: The entities "Principal, InternalPrincipal,
PrincipalInfo" are very confusing to a newbie, I still don't get the "big
picture".
3) Lack of plugins: No plugin for URL-rewriting, e.g. cookie-less browsers
(retrieving auth-information from URL) etc.
I personally needed to write an authentication plugin for a SQLAlchemy based
RDB, and was confused a lot of how/why to create Principal / PrincipalInfo
objects: Should I create my own Principal/PrincipalInfo objects in order to
stuff information into them that my application needs? How excactly should I
cache user data so that a single browser request does not lead to multiple
RDB queries? And where in the big picture is the "User" entity? (It's
probably the InternalPrincipal object, I assume)...
PAU-based authentication now works for me to some degree, but it was a massive
fight, and for my case, it seemed that the PAU flexibility simply led to
complexity but was not flexible/thought out enough to support my specific,
but relatively simple scenario.
So I would very, very much suggest to dig into PAU first and fix those
shortcomings before porting it to Plone/Zope2.
Best Regards,
Hermann
--
hermann at qwer.tk
GPG key ID: 299893C7 (on keyservers)
FP: 0124 2584 8809 EF2A DBF9 4902 64B4 D16B 2998 93C7
More information about the Zope-Dev
mailing list