Merge branch 'wild_domains' of https://github.com/mmerickel/pyramid into mmerickel-wild_domains
| | |
| | | Default: ``False``. Hide cookie from JavaScript by setting the |
| | | HttpOnly flag. Not honored by all browsers. |
| | | Optional. |
| | | |
| | | ``wild_domain`` |
| | | |
| | | Default: ``True``. An auth_tkt cookie will be generated for the |
| | | wildcard domain. |
| | | Optional. |
| | | """ |
| | | implements(IAuthenticationPolicy) |
| | | def __init__(self, |
| | |
| | | max_age=None, |
| | | path="/", |
| | | http_only=False, |
| | | wild_domain=True, |
| | | ): |
| | | self.cookie = AuthTktCookieHelper( |
| | | secret, |
| | |
| | | max_age=max_age, |
| | | http_only=http_only, |
| | | path=path, |
| | | wild_domain=wild_domain, |
| | | ) |
| | | self.callback = callback |
| | | |
| | |
| | | |
| | | def __init__(self, secret, cookie_name='auth_tkt', secure=False, |
| | | include_ip=False, timeout=None, reissue_time=None, |
| | | max_age=None, http_only=False, path="/"): |
| | | max_age=None, http_only=False, path="/", wild_domain=True): |
| | | self.secret = secret |
| | | self.cookie_name = cookie_name |
| | | self.include_ip = include_ip |
| | |
| | | self.max_age = max_age |
| | | self.http_only = http_only |
| | | self.path = path |
| | | self.wild_domain = wild_domain |
| | | |
| | | static_flags = [] |
| | | if self.secure: |
| | |
| | | max_age = '' |
| | | |
| | | cur_domain = environ.get('HTTP_HOST', environ.get('SERVER_NAME')) |
| | | wild_domain = '.' + cur_domain |
| | | |
| | | cookies = [ |
| | | ('Set-Cookie', '%s="%s"; Path=%s%s%s' % ( |
| | |
| | | ('Set-Cookie', '%s="%s"; Path=%s; Domain=%s%s%s' % ( |
| | | self.cookie_name, value, self.path, cur_domain, max_age, |
| | | self.static_flags)), |
| | | ('Set-Cookie', '%s="%s"; Path=%s; Domain=%s%s%s' % ( |
| | | self.cookie_name, value, self.path, wild_domain, max_age, |
| | | self.static_flags)) |
| | | ] |
| | | |
| | | if self.wild_domain: |
| | | wild_domain = '.' + cur_domain |
| | | cookies.append(('Set-Cookie', '%s="%s"; Path=%s; Domain=%s%s%s' % ( |
| | | self.cookie_name, value, self.path, wild_domain, max_age, |
| | | self.static_flags))) |
| | | |
| | | return cookies |
| | | |
| | | def identify(self, request): |
| | |
| | | self.failUnless('; Secure' in result[2][1]) |
| | | self.failUnless(result[2][1].startswith('auth_tkt=')) |
| | | |
| | | def test_remember_wild_domain_disabled(self): |
| | | plugin = self._makeOne('secret', wild_domain=False) |
| | | request = self._makeRequest() |
| | | result = plugin.remember(request, 'other') |
| | | self.assertEqual(len(result), 2) |
| | | |
| | | self.assertEqual(result[0][0], 'Set-Cookie') |
| | | self.assertTrue(result[0][1].endswith('; Path=/')) |
| | | self.failUnless(result[0][1].startswith('auth_tkt=')) |
| | | |
| | | self.assertEqual(result[1][0], 'Set-Cookie') |
| | | self.assertTrue(result[1][1].endswith('; Path=/; Domain=localhost')) |
| | | self.failUnless(result[1][1].startswith('auth_tkt=')) |
| | | |
| | | def test_remember_string_userid(self): |
| | | plugin = self._makeOne('secret') |
| | | request = self._makeRequest() |