mirror of
https://git.anonymousland.org/anonymousland/synapse-product.git
synced 2025-05-06 16:04:57 -04:00
Preparatory refactoring of the SamlHandlerTestCase (#8938)
* move simple_async_mock to test_utils ... so that it can be re-used * Remove references to `SamlHandler._map_saml_response_to_user` from tests This method is going away, so we can no longer use it as a test point. Instead, factor out a higher-level method which takes a SAML object, and verify correct behaviour by mocking out `AuthHandler.complete_sso_login`. * changelog
This commit is contained in:
parent
b3a4b53587
commit
01333681bc
5 changed files with 126 additions and 54 deletions
|
@ -163,6 +163,29 @@ class SamlHandler(BaseHandler):
|
|||
return
|
||||
|
||||
logger.debug("SAML2 response: %s", saml2_auth.origxml)
|
||||
|
||||
await self._handle_authn_response(request, saml2_auth, relay_state)
|
||||
|
||||
async def _handle_authn_response(
|
||||
self,
|
||||
request: SynapseRequest,
|
||||
saml2_auth: saml2.response.AuthnResponse,
|
||||
relay_state: str,
|
||||
) -> None:
|
||||
"""Handle an AuthnResponse, having parsed it from the request params
|
||||
|
||||
Assumes that the signature on the response object has been checked. Maps
|
||||
the user onto an MXID, registering them if necessary, and returns a response
|
||||
to the browser.
|
||||
|
||||
Args:
|
||||
request: the incoming request from the browser. We'll respond to it with an
|
||||
HTML page or a redirect
|
||||
saml2_auth: the parsed AuthnResponse object
|
||||
relay_state: the RelayState query param, which encodes the URI to rediret
|
||||
back to
|
||||
"""
|
||||
|
||||
for assertion in saml2_auth.assertions:
|
||||
# kibana limits the length of a log field, whereas this is all rather
|
||||
# useful, so split it up.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue