Exemplo n.º 1
0
    def fetch(self, environ, params):
        try:
            host = "https://www.education-et-numerique.fr"
            path = "/jsboot.js/%s/gate.html" % (params['gate'])
            gate = requests.get(host + path, verify=False)

            resp = Controller().getResponse()
            resp.text = gate.content.decode('utf-8')
            resp.headers['Content-type'] = 'text/html'
        except Error:
            pass

        return Controller().getResponse(True)
Exemplo n.º 2
0
    def fetch(self, environ, params):
        try:
            req = Controller().getRequest()
            b = BlobFactory.get(params['bid'], params['release'])
            if not b:
                output.error('blob not found', 404)

            resp = Controller().getResponse()
            resp.headers['Content-Type'] = b.content_type
            resp.body = b.read()
        except Error:
            pass

        return Controller().getResponse(True)
Exemplo n.º 3
0
    def get(self, environ, params):
        try:
            req = Controller().getRequest()
            blobId = BlobFactory.getBlobIds(user=params["uid"], release="published", type="avatar")

            if not len(blobId):
                output.error("avatar not found", 404)

            blobId = blobId.pop()

            b = BlobFactory.get(blobId, "published")
            resp = Controller().getResponse()
            resp.headers["Content-Type"] = b.content_type
            resp.body = b.read()
        except Error:
            pass

        return Controller().getResponse(True)
Exemplo n.º 4
0
    def zebuit(self, environ, params):
        try:
            req = Controller().getRequest()
            wildResponse = Controller().getResponse()
            reqData = None

            _fileReadable = hasattr(req.body_file, 'read')
            _bodyLength = int(req.headers['Content-Length'] or 0)
            if req.method == 'POST' and _fileReadable and _bodyLength > 0:
                reqData = req.body

            sendHeaders = {}
            for (k, v) in req.headers.items():
                if not v:
                    continue

                if k.lower() in ['accept-encoding', 'keep-alive', 'content-length', 'transfer-encoding']:
                    continue

                if '_' in k:
                    continue

                sendHeaders[k] = v

            if req.method.lower() == 'get':
                data = None
            else:
                data = {}

            try:
                resp = requests.request(req.method, '%s%s' % (
                    'http://localhost:8082',
                    req.path_qs
                ), headers=sendHeaders, data=data, stream=False)
            except:
                output.error('Auth Backend fail', 503)

            if int(resp.status_code / 100) != 2:
                for (k, v) in resp.headers.items():
                    wildResponse.headers[k.lower()] = v
                
                if 'X-Requested-With' in req.headers and 'www-authenticate' in wildResponse.headers:
                    wildResponse.headers['X-WWW-Authenticate'] = wildResponse.headers['www-authenticate']
                    del wildResponse.headers['www-authenticate']

                output.success(resp.json(), resp.status_code)
                raise Error('break')

            for (k, v) in resp.headers.items():
                if 'x-lxxl' in k.lower():
                    sendHeaders[k] = v

            try:
                resp = requests.request(req.method, '%s%s' % (
                    'http://localhost:8083',
                    req.path_qs
                ), headers=sendHeaders, data=reqData, stream=False)
            except:
                output.error('Graph backend fail', 503)

            for (k, v) in resp.headers.items():
                wildResponse.headers[k] = v

            wildResponse = Controller().getResponse()
            wildResponse.body = resp.content
            wildResponse.status = resp.status_code

        except Error:
            pass

        return Controller().getResponse(True)