Browse Source

[FIX] allow ``/oauth/userinfo`` GET request with json content-type

This is required by some services (like ``outline``)
default 7 months ago
parent
commit
d4f1f83af2
  1. 26
      galicea_openid_connect/controllers/main.py

26
galicea_openid_connect/controllers/main.py

@ -410,3 +410,29 @@ 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