mirror of
https://github.com/imgfloat/server.git
synced 2026-02-05 03:39:26 +00:00
Add log
This commit is contained in:
@@ -3,6 +3,8 @@ package com.imgfloat.app.config;
|
|||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.http.client.ClientHttpResponse;
|
import org.springframework.http.client.ClientHttpResponse;
|
||||||
import org.springframework.http.converter.HttpMessageNotReadableException;
|
import org.springframework.http.converter.HttpMessageNotReadableException;
|
||||||
import org.springframework.security.oauth2.client.http.OAuth2ErrorResponseErrorHandler;
|
import org.springframework.security.oauth2.client.http.OAuth2ErrorResponseErrorHandler;
|
||||||
@@ -20,18 +22,25 @@ import org.springframework.util.StreamUtils;
|
|||||||
*/
|
*/
|
||||||
class TwitchOAuth2ErrorResponseErrorHandler extends OAuth2ErrorResponseErrorHandler {
|
class TwitchOAuth2ErrorResponseErrorHandler extends OAuth2ErrorResponseErrorHandler {
|
||||||
|
|
||||||
|
private static final Logger LOG = LoggerFactory.getLogger(TwitchOAuth2ErrorResponseErrorHandler.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleError(ClientHttpResponse response) throws IOException {
|
public void handleError(ClientHttpResponse response) throws IOException {
|
||||||
try {
|
try {
|
||||||
super.handleError(response);
|
super.handleError(response);
|
||||||
} catch (HttpMessageNotReadableException ex) {
|
} 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() ? "<empty body>" : body,
|
||||||
|
ex);
|
||||||
|
throw asAuthorizationException(body, ex);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private OAuth2AuthorizationException asAuthorizationException(ClientHttpResponse response,
|
private OAuth2AuthorizationException asAuthorizationException(String body,
|
||||||
HttpMessageNotReadableException ex) throws IOException {
|
HttpMessageNotReadableException ex) {
|
||||||
String body = StreamUtils.copyToString(response.getBody(), StandardCharsets.UTF_8);
|
|
||||||
String description = "Failed to parse Twitch OAuth error response" + (body.isBlank() ? "." : ": " + body);
|
String description = "Failed to parse Twitch OAuth error response" + (body.isBlank() ? "." : ": " + body);
|
||||||
OAuth2Error oauth2Error = new OAuth2Error("invalid_token_response", description, null);
|
OAuth2Error oauth2Error = new OAuth2Error("invalid_token_response", description, null);
|
||||||
return new OAuth2AuthorizationException(oauth2Error, ex);
|
return new OAuth2AuthorizationException(oauth2Error, ex);
|
||||||
|
|||||||
Reference in New Issue
Block a user