summary refs log tree commit diff
path: root/synapse/config/cas.py
diff options
context:
space:
mode:
authorPatrick Cloke <patrickc@matrix.org>2021-02-11 11:56:03 -0500
committerPatrick Cloke <patrickc@matrix.org>2021-02-11 11:56:03 -0500
commit2c9b4a5f16b7950e7ebb2e5f445e7ae925e61113 (patch)
tree78e2159e896bb99e7585739c2ed2e4488447bda7 /synapse/config/cas.py
parentEnsure that we never stop reconnecting to redis (#9391) (diff)
parentClarify when new ratelimiting was added. (diff)
downloadsynapse-2c9b4a5f16b7950e7ebb2e5f445e7ae925e61113.tar.xz
Merge tag 'v1.27.0rc2' into develop
Synapse 1.27.0rc2 (2021-02-11)
==============================

Features
--------

- Further improvements to the user experience of registration via single sign-on. ([\#9297](https://github.com/matrix-org/synapse/issues/9297))

Bugfixes
--------

- Fix ratelimiting introduced in v1.27.0rc1 for invites to respect the `ratelimit` flag on application services. ([\#9302](https://github.com/matrix-org/synapse/issues/9302))
- Do not automatically calculate `public_baseurl` since it can be wrong in some situations. Reverts behaviour introduced in v1.26.0. ([\#9313](https://github.com/matrix-org/synapse/issues/9313))

Improved Documentation
----------------------

- Clarify the sample configuration for changes made to the template loading code. ([\#9310](https://github.com/matrix-org/synapse/issues/9310))
Diffstat (limited to 'synapse/config/cas.py')
-rw-r--r--synapse/config/cas.py16
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(