diff --git a/aikido_firewall/context/__init__.py b/aikido_firewall/context/__init__.py index ce6862fbe..cc44696a0 100644 --- a/aikido_firewall/context/__init__.py +++ b/aikido_firewall/context/__init__.py @@ -92,7 +92,10 @@ def set_flask_attrs(self, req): """Set properties that are specific to flask""" self.remote_address = req.remote_addr self.url = req.url - self.body = req.form.to_dict() + if req.is_json: + self.body = req.json + else: + self.body = req.form.to_dict() self.query = req.args.to_dict() self.cookies = req.cookies.to_dict() diff --git a/aikido_firewall/context/init_test.py b/aikido_firewall/context/init_test.py index 829e3e237..87a40391e 100644 --- a/aikido_firewall/context/init_test.py +++ b/aikido_firewall/context/init_test.py @@ -29,6 +29,7 @@ def test_context_init_flask(mocker): req.method = "GET" req.remote_addr = "127.0.0.1" req.url = "http://example.com" + req.is_json = False req.form.to_dict.return_value = {"key": "value"} req.headers = {"Content-Type": "application/json"} req.args.to_dict.return_value = {"key": "value"}