[FIX] patch odoo get_request from odoo.http, to allow '/oauth/userinfo' pass a GET request with application-type JSON #2

Merged
vlab merged 1 commits from bgallet/galicea-odoo-addons-ecosystem:14.0-patch-get-request-odoo into 14.0 7 months ago
  1. 27
      galicea_openid_connect/controllers/main.py

27
galicea_openid_connect/controllers/main.py

@ -410,3 +410,30 @@ class Main(http.Controller):
response=None, response=None,
status=302, status=302,
) )
from odoo.http import Root, HttpRequest
def patch_get_request(f):
"""Allow ``/oauth/userinfo`` GET request to be accepted for outline
Outline (and probably other services) can implement OIDC by adding a
``content-type`` set to "application/json". This makes odoo 14 use
JsonRequest object that will refuse the request.
This is monkey-patching, and is not meant to be a final solution, but
only a temporary one.
"""
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)
Loading…
Cancel
Save