Example #1
0
 async def info_options(self, request):
     resp = web.Response(status=204)
     resp.headers[hdrs.CONTENT_TYPE] = "application/json;charset=UTF-8"
     resp.headers[hdrs.CACHE_CONTROL] = CACHE_CONTROL
     resp.headers[hdrs.ACCESS_CONTROL_ALLOW_METHODS] = "OPTIONS, GET"
     resp.headers.extend(cors_headers(request.headers))
     resp.headers.extend(cache_headers())
     resp.headers.extend(session_cookie(request))
     return resp
Example #2
0
 def info_options(self, request):
     resp = web.Response(status=204, content_type='application/json')
     resp.headers[hdrs.CACHE_CONTROL] = (
         'no-store, no-cache, must-revalidate, max-age=0')
     resp.headers[hdrs.ACCESS_CONTROL_ALLOW_METHODS] = 'OPTIONS, GET'
     resp.headers.extend(cors_headers(request.headers))
     resp.headers.extend(cache_headers())
     resp.headers.extend(session_cookie(request))
     return resp
Example #3
0
 async def info_options(self, request):
     resp = web.Response(status=204)
     resp.headers[hdrs.CONTENT_TYPE] = "application/json;charset=UTF-8"
     resp.headers[hdrs.CACHE_CONTROL] = CACHE_CONTROL
     resp.headers[hdrs.ACCESS_CONTROL_ALLOW_METHODS] = "OPTIONS, GET"
     resp.headers.extend(cors_headers(request.headers))
     resp.headers.extend(cache_headers())
     resp.headers.extend(session_cookie(request))
     return resp
Example #4
0
 def info_options(self, request):
     resp = web.Response(
         status=204, content_type='application/json; charset=UTF-8')
     resp.headers[hdrs.CACHE_CONTROL] = (
         'no-store, no-cache, must-revalidate, max-age=0')
     resp.headers[hdrs.ACCESS_CONTROL_ALLOW_METHODS] = 'OPTIONS, GET'
     resp.headers.extend(cors_headers(request.headers))
     resp.headers.extend(cache_headers())
     resp.headers.extend(session_cookie(request))
     return resp
Example #5
0
    async def handler(self, request):
        info = request.match_info

        # lookup transport
        tid = info["transport"]

        if tid not in self.handlers or tid in self.disable_transports:
            return web.HTTPNotFound()

        create, transport = self.handlers[tid]

        # session
        manager = self.manager
        if not manager.started:
            manager.start()

        sid = info["session"]
        if not sid or "." in sid or "." in info["server"]:
            return web.HTTPNotFound()

        try:
            session = manager.get(sid, create, request=request)
        except KeyError:
            return web.HTTPNotFound(headers=session_cookie(request))

        t = transport(manager, session, request)
        try:
            return await t.process()
        except asyncio.CancelledError:
            raise
        except web.HTTPException as exc:
            return exc
        except Exception as exc:
            log.exception("Exception in transport: %s" % tid)
            if manager.is_acquired(session):
                await manager.release(session)
            return web.HTTPInternalServerError()
Example #6
0
    def handler(self, request):
        info = request.match_info

        # lookup transport
        tid = info['transport']

        if tid not in self.handlers or tid in self.disable_transports:
            return web.HTTPNotFound()

        create, transport = self.handlers[tid]

        # session
        manager = self.manager
        if not manager.started:
            manager.start()

        sid = info['session']
        if not sid or '.' in sid or '.' in info['server']:
            return web.HTTPNotFound()

        try:
            session = manager.get(sid, create, request=request)
        except KeyError:
            return web.HTTPNotFound(headers=session_cookie(request))

        t = transport(manager, session, request)
        try:
            return (yield from t.process())
        except asyncio.CancelledError:
            raise
        except web.HTTPException as exc:
            return exc
        except Exception as exc:
            log.exception('Exception in transport: %s' % tid)
            if manager.is_acquired(session):
                yield from manager.release(session)
            return web.HTTPInternalServerError()