Skip to content

Redact auth headers in request logs (CurlLogger + ktor Logging) - #27

Open
HAll3LUJAH-origin wants to merge 2 commits into
maxrave-dev:multiplatformfrom
HAll3LUJAH-origin:redact-curl-logger-headers
Open

Redact auth headers in request logs (CurlLogger + ktor Logging)#27
HAll3LUJAH-origin wants to merge 2 commits into
maxrave-dev:multiplatformfrom
HAll3LUJAH-origin:redact-curl-logger-headers

Conversation

@HAll3LUJAH-origin

Copy link
Copy Markdown
  • Ytmusic, SpotifyClient and SimpMusicLyrics install CurlLogger, and Ytmusic/SpotifyClient
    additionally install ktor's built-in Logging plugin at level = LogLevel.ALL right next to it.
    Neither had header redaction configured, so every logged request (debug builds / verbose
    logging) printed the raw Cookie/Authorization header in full - the user's YouTube session
    cookie, Spotify sp_dc cookie and access token, and Apple Music bearer token - through two
    separate logging paths at once.

  • CurlLoggerConfig.redactHeaders already exists for exactly this but was unused by every caller,
    and ktor's Logging plugin has the equivalent sanitizeHeader mechanism, also unused. Wired up
    both with the same header set: Cookie + Authorization everywhere, plus Client-Token for Spotify
    and X-HMAC for SimpMusicLyrics' signed write endpoints.

HAll3LUJAH added 2 commits August 17, 2026 17:17
Ytmusic, SpotifyClient and SimpMusicLyrics install CurlLogger with no
redactHeaders, so every logged request (debug builds / verbose
logging) printed a full copy-paste-able curl command including the
raw Cookie/Authorization header - the user's YouTube session cookie,
Spotify sp_dc cookie and access token, and Apple Music bearer token.
CurlLoggerConfig.redactHeaders already exists for exactly this but was
unused by every caller. Wire it up: Cookie + Authorization everywhere,
plus Client-Token for Spotify and X-HMAC for SimpMusicLyrics' signed
write endpoints.
Ytmusic and SpotifyClient also install ktor's Logging plugin at
level = LogLevel.ALL right next to CurlLogger, which logs headers
through its own separate mechanism (sanitizeHeader) - unset, same
leak as the CurlLogger call sites this branch already fixed. Wire up
sanitizeHeader with the same header set.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant