diff options
Diffstat (limited to 'synapse/config/cas.py')
-rw-r--r-- | synapse/config/cas.py | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/synapse/config/cas.py b/synapse/config/cas.py index daea848d24..dbf5085965 100644 --- a/synapse/config/cas.py +++ b/synapse/config/cas.py @@ -17,7 +17,7 @@ from typing import Any, List from synapse.config.sso import SsoAttributeRequirement -from ._base import Config +from ._base import Config, ConfigError from ._util import validate_config @@ -35,13 +35,15 @@ class CasConfig(Config): if self.cas_enabled: self.cas_server_url = cas_config["server_url"] - public_base_url = cas_config.get("service_url") or self.public_baseurl - if public_base_url[-1] != "/": - public_base_url += "/" + + # The public baseurl is required because it is used by the redirect + # template. + public_baseurl = self.public_baseurl + if not public_baseurl: + raise ConfigError("cas_config requires a public_baseurl to be set") + # TODO Update this to a _synapse URL. - self.cas_service_url = ( - public_base_url + "_matrix/client/r0/login/cas/ticket" - ) + self.cas_service_url = public_baseurl + "_matrix/client/r0/login/cas/ticket" self.cas_displayname_attribute = cas_config.get("displayname_attribute") required_attributes = cas_config.get("required_attributes") or {} self.cas_required_attributes = _parsed_required_attributes_def( |