Skip to content
Snippets Groups Projects
Unverified Commit 42a8e813 authored by Richard van der Hoff's avatar Richard van der Hoff Committed by GitHub
Browse files

Add a check for duplicate IdP ids (#9184)

parent b5120f09
Branches
Tags
No related merge requests found
Emit an error at startup if different Identity Providers are configured with the same `idp_id`.
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
# limitations under the License. # limitations under the License.
import string import string
from collections import Counter
from typing import Iterable, Optional, Tuple, Type from typing import Iterable, Optional, Tuple, Type
import attr import attr
...@@ -43,6 +44,16 @@ class OIDCConfig(Config): ...@@ -43,6 +44,16 @@ class OIDCConfig(Config):
except DependencyException as e: except DependencyException as e:
raise ConfigError(e.message) from e raise ConfigError(e.message) from e
# check we don't have any duplicate idp_ids now. (The SSO handler will also
# check for duplicates when the REST listeners get registered, but that happens
# after synapse has forked so doesn't give nice errors.)
c = Counter([i.idp_id for i in self.oidc_providers])
for idp_id, count in c.items():
if count > 1:
raise ConfigError(
"Multiple OIDC providers have the idp_id %r." % idp_id
)
public_baseurl = self.public_baseurl public_baseurl = self.public_baseurl
self.oidc_callback_url = public_baseurl + "_synapse/oidc/callback" self.oidc_callback_url = public_baseurl + "_synapse/oidc/callback"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment