summary refs log tree commit diff
path: root/synapse/config/password_auth_providers.py
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2020-12-08 14:04:35 +0000
committerGitHub <noreply@github.com>2020-12-08 14:04:35 +0000
commitab7a24cc6bbffa5ba67b42731c45b1d4d33f3ae3 (patch)
tree9aeefb42b2c5871847505fc50f58127c7b605ebb /synapse/config/password_auth_providers.py
parentSimplify the flow for SSO UIA (#8881) (diff)
downloadsynapse-ab7a24cc6bbffa5ba67b42731c45b1d4d33f3ae3.tar.xz
Better formatting for config errors from modules (#8874)
The idea is that the parse_config method of extension modules can raise either a ConfigError or a JsonValidationError,
and it will be magically turned into a legible error message. There's a few components to it:

* Separating the "path" and the "message" parts of a ConfigError, so that we can fiddle with the path bit to turn it
   into an absolute path.
* Generally improving the way ConfigErrors get printed.
* Passing in the config path to load_module so that it can wrap any exceptions that get caught appropriately.
Diffstat (limited to 'synapse/config/password_auth_providers.py')
-rw-r--r--synapse/config/password_auth_providers.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/synapse/config/password_auth_providers.py b/synapse/config/password_auth_providers.py
index 4fda8ae987..85d07c4f8f 100644
--- a/synapse/config/password_auth_providers.py
+++ b/synapse/config/password_auth_providers.py
@@ -36,7 +36,7 @@ class PasswordAuthProviderConfig(Config):
             providers.append({"module": LDAP_PROVIDER, "config": ldap_config})
 
         providers.extend(config.get("password_providers") or [])
-        for provider in providers:
+        for i, provider in enumerate(providers):
             mod_name = provider["module"]
 
             # This is for backwards compat when the ldap auth provider resided
@@ -45,7 +45,8 @@ class PasswordAuthProviderConfig(Config):
                 mod_name = LDAP_PROVIDER
 
             (provider_class, provider_config) = load_module(
-                {"module": mod_name, "config": provider["config"]}
+                {"module": mod_name, "config": provider["config"]},
+                ("password_providers", "<item %i>" % i),
             )
 
             self.password_providers.append((provider_class, provider_config))