Robyn
Robyn copied to clipboard
@app.before_request()
Passing args in flask is not mandatory, it's convenient for me to use waf. Is it possible to modify this parameter to be optional?
Shadow Daemon is a web application firewall that intercepts requests at the application level. https://github.com/zecure/shadowd_python
from flask import Flask, request
from shadowd.flask_connector import InputFlask, OutputFlask, Connector
app = Flask(__name__)
@app.before_request
def before_req():
input = InputFlask(request)
output = OutputFlask()
Connector().start(input, output)
CORS
from flask import Blueprint, request, jsonify
apivid = Blueprint("apivid", __name__)
@apivid.before_request
def options():
if request.method == 'OPTIONS':
res = jsonify({'status': 'ok'})
res.headers['Access-Control-Allow-Origin'] = '*'
res.headers['Access-Control-Allow-Credentials'] = 'true'
res.headers['Access-Control-Allow-Methods'] = '*'
res.headers['Access-Control-Allow-Headers'] = 'Content-Type,Authorization'
res.headers['Access-Control-Expose-Headers'] = '*'
return res
No need to write a before_request() for each route
@mn3711698 , I am sorry but I don't understand what you mean here. Can you please explain a bit more?
flask code:
@app.before_request def before_req(): input = InputFlask(request) output = OutputFlask() Connector().start(input, output)
@apivid.before_request def options():
if request.method == 'OPTIONS':
res = jsonify({'status': 'ok'})
res.headers['Access-Control-Allow-Origin'] = '*'
res.headers['Access-Control-Allow-Credentials'] = 'true'
res.headers['Access-Control-Allow-Methods'] = '*'
res.headers['Access-Control-Allow-Headers'] = 'Content-Type,Authorization'
res.headers['Access-Control-Expose-Headers'] = '*'
return res
@apivid.route('') @apivid.route('') @apivid.route('') @apivid.route('') more
before_request is global,
robyn code:
@app.before_request(' endpoint') @app.before_request(' endpoint') @app.before_request(' endpoint') @app.before_request(' endpoint') @app.before_request(' endpoint')
before_request binds endpoint, which will increase the amount of code。 It is recommended that before_request be global
@sansyrox
@mn3711698 , thank you for reporting this. It is not possible to do this yet. But I love this idea and will try to add this feature ASAP :D
@mn3711698 , app.before_request()
works on global level now 😄