[Repoze-checkins] r1647 - in repoze.who/trunk: . repoze/who repoze/who/plugins
Chris McDonough
chrism at agendaless.com
Fri Aug 22 10:47:05 EDT 2008
Author: Chris McDonough <chrism at agendaless.com>
Date: Fri Aug 22 10:47:05 2008
New Revision: 1647
Log:
Fix bug reported by Wiggy on IRC.
Modified:
repoze.who/trunk/CHANGES.txt
repoze.who/trunk/repoze/who/plugins/auth_tkt.py
repoze.who/trunk/repoze/who/tests.py
Modified: repoze.who/trunk/CHANGES.txt
==============================================================================
--- repoze.who/trunk/CHANGES.txt (original)
+++ repoze.who/trunk/CHANGES.txt Fri Aug 22 10:47:05 2008
@@ -1,6 +1,11 @@
repoze.who changes
==================
+Next release
+
+ - Fix auth_tkt plugin to set the same cookies in its ``remember`` method that
+ it does in its ``forget`` method.
+
1.0.4 (2008/08/22)
- Added a key to the '[general]' config section: ``remote_user_key``.
Modified: repoze.who/trunk/repoze/who/plugins/auth_tkt.py
==============================================================================
--- repoze.who/trunk/repoze/who/plugins/auth_tkt.py (original)
+++ repoze.who/trunk/repoze/who/plugins/auth_tkt.py Fri Aug 22 10:47:05 2008
@@ -29,7 +29,6 @@
self.cookie_name = cookie_name
self.include_ip = include_ip
self.secure = secure
- self.include_ip = include_ip
# IIdentifier
def identify(self, environ):
@@ -72,19 +71,23 @@
identity['userdata'] = user_data
return identity
- # IIdentifier
- def forget(self, environ, identity):
- # return a expires Set-Cookie header
+ def _get_cookies(self, environ, value):
cur_domain = environ.get('HTTP_HOST', environ.get('SERVER_NAME'))
wild_domain = '.' + cur_domain
cookies = [
- ('Set-Cookie', '%s=""; Path=/' % self.cookie_name),
- ('Set-Cookie', '%s=""; Path=/; Domain=%s' %
- (self.cookie_name, cur_domain)),
- ('Set-Cookie', '%s=""; Path=/; Domain=%s' %
- (self.cookie_name, wild_domain)),
+ ('Set-Cookie', '%s=%s; Path=/' % (
+ self.cookie_name, value)),
+ ('Set-Cookie', '%s=%s; Path=/; Domain=%s' % (
+ self.cookie_name, value, cur_domain)),
+ ('Set-Cookie', '%s=%s; Path=/; Domain=%s' % (
+ self.cookie_name, value, wild_domain))
]
return cookies
+
+ # IIdentifier
+ def forget(self, environ, identity):
+ # return a set of expires Set-Cookie headers
+ return self._get_cookies(environ, '""')
# IIdentifier
def remember(self, environ, identity):
@@ -134,11 +137,12 @@
cookie_name=self.cookie_name,
secure=self.secure)
new_cookie_value = ticket.cookie_value()
+
+ cur_domain = environ.get('HTTP_HOST', environ.get('SERVER_NAME'))
+ wild_domain = '.' + cur_domain
if old_cookie_value != new_cookie_value:
- # return a Set-Cookie header
- set_cookie = '%s=%s; Path=/;' % (self.cookie_name,
- new_cookie_value)
- return [('Set-Cookie', set_cookie)]
+ # return a set of Set-Cookie headers
+ return self._get_cookies(environ, new_cookie_value)
def __repr__(self):
return '<%s %s>' % (self.__class__.__name__, id(self))
Modified: repoze.who/trunk/repoze/who/tests.py
==============================================================================
--- repoze.who/trunk/repoze/who/tests.py (original)
+++ repoze.who/trunk/repoze/who/tests.py Fri Aug 22 10:47:05 2008
@@ -1521,8 +1521,16 @@
new_val = self._makeTicket(userid='other', userdata='userdata')
result = plugin.remember(environ, {'repoze.who.userid':'other',
'userdata':'userdata'})
- expected = 'auth_tkt=%s; Path=/;' % new_val
- self.assertEqual(result, [('Set-Cookie', expected)])
+ self.assertEqual(len(result), 3)
+ self.assertEqual(result[0],
+ ('Set-Cookie',
+ 'auth_tkt=%s; Path=/' % new_val))
+ self.assertEqual(result[1],
+ ('Set-Cookie',
+ 'auth_tkt=%s; Path=/; Domain=localhost' % new_val))
+ self.assertEqual(result[2],
+ ('Set-Cookie',
+ 'auth_tkt=%s; Path=/; Domain=.localhost' % new_val))
def test_remember_creds_different_int_userid(self):
plugin = self._makeOne('secret')
@@ -1532,8 +1540,10 @@
result = plugin.remember(environ, {'repoze.who.userid':1,
'userdata':''})
- expected = 'auth_tkt=%s; Path=/;' % new_val
- self.assertEqual(result, [('Set-Cookie', expected)])
+ self.assertEqual(len(result), 3)
+ self.assertEqual(result[0],
+ ('Set-Cookie',
+ 'auth_tkt=%s; Path=/' % new_val))
def test_remember_creds_different_long_userid(self):
plugin = self._makeOne('secret')
@@ -1542,9 +1552,10 @@
new_val = self._makeTicket(userid='1', userdata='userid_type:int')
result = plugin.remember(environ, {'repoze.who.userid':long(1),
'userdata':''})
-
- expected = 'auth_tkt=%s; Path=/;' % new_val
- self.assertEqual(result, [('Set-Cookie', expected)])
+ self.assertEqual(len(result), 3)
+ self.assertEqual(result[0],
+ ('Set-Cookie',
+ 'auth_tkt=%s; Path=/' % new_val))
def test_remember_creds_different_unicode_userid(self):
plugin = self._makeOne('secret')
@@ -1555,9 +1566,11 @@
userdata='userid_type:unicode')
result = plugin.remember(environ, {'repoze.who.userid':userid,
'userdata':''})
- expected = 'auth_tkt=%s; Path=/;' % new_val
self.assertEqual(type(result[0][1]), str)
- self.assertEqual(result, [('Set-Cookie', expected)])
+ self.assertEqual(len(result), 3)
+ self.assertEqual(result[0],
+ ('Set-Cookie',
+ 'auth_tkt=%s; Path=/' % new_val))
def test_forget(self):
plugin = self._makeOne('secret')
More information about the Repoze-checkins
mailing list