Re: Wrong username and password == Anonymous User?

Tres Seaver <[email protected]>
Newsgroups gmane.comp.web.zope.coders
Organization Zope Corporation
Message-ID <[email protected]>
Sidnei da Silva wrote:
> So, here's a tricky one.
> 
> In BaseRequest.traverse(), when invalid credentials are supplied, the
> validation will return the special 'Anonymous User' and proceed. Later
> in the game, if the 'current user' (in this case 'Anonymous User') is
> not allowed to access something, an 'Unauthorized' exception is
> raised.
> 
> Mark Hammond has been arguing me for hours now, and has convinced me
> that this is wrong. Why?
> 
> - If you want to access a anonymous page, you will *not* be sending
>   auth credentials.
>
> - If you *are* supplying credentials, they must either be *valid* or
>   *invalid*. Falling back to 'Anonymous User' just hides the fact that
>   you have provided wrong credentials.
> 
> - Falling back to 'Anonymous User' will eventually fail down the path,
>   unless, by luck, everything you need to access in that request is
>   accessible to the 'Anonymous User'. It might fail quite deep inside
>   Zope, thus possibly masking the real issue.
> 
> - Anyone sending wrong credentials and *expecting* that Zope will
>   fallback to 'Anonymous User' knows and is actively abusing
>   ZPublisher internals.
> 
> - Falling back to 'Anonymous User' and proceeding might also consume
>   more resources than it really should in this case.
> 
> In any case, if someone is depending on this behaviour, he has a
> broken application that must be fixed.
> 
> The patch (attached) is very short and simple, and I can't think of a
> single reasonable, sane case that would break with this change.
> 
> If no-one has a real reason for not checkin this in, I would like to
> make the change in Zope 2.7 and trunk as IMO it's a bug.

-1 without extensive testing on a branch, especially including heavy 
testing of basic-auth-only scenarios.

Tinkering with the machinery here after a couple of hours 
head-scratching ignores the fact that the machinery *works* in the teeth 
of all the weird behavior built into to pavane which is 
stateless-but-faking-it basic authentication.


Tres.
-- 
===============================================================
Tres Seaver                                [email protected]
Zope Corporation      "Zope Dealers"       http://www.zope.com
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.