Как избежать утечки параметров моего URL-адреса с помощью исключения ResourceAccessException шаблона отдыха? - PullRequest
0 голосов
/ 05 августа 2020

У меня есть партнер, который может быть отключен на пару секунд, и мы хотим зарегистрировать неудачную попытку.

Затем у меня простой звонок:

restTemplate.getForObject("https://myurl/{param}", Response.class, paramValue);

Проблема заключается в том, что если что-то не так, полностью URL будет зарегистрировано в исключении, например:

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "https://myurl/paramValue".

Мой вопрос в том, как я могу избежать того, чтобы значение параметра было доступно в сообщении об исключении, потому что это может может привести к утечке важных данных.

Конечно, я всегда могу вручную обработать исключение, но я не хотел терять трассировку стека. Насколько я понимаю, он должен иметь возможность настроить обработчик RestTemplate, чтобы он не регистрировал расширенный URL-адрес.

1 Ответ

0 голосов
/ 05 августа 2020

Вы можете поймать исключение и сгенерировать новое исключение с измененным сообщением, а все остальное будет таким же (включая трассировку стека), как у пойманного.

try {
  someObject.someMethod();
} catch (ResourceAccessException oldEx) {
  newEx = new ResourceAccessException("newMessage", oldEx.getCause(), true, true);
  newEx.setStacTrace(oldEx.getStackTrace());
  throw newEx;
}
...