Esempio n. 1
0
    def test_cookie_no_request(self):
        from webob.cookies import CookieProfile

        cookie = CookieProfile("uns")

        with pytest.raises(ValueError):
            cookie.get_value()
Esempio n. 2
0
    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="/", wild_domain=True,
                 hashalg='md5', parent_domain=False, domain=None):

        serializer = _SimpleSerializer()

        self.cookie_profile = CookieProfile(
            cookie_name=cookie_name,
            secure=secure,
            max_age=max_age,
            httponly=http_only,
            path=path,
            serializer=serializer
        )

        self.secret = secret
        self.cookie_name = cookie_name
        self.secure = secure
        self.include_ip = include_ip
        self.timeout = timeout if timeout is None else int(timeout)
        self.reissue_time = reissue_time if reissue_time is None else int(reissue_time)
        self.max_age = max_age if max_age is None else int(max_age)
        self.wild_domain = wild_domain
        self.parent_domain = parent_domain
        self.domain = domain
        self.hashalg = hashalg
Esempio n. 3
0
def _adapter_for(name, profile):
    return match(
        Profile, {
            SignedProfile: (lambda config, secret, salt: SignedCookieProfile(
                secret, salt, name, **config)),
            UnsignedProfile: (lambda config: CookieProfile(name, **config))
        }, profile)
Esempio n. 4
0
    def makeOne(self, secret='seekrit', salt='salty', name='uns', **kw):
        if 'request' in kw:
            request = kw['request']
            del kw['request']
        else:
            request = self.makeOneRequest()

        from webob.cookies import SignedCookieProfile as CookieProfile
        return CookieProfile(secret, salt, name, **kw)(request)
Esempio n. 5
0
    def makeOne(self, name='uns', **kw):
        if 'request' in kw:
            request = kw['request']
            del kw['request']
        else:
            request = self.makeOneRequest()

        from webob.cookies import CookieProfile
        return CookieProfile(name, **kw)(request)
Esempio n. 6
0
    def makeOne(self, secret="seekrit", salt="salty", name="uns", **kw):
        if "request" in kw:
            request = kw["request"]
            del kw["request"]
        else:
            request = self.makeOneRequest()

        from webob.cookies import SignedCookieProfile as CookieProfile

        return CookieProfile(secret, salt, name, **kw)(request)
Esempio n. 7
0
    def makeOne(self, name="uns", **kw):
        if "request" in kw:
            request = kw["request"]
            del kw["request"]
        else:
            request = self.makeOneRequest()

        from webob.cookies import CookieProfile

        return CookieProfile(name, **kw)(request)
Esempio n. 8
0
    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="/",
        wild_domain=True,
        hashalg=None,
        parent_domain=False,
        domain=None,
        samesite='Lax',
    ):
        if hashalg is None:
            hashalg = 'md5'
            warnings.warn(
                'The default "hashalg" is "md5" and will change to "sha512" '
                'in Pyramid 2.0. To preserve the current behavior, '
                'explicitly pass hashalg="md5".',
                DeprecationWarning,
                stacklevel=1,
            )

        serializer = SimpleSerializer()

        self.cookie_profile = CookieProfile(
            cookie_name=cookie_name,
            secure=secure,
            max_age=max_age,
            httponly=http_only,
            path=path,
            serializer=serializer,
            samesite=samesite,
        )

        self.secret = secret
        self.cookie_name = cookie_name
        self.secure = secure
        self.include_ip = include_ip
        self.timeout = timeout if timeout is None else int(timeout)
        self.reissue_time = (reissue_time
                             if reissue_time is None else int(reissue_time))
        self.max_age = max_age if max_age is None else int(max_age)
        self.wild_domain = wild_domain
        self.parent_domain = parent_domain
        self.domain = domain
        self.hashalg = hashalg
Esempio n. 9
0
    def __init__(
        self,
        private_key,
        public_key=None,
        algorithm="HS512",
        leeway=0,
        expiration=None,
        default_claims=None,
        http_header="Authorization",
        auth_type="JWT",
        callback=None,
        json_encoder=None,
        audience=None,
        cookie_name=None,
        https_only=True,
        reissue_time=None,
        cookie_path=None,
    ):
        super(JWTCookieAuthenticationPolicy, self).__init__(
            private_key,
            public_key,
            algorithm,
            leeway,
            expiration,
            default_claims,
            http_header,
            auth_type,
            callback,
            json_encoder,
            audience,
        )

        self.https_only = https_only
        self.cookie_name = cookie_name or "Authorization"
        self.max_age = self.expiration and self.expiration.total_seconds()

        if reissue_time and isinstance(reissue_time, datetime.timedelta):
            reissue_time = reissue_time.total_seconds()
        self.reissue_time = reissue_time

        serializer = _SimpleSerializer()

        self.cookie_profile = CookieProfile(
            cookie_name=self.cookie_name,
            secure=self.https_only,
            max_age=self.max_age,
            httponly=True,
            path=cookie_path,
            serializer=serializer
        )
Esempio n. 10
0
    def bind(self, request):
        """ Bind a request to a copy of this instance and return it"""

        selfish = CookieProfile(
            self.get_cookie_name(request),
            self.secure,
            self.max_age,
            self.httponly,
            self.path,
            self.domains,
            self.serializer,
        )
        selfish.request = request
        return selfish
Esempio n. 11
0
 def __init__(self,
              cookie_name='csrf_token',
              secure=False,
              httponly=False,
              domain=None,
              max_age=None,
              path='/'):
     serializer = _SimpleSerializer()
     self.cookie_profile = CookieProfile(cookie_name=cookie_name,
                                         secure=secure,
                                         max_age=max_age,
                                         httponly=httponly,
                                         path=path,
                                         domains=[domain],
                                         serializer=serializer)
     self.cookie_name = cookie_name
Esempio n. 12
0
    def test_cookie_no_request(self):
        from webob.cookies import CookieProfile
        cookie = CookieProfile('uns')

        self.assertRaises(ValueError, cookie.get_value)
Esempio n. 13
0
    def __init__(
        self,
        private_key,
        public_key=None,
        algorithm="HS512",
        leeway=0,
        expiration=None,
        default_claims=None,
        http_header="Authorization",
        auth_type="JWT",
        callback=None,
        json_encoder=None,
        audience=None,
        cookie_name=None,
        https_only=True,
        samesite=None,
        reissue_time=None,
        cookie_path=None,
        accept_header=False,
        header_first=False,
        reissue_callback=None,
    ):
        super(JWTCookieAuthenticationPolicy, self).__init__(
            private_key,
            public_key,
            algorithm,
            leeway,
            expiration,
            default_claims,
            http_header,
            auth_type,
            callback,
            json_encoder,
            audience,
        )

        self.https_only = asbool(https_only)
        self.samesite = samesite
        self.cookie_name = cookie_name or "Authorization"
        self.max_age = self.expiration and self.expiration.total_seconds()

        if reissue_time and isinstance(reissue_time, datetime.timedelta):
            reissue_time = reissue_time.total_seconds()
        self.reissue_time = int(
            reissue_time) if reissue_time is not None else None
        self.accept_header = asbool(accept_header)
        self.header_first = asbool(header_first)

        def _default_reissue_callback(request, principal, **claims):
            return self.create_token(principal, self.expiration, self.audience,
                                     **claims)

        self.reissue_callback = reissue_callback or _default_reissue_callback

        self.cookie_profile = CookieProfile(
            cookie_name=self.cookie_name,
            secure=self.https_only,
            samesite=self.samesite,
            max_age=self.max_age,
            httponly=True,
            path=cookie_path,
        )
Esempio n. 14
0
 def get_profile(self, realm):
     if realm not in self._cache:
         self._cache[realm] = CookieProfile(self.prefix + realm,
                                            max_age=self.max_age)
     return self._cache.get(realm)