Beispiel #1
0
def set_cookie(request: Request, response: Response, name: str, value: str):
    if request.app['config'].get('authn.cookie.secure'):
        cookie_secure: Optional[str] = 'yes'
    else:
        cookie_secure = None

    response.set_cookie(name, value, secure=cookie_secure, httponly='yes')
Beispiel #2
0
 def set(self, http_response: Response, user_id) -> None:
     session = self._gen_secret_session(user_id)
     http_response.set_cookie(
         SessionManager.session_name,
         value=session
     )
     return http_response
Beispiel #3
0
async def test_no_warn_small_cookie(buf: Any, writer: Any) -> None:
    resp = Response()
    resp.set_cookie("foo", "ÿ" + "8" * 4064, max_age=2600)  # No warning
    req = make_request("GET", "/", writer=writer)

    await resp.prepare(req)
    await resp.write_eof()

    cookie = re.search(b"Set-Cookie: (.*?)\r\n", buf).group(1)
    assert len(cookie) == 4096
Beispiel #4
0
 async def post(self, request):
     payload = await request.json()
     jsonschema.validate(payload,
                         AUTHENTICATE_CREATE,
                         format_checker=jsonschema.draft4_format_checker)
     payload = payload.get('data')
     user = await self.users.check_credentials(payload)
     result = await self.sessions.create(user)
     response = Response(text=json.dumps(result))
     response.content_type = 'application/json'
     response.set_status(201)
     response.set_cookie('SESSION', result['data']['id'], httponly=True)
     return response
Beispiel #5
0
async def test_warn_large_cookie(buf: Any, writer: Any) -> None:
    resp = Response()

    with pytest.warns(
            UserWarning,
            match=
            "The size of is too large, it might get ignored by the client.",
    ):
        resp.set_cookie("foo", "ÿ" + "8" * 4065, max_age=2600)
    req = make_request("GET", "/", writer=writer)

    await resp.prepare(req)
    await resp.write_eof()

    cookie = re.search(b"Set-Cookie: (.*?)\r\n", buf).group(1)
    assert len(cookie) == 4097
Beispiel #6
0
    def set_cookie(self, request: Request, response: Response, userid: str):

        key = request.app['cookie_key']
        value = urlsafe_b64encode(crypt(key, userid)).decode('utf-8')

        config = request.app['config']
        cookie_name: str = config.get('authn.cookie.id_name')
        cookie_max_age: int = config.get('authn.cookie.max_age')
        if config.get('authn.cookie.secure'):
            cookie_secure: Optional[str] = 'yes'
        else:
            cookie_secure = None

        logger.debug('Set cookie %s=%s', cookie_name, value)
        response.set_cookie(cookie_name,
                            value,
                            max_age=cookie_max_age,
                            secure=cookie_secure,
                            httponly='yes')
Beispiel #7
0
def make_json_response(
    result: Optional[Dict] = None,
    status: int = 200,
    set_cookies: Optional[Dict[str, str]] = None,
    wrap_result: bool = True,
) -> Response:

    response = Response(
        text=json.dumps(({
            "ok": (status == 200),
            "result": (result or {}),
        } if wrap_result else result),
                        sort_keys=True,
                        indent=4),
        status=status,
        content_type="application/json",
    )
    if set_cookies:
        for (key, value) in set_cookies.items():
            response.set_cookie(key, value)
    return response
Beispiel #8
0
 def set_cookie(self, response: web.Response) -> web.Response:
     response.set_cookie(name=self.AUTH_COOKIE_KEY,
                         value=self.user_token.access_token,
                         secure=True)
     return response
Beispiel #9
0
 async def set_dummy(response: web.Response):
     response.set_cookie('dummy', 'dummy-cookie')