[Zope-dev] PAS CookieAuthHelper and insufficient privileges

Laurence Rowe l at lrowe.co.uk
Wed Oct 13 15:26:55 EDT 2010


On 13 October 2010 17:16, Tres Seaver <tseaver at palladion.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> On 10/11/2010 08:21 PM, Laurence Rowe wrote:
>> I'm currently implementing single sign on across Plone sites but have
>> run into a bit of an issue with the CookieAuthHelper.
>>
>> Unauthorized accesses are redirected to its login_path attribute even
>> when a user is already logged in. Plone works around this with a
>> require_login script that traverses to insufficient_privileges (rather
>> than login_form) when the user is not anonymous.
>> http://dev.plone.org/plone/browser/Plone/trunk/Products/CMFPlone/skins/plone_login/require_login.py
>>
>> I'd like to avoid having two redirects (one to require_login and then
>> one to the remote login page).
>>
>> One option (as suggested in require_login.py) would be to have
>> CookieAuthHelper traverse rather than redirect to the login_path so
>> that sites could override the behaviour, though they would then
>> presumably need to duplicate the functionality currently in
>> CookieAuthHelper.unauthorized (which I must admit to only barely
>> understanding...)
>> http://zope3.pov.lt/trac/browser/Products.PluggableAuthService/trunk/Products/PluggableAuthService/plugins/CookieAuthHelper.py
>>
>> Instead, it would seem to make sense to move this functionality login
>> / insufficient privileges functionality into the CookieAuthHelp
>> itself. I could add an insufficient_privs_path and redirect there
>> instead of login_path when a user is already authorized.
>>
>> Yet another option would be to let logged in unauthorized to percolate
>> up and implement that page with an error view.
>>
>> Any opinions? I'm leaning towards adding an insufficient_privs_path as
>> it seems simplest and least invasive. (When not set it would just use
>> login_path as normal).
>
> Please do this kind of disruptive change in a *new* plugin, perhaps
> subclassed from the existing one.  The whole point of plugins in the
> first place was to allow for folks with different needs to handle them
> by replacement.

I'd be interested to hear how other PAS users deal with this issue -
showing an insufficient privileges page rather than a login form to
already logged in users seems a common requirement.

Would you consider adding an optional insufficient_privs_path to
CookieAuthHelper a disruptive change? (Assuming it defaulted to the
current behaviour when set to a default ''.)

Making plone.session's SessionPlugin subclass CookieAuthHelper rather
than work in concert with it would certainly be an option if that was
thought preferable.

(Keeping this thread on this list rather than starting a new one on
Zope-PAS. Is the Zope-PAS list still alive or does it come under the
list rationalization that's been discussed? Two comments from Wichert
in the last year on checkin messages, no discussion.)

Laurence


More information about the Zope-Dev mailing list