diff --git a/changelog.d/9426.bugfix b/changelog.d/9426.bugfix new file mode 100644 index 000000000000..a852a315adf5 --- /dev/null +++ b/changelog.d/9426.bugfix @@ -0,0 +1 @@ +The `ui_auth.session_timeout` configuration setting can now be specified in terms of number of seconds/minutes/etc/. Contributed by Rishabh Arya. diff --git a/docs/sample_config.yaml b/docs/sample_config.yaml index 13a6f045f9d5..52380dfb0496 100644 --- a/docs/sample_config.yaml +++ b/docs/sample_config.yaml @@ -2228,8 +2228,8 @@ password_config: #require_uppercase: true ui_auth: - # The number of milliseconds to allow a user-interactive authentication - # session to be active. + # The amount of time to allow a user-interactive authentication session + # to be active. # # This defaults to 0, meaning the user is queried for their credentials # before every action, but this can be overridden to allow a single @@ -2240,7 +2240,7 @@ ui_auth: # Uncomment below to allow for credential validation to last for 15 # seconds. # - #session_timeout: 15000 + #session_timeout: "15s" # Configuration for sending emails from Synapse. diff --git a/synapse/config/auth.py b/synapse/config/auth.py index 7fa64b821a1d..9aabaadf9e54 100644 --- a/synapse/config/auth.py +++ b/synapse/config/auth.py @@ -37,7 +37,9 @@ def read_config(self, config, **kwargs): # User-interactive authentication ui_auth = config.get("ui_auth") or {} - self.ui_auth_session_timeout = ui_auth.get("session_timeout", 0) + self.ui_auth_session_timeout = self.parse_duration( + ui_auth.get("session_timeout", 0) + ) def generate_config_section(self, config_dir_path, server_name, **kwargs): return """\ @@ -93,8 +95,8 @@ def generate_config_section(self, config_dir_path, server_name, **kwargs): #require_uppercase: true ui_auth: - # The number of milliseconds to allow a user-interactive authentication - # session to be active. + # The amount of time to allow a user-interactive authentication session + # to be active. # # This defaults to 0, meaning the user is queried for their credentials # before every action, but this can be overridden to allow a single @@ -105,5 +107,5 @@ def generate_config_section(self, config_dir_path, server_name, **kwargs): # Uncomment below to allow for credential validation to last for 15 # seconds. # - #session_timeout: 15000 + #session_timeout: "15s" """ diff --git a/tests/rest/client/v2_alpha/test_auth.py b/tests/rest/client/v2_alpha/test_auth.py index 501f09203fe1..c26ad824f7a4 100644 --- a/tests/rest/client/v2_alpha/test_auth.py +++ b/tests/rest/client/v2_alpha/test_auth.py @@ -343,7 +343,7 @@ def test_cannot_change_uri(self): }, ) - @unittest.override_config({"ui_auth": {"session_timeout": 5 * 1000}}) + @unittest.override_config({"ui_auth": {"session_timeout": "5s"}}) def test_can_reuse_session(self): """ The session can be reused if configured.