From 98b16d4655d0755894ada55f6b6accdef82cb407 Mon Sep 17 00:00:00 2001 From: default Date: Sat, 1 Jun 2024 19:31:45 +0200 Subject: [PATCH] [FIX] : patch odoo get_request from odoo.http, allowing '/oauth/userinfo' GET request with content-type:application/json --- galicea_openid_connect/controllers/main.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/galicea_openid_connect/controllers/main.py b/galicea_openid_connect/controllers/main.py index 423cac6..ffd9e1b 100644 --- a/galicea_openid_connect/controllers/main.py +++ b/galicea_openid_connect/controllers/main.py @@ -410,3 +410,23 @@ class Main(http.Controller): response=None, status=302, ) + + +from odoo.http import Root, HttpRequest + +def patch_get_request(f): + """ + Monkey Patching : + escaping classic odoo behavior in a specific situation : + in order to allow /oauth/userinfo GET request to be accepted + with content-type = application/json + """ + def patched(self, httprequest): + if httprequest.path == "/oauth/userinfo" and httprequest.method == "GET": + return HttpRequest(httprequest) + return f(self, httprequest) + + return patched + + +Root.get_request = patch_get_request(Root.get_request)