mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-10 20:45:00 -04:00
Correctly initialise the synapse_user_logins
metric. (#10677)
Fix a bug where the prometheus metrics for SSO logins wouldn't be initialised until the first user logged in with a given auth provider.
This commit is contained in:
parent
86415f162d
commit
15db8b7c7f
4 changed files with 44 additions and 6 deletions
|
@ -104,6 +104,12 @@ class LoginRestServlet(RestServlet):
|
|||
burst_count=self.hs.config.rc_login_account.burst_count,
|
||||
)
|
||||
|
||||
# ensure the CAS/SAML/OIDC handlers are loaded on this worker instance.
|
||||
# The reason for this is to ensure that the auth_provider_ids are registered
|
||||
# with SsoHandler, which in turn ensures that the login/registration prometheus
|
||||
# counters are initialised for the auth_provider_ids.
|
||||
_load_sso_handlers(hs)
|
||||
|
||||
def on_GET(self, request: SynapseRequest):
|
||||
flows = []
|
||||
if self.jwt_enabled:
|
||||
|
@ -499,12 +505,7 @@ class SsoRedirectServlet(RestServlet):
|
|||
def __init__(self, hs: "HomeServer"):
|
||||
# make sure that the relevant handlers are instantiated, so that they
|
||||
# register themselves with the main SSOHandler.
|
||||
if hs.config.cas_enabled:
|
||||
hs.get_cas_handler()
|
||||
if hs.config.saml2_enabled:
|
||||
hs.get_saml_handler()
|
||||
if hs.config.oidc_enabled:
|
||||
hs.get_oidc_handler()
|
||||
_load_sso_handlers(hs)
|
||||
self._sso_handler = hs.get_sso_handler()
|
||||
self._msc2858_enabled = hs.config.experimental.msc2858_enabled
|
||||
self._public_baseurl = hs.config.public_baseurl
|
||||
|
@ -598,3 +599,19 @@ def register_servlets(hs, http_server):
|
|||
SsoRedirectServlet(hs).register(http_server)
|
||||
if hs.config.cas_enabled:
|
||||
CasTicketServlet(hs).register(http_server)
|
||||
|
||||
|
||||
def _load_sso_handlers(hs: "HomeServer"):
|
||||
"""Ensure that the SSO handlers are loaded, if they are enabled by configuration.
|
||||
|
||||
This is mostly useful to ensure that the CAS/SAML/OIDC handlers register themselves
|
||||
with the main SsoHandler.
|
||||
|
||||
It's safe to call this multiple times.
|
||||
"""
|
||||
if hs.config.cas.cas_enabled:
|
||||
hs.get_cas_handler()
|
||||
if hs.config.saml2.saml2_enabled:
|
||||
hs.get_saml_handler()
|
||||
if hs.config.oidc.oidc_enabled:
|
||||
hs.get_oidc_handler()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue