From 8ec66920343ede1b4e9e36c1de6b1c0c7b9ea3bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20Kr=C3=BChlmann?= Date: Thu, 4 Dec 2025 13:28:45 +0100 Subject: [PATCH] Add log --- .../TwitchOAuth2ErrorResponseErrorHandler.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/imgfloat/app/config/TwitchOAuth2ErrorResponseErrorHandler.java b/src/main/java/com/imgfloat/app/config/TwitchOAuth2ErrorResponseErrorHandler.java index a1223d3..cb0f3f8 100644 --- a/src/main/java/com/imgfloat/app/config/TwitchOAuth2ErrorResponseErrorHandler.java +++ b/src/main/java/com/imgfloat/app/config/TwitchOAuth2ErrorResponseErrorHandler.java @@ -3,6 +3,8 @@ package com.imgfloat.app.config; import java.io.IOException; import java.nio.charset.StandardCharsets; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.http.client.ClientHttpResponse; import org.springframework.http.converter.HttpMessageNotReadableException; import org.springframework.security.oauth2.client.http.OAuth2ErrorResponseErrorHandler; @@ -20,18 +22,25 @@ import org.springframework.util.StreamUtils; */ class TwitchOAuth2ErrorResponseErrorHandler extends OAuth2ErrorResponseErrorHandler { + private static final Logger LOG = LoggerFactory.getLogger(TwitchOAuth2ErrorResponseErrorHandler.class); + @Override public void handleError(ClientHttpResponse response) throws IOException { try { super.handleError(response); } catch (HttpMessageNotReadableException ex) { - throw asAuthorizationException(response, ex); + String body = StreamUtils.copyToString(response.getBody(), StandardCharsets.UTF_8); + LOG.warn("Failed to parse Twitch OAuth error response (status: {}, headers: {}): {}", + response.getStatusCode(), + response.getHeaders(), + body.isBlank() ? "" : body, + ex); + throw asAuthorizationException(body, ex); } } - private OAuth2AuthorizationException asAuthorizationException(ClientHttpResponse response, - HttpMessageNotReadableException ex) throws IOException { - String body = StreamUtils.copyToString(response.getBody(), StandardCharsets.UTF_8); + private OAuth2AuthorizationException asAuthorizationException(String body, + HttpMessageNotReadableException ex) { String description = "Failed to parse Twitch OAuth error response" + (body.isBlank() ? "." : ": " + body); OAuth2Error oauth2Error = new OAuth2Error("invalid_token_response", description, null); return new OAuth2AuthorizationException(oauth2Error, ex);