Re: [Zope3-Users] Re: Does zope cache authentication?

2007-09-23 Thread Yuan HOng
Thanks for clarifying this.

-- 
Hong Yuan

大管家网上建材超市
装修装潢建材一站式购物
http://www.homemaster.cn
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


Re: [Zope3-Users] Re: Does zope cache authentication?

2007-09-22 Thread Jodok Batlogg


On 22.09.2007, at 19:16, Philipp von Weitershausen wrote:


Jodok Batlogg wrote:

I have written a custom authenticator in my application to
authenticate a login against a PostgreSQL database. In the site I  
have

configured a PAU with a session credentials plugin and my custom
authenticator plugin.

I found out that with configuration, EVERY browser request is
triggering my custom authenticator, which means a query of the
database. I'd rather expect only the first login will send a  
database

request, and before one logs out, subsequent requests will no longer
be authenticated.

exactly, that's the default behavior. and it needs to be that way.
in case the credentials are beeing changed or privileges are  
beeing  revoked there are several use cases where you can't cache.

Does the PAU have a mechanism to cache the authentication before the
user is logged out? Otherwise the authentication would be a highly
inefficient process.

you need to implement caching on your own...
just do something like:
from zope.app.cache.ram import RAMCache
authCache = RAMCache()
key = {'user': credentials['login'].encode('utf-8'), 'pass':  
credentials['password'].encode('utf-8')}

result = authCache.query(self, key=key)
if result is None:
# perform database lookup
authCache.set(result, self, key=key)
return result


What's with the encoding to utf-8? Coudln't you simply use unicode?


well the snipped was just copied from our code. probably we receive  
the password somehow different.

it should be possible to use unicode

jodok



Note that you can also use sessions.


--
http://worldcookery.com -- Professional Zope documentation and  
training


___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users


--
Readability counts.
  -- The Zen of Python, by Tim Peters

Jodok Batlogg, Lovely Systems
Schmelzhütterstraße 26a, 6850 Dornbirn, Austria
phone: +43 5572 908060, fax: +43 5572 908060-77




smime.p7s
Description: S/MIME cryptographic signature
___
Zope3-users mailing list
Zope3-users@zope.org
http://mail.zope.org/mailman/listinfo/zope3-users