]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mgr/dashboard: allow Origin for CORS if present in config `cross_origin_url` 49429/head
authorAvan Thakkar <athakkar@redhat.com>
Thu, 8 Dec 2022 11:16:21 +0000 (16:46 +0530)
committerAvan Thakkar <athakkar@redhat.com>
Wed, 14 Dec 2022 13:54:13 +0000 (19:24 +0530)
Signed-off-by: Avan Thakkar <athakkar@redhat.com>
(cherry picked from commit 04cfd23122248a7262a29003b9e5b4c18edbfb5b)

src/pybind/mgr/dashboard/module.py

index 96f62178fda4d179a44b40c614a0323c93fc848c..3ea3cdfe9cf8bebe643fe8775ad9201fed709932 100644 (file)
@@ -248,16 +248,19 @@ class CherryPyConfig(object):
         resp_head = cherrypy.response.headers
 
         # Always set response headers necessary for 'simple' CORS.
-        req_header_origin_url = req_head.get('Access-Control-Allow-Origin')
+        req_header_cross_origin_url = req_head.get('Access-Control-Allow-Origin')
         cross_origin_urls = mgr.get_localized_module_option('cross_origin_url', '')
         cross_origin_url_list = [url.strip() for url in cross_origin_urls.split(',')]
-        if req_header_origin_url in cross_origin_url_list:
-            resp_head['Access-Control-Allow-Origin'] = req_header_origin_url
+        if req_header_cross_origin_url in cross_origin_url_list:
+            resp_head['Access-Control-Allow-Origin'] = req_header_cross_origin_url
         resp_head['Access-Control-Expose-Headers'] = 'GET, POST'
         resp_head['Access-Control-Allow-Credentials'] = 'true'
 
         # Non-simple CORS preflight request; short-circuit the normal handler.
         if cherrypy.request.method == 'OPTIONS':
+            req_header_origin_url = req_head.get('Origin')
+            if req_header_origin_url in cross_origin_url_list:
+                resp_head['Access-Control-Allow-Origin'] = req_header_origin_url
             ac_method = req_head.get('Access-Control-Request-Method', None)
 
             allowed_methods = ['GET', 'POST']