]> git.apps.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
mgr/restful: allow disable http authentication
authorliushi <liu.shi@navercorp.com>
Fri, 14 Feb 2020 09:14:11 +0000 (17:14 +0800)
committerliushi <liu.shi@navercorp.com>
Mon, 17 Feb 2020 01:29:15 +0000 (09:29 +0800)
Signed-off-by: liushi <liu.shi@navercorp.com>
src/pybind/mgr/restful/decorators.py
src/pybind/mgr/restful/module.py

index abf36e339ab5fbc4a24e55ec0b037213145d0c27..d1d3fbcd5178e5562bfb8f505a591f6a31ad6c8c 100644 (file)
@@ -13,6 +13,9 @@ from . import context
 def auth(f):
     @wraps(f)
     def decorated(*args, **kwargs):
+        if not context.instance.enable_auth:
+            return f(*args, **kwargs)
+            
         if not request.authorization:
             response.status = 401
             response.headers['WWW-Authenticate'] = 'Basic realm="Login Required"'
index 049a09e147113de974ca2d6461a9b7851af6d97c..00e7676371bf1a9de90a65371ba38d362b8adf15 100644 (file)
@@ -198,6 +198,7 @@ class Module(MgrModule):
         {'name': 'server_addr'},
         {'name': 'server_port'},
         {'name': 'key_file'},
+        {'name': 'enable_auth', 'type': 'bool', 'default': True},
     ]
 
     COMMANDS = [
@@ -236,7 +237,7 @@ class Module(MgrModule):
         self.requests_lock = threading.RLock()
 
         self.keys = {}
-        self.disable_auth = False
+        self.enable_auth = True
 
         self.server = None
 
@@ -302,6 +303,8 @@ class Module(MgrModule):
         else:
             pkey_fname = self.get_localized_module_option('key_file')
 
+        self.enable_auth = self.get_localized_module_option('enable_auth', True)
+        
         if not cert_fname or not pkey_fname:
             raise CannotServe('no certificate configured')
         if not os.path.isfile(cert_fname):
@@ -385,6 +388,9 @@ class Module(MgrModule):
             # the command was not issued by me
             pass
 
+    def config_notify(self):
+        self.enable_auth = self.get_localized_module_option('enable_auth', True)
+
 
     def create_self_signed_cert(self):
         # create a key pair