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(
|