Browse Source

add option to log bad PUT request content

Peter Bieringer 1 năm trước cách đây
mục cha
commit
4678612194
4 tập tin đã thay đổi với 10 bổ sung0 xóa
  1. 3 0
      config
  2. 1 0
      radicale/app/__init__.py
  3. 2 0
      radicale/app/put.py
  4. 4 0
      radicale/config.py

+ 3 - 0
config

@@ -120,6 +120,9 @@
 # Don't include passwords in logs
 #mask_passwords = True
 
+# Log bad PUT request content
+#bad_put_request_content = False
+
 
 [headers]
 

+ 1 - 0
radicale/app/__init__.py

@@ -80,6 +80,7 @@ class Application(ApplicationPartDelete, ApplicationPartHead,
         """
         super().__init__(configuration)
         self._mask_passwords = configuration.get("logging", "mask_passwords")
+        self._bad_put_request_content = configuration.get("logging", "bad_put_request_content")
         self._auth_delay = configuration.get("auth", "delay")
         self._internal_server = configuration.get("server", "_internal_server")
         self._max_content_length = configuration.get(

+ 2 - 0
radicale/app/put.py

@@ -146,6 +146,8 @@ class ApplicationPartPut(ApplicationBase):
         except Exception as e:
             logger.warning(
                 "Bad PUT request on %r (read_components): %s", path, e, exc_info=True)
+            if self._bad_put_request_content:
+                logger.warning("Bad PUT request content of %r:\n%s", path, content)
             return httputils.BAD_REQUEST
         (prepared_items, prepared_tag, prepared_write_whole_collection,
          prepared_props, prepared_exc_info) = prepare(

+ 4 - 0
radicale/config.py

@@ -247,6 +247,10 @@ DEFAULT_CONFIG_SCHEMA: types.CONFIG_SCHEMA = OrderedDict([
             "value": "info",
             "help": "threshold for the logger",
             "type": logging_level}),
+        ("bad_put_request_content", {
+            "value": "False",
+            "help": "log bad PUT request content",
+            "type": bool}),
         ("mask_passwords", {
             "value": "True",
             "help": "mask passwords in logs",