From ff07f078fa9916630dd8119a87cc9795810fb159 Mon Sep 17 00:00:00 2001 From: Kiril Vangelovski Date: Mon, 16 Apr 2018 10:29:13 +0200 Subject: [PATCH] [FIX] base: reason json payload using get_data Replace `httprequest.stream.read()` by `httprequest.get_data()` so the payload content remains available: get_data stores the request body (by default) so it remains available for alternative processing or checks (MAC checks for webhook validations for instance). With `stream.read()`, once the data is read if it's not stored separately it is lost. --- doc/cla/individual/kirca.md | 1 + odoo/http.py | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/cla/individual/kirca.md b/doc/cla/individual/kirca.md index be2dea9c302..a53fcad358d 100644 --- a/doc/cla/individual/kirca.md +++ b/doc/cla/individual/kirca.md @@ -9,3 +9,4 @@ declaration. Signed, Kiril Vangelovski kiril@hacbee.com https://github.com/kirca +Kiril Vangelovski kiril@lambda-is.com https://github.com/kirca diff --git a/odoo/http.py b/odoo/http.py index 83505d2c36b..415111e18d7 100644 --- a/odoo/http.py +++ b/odoo/http.py @@ -603,7 +603,7 @@ class JsonRequest(WebRequest): request = self.session.pop('jsonp_request_%s' % (request_id,), '{}') else: # regular jsonrpc2 - request = self.httprequest.stream.read().decode(self.httprequest.charset) + request = self.httprequest.get_data().decode(self.httprequest.charset) # Read POST content or POST Form Data named "request" try: