synapse/tests
Eric Eastwood 0be7fe926d
Add debug log when HMAC incorrect (#18474)
Spawning from getting `HMAC incorrect` errors that seem unexplainable
except for the `registration_shared_secret` being misconfigured. It's
also possible my HMAC calculation is incorrect but every time I
double-check the result with the [known-good Python
example](553e124f76/docs/admin_api/register_api.md)
(which matches [Synapse's
source](24e849e483/synapse/rest/admin/users.py (L618-L633))),
it's as expected.

With these logs, we can actually debug whether
`registration_shared_secret` is being configured correctly or not.

It also helps specifically when using `registration_shared_secret_path`
since the default Synapse behavior (of creating the file and secret if
it doesn't exist) can mask deployment race condition where we would
start up Synapse before the `registration_shared_secret_path` file was
put in place:

> **`registration_shared_secret_path`**
>
> [...]
>
> If this file does not exist, Synapse will create a new shared secret
on startup and store it in this file.
>
> *-- [Synapse config
docs](6521406a37/docs/usage/configuration/config_documentation.md (registration_shared_secret_path))*


This only applies to the [`POST
/_synapse/admin/v1/register`](553e124f76/docs/admin_api/register_api.md)
endpoint but does log very sensitive information so we've made it so you
have to explicitly enable the logs by configuring
`synapse.rest.admin.users.registration_debug` (does not inherit root log
level) (via our new `ExplicitlyConfiguredLogger`)


`homeserver.yaml`
```yaml
log_config: "/myserver.log.config.yaml"
```

`myserver.log.config.yaml`
```yaml
version: 1

formatters:
    precise:
        format: '%(asctime)s - %(name)s - %(lineno)d - %(levelname)s - %(request)s - %(message)s'
        

handlers:
    # ... file/buffer handler (see `sample_log_config.yaml`)

    # A handler that writes logs to stderr. Unused by default, but can be used
    # instead of "buffer" and "file" in the logger handlers.
    console:
        class: logging.StreamHandler
        formatter: precise

loggers:
    synapse.storage.SQL:
        # beware: increasing this to DEBUG will make synapse log sensitive
        # information such as access tokens.
        level: INFO

    # Has to be explicitly configured as such. Will not inherit from the root level even if it's set to DEBUG
    synapse.rest.admin.users.registration_debug:
        level: DEBUG

root:
    level: INFO

    handlers: [console]

disable_existing_loggers: false
```
2025-07-22 11:09:45 -05:00
..
api Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
app Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
appservice Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
config Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
crypto Stop sending or processing the origin field in PDUs (#18418) 2025-07-01 12:04:23 +01:00
events Allow admins to see soft failed events (if they want to) (#18238) 2025-07-14 16:55:19 +01:00
federation Move device changes off the main process (#18581) 2025-07-18 09:06:14 +02:00
handlers Configure HTTP proxy in file config (#18686) 2025-07-22 10:33:00 -05:00
http Configure HTTP proxy in file config (#18686) 2025-07-22 10:33:00 -05:00
logging Add debug log when HMAC incorrect (#18474) 2025-07-22 11:09:45 -05:00
media Add ability to limit amount uploaded by a user (#18527) 2025-07-10 13:39:09 +01:00
metrics Clean up MetricsResource and Prometheus hacks (#18687) 2025-07-17 11:57:19 -05:00
module_api Move device changes off the main process (#18581) 2025-07-18 09:06:14 +02:00
push Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
replication Configure HTTP proxy in file config (#18686) 2025-07-22 10:33:00 -05:00
rest Add an option to issue redactions as admin user on admin redaction endpoint (#18671) 2025-07-21 16:40:45 +00:00
scripts Update license headers 2023-11-21 15:29:58 -05:00
server_notices Sliding Sync: Add cache to get_tags_for_room(...) (#17730) 2024-09-19 12:43:26 +01:00
state bugfix: calculate the PL for non-creators correctly in v11 rooms (#18547) 2025-06-13 12:56:39 +01:00
storage Add experimental and incomplete support for MSC4306: Thread Subscriptions. (#18674) 2025-07-21 15:54:28 +01:00
test_utils Bump ruff from 0.7.3 to 0.11.10 (#18451) 2025-05-20 15:23:30 +01:00
types Use immutabledict instead of frozendict (#15113) 2023-03-22 17:15:34 +00:00
util Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
__init__.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
server.py Unbreak unit tests with Twisted 25.5.0 by add parsePOSTFormSubmission arg to FakeSite (#18577) 2025-06-24 11:52:06 +01:00
test_distributor.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_event_auth.py Format files with Ruff (#17643) 2024-09-02 12:39:04 +01:00
test_mau.py Refactor cache metrics to be homeserver-scoped (#18604) 2025-07-16 16:04:57 -05:00
test_phone_home.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_rust.py Add missing type hints to tests. (#15027) 2023-02-08 19:52:37 +00:00
test_server.py Fix backwards compat for DirectServeJsonResource (#18600) 2025-06-26 14:05:48 +00:00
test_state.py Bump ruff from 0.7.3 to 0.11.10 (#18451) 2025-05-20 15:23:30 +01:00
test_terms_auth.py Update license headers 2023-11-21 15:29:58 -05:00
test_test_utils.py Correctly mention previous copyright (#16820) 2024-01-23 11:26:48 +00:00
test_types.py Format files with Ruff (#17643) 2024-09-02 12:39:04 +01:00
test_visibility.py Include user membership on events (#17282) 2024-06-13 21:45:54 +00:00
unittest.py Cleanup Python 3.8 leftovers (#17967) 2025-02-10 16:53:24 +00:00
utils.py Cleanup Python 3.8 leftovers (#17967) 2025-02-10 16:53:24 +00:00