Я почти уверен, что вам не нужно ничего делать.Похоже, что это проблема укрепления, которая может не обновляться в этом сценарии использования.Существует механизм для исключения при работе с анализаторами кода - эти инструменты не всегда корректны.
Немного об обсуждении
Представьте себе, вы используете CloseableHttpClient
в сценарии, где не было бы @Bean
или HttpComponentsClientHttpRequestFactory
, тогда я бы сказалэто укрепление верно, потому что это само намерение использовать java.io.Closeable
.
Spring bean-компоненты обычно являются одноэлементными с намерением повторного использования экземпляров, поэтому fortify должна знать, что вы не создаете несколько экземпляров, и метод close()
для AutoCloseable будет вызываться при разрушении фабрики при завершении работы.
если вы посмотрите на код - org.springframework.http.client.HttpComponentsClientHttpRequestFactory
, это здесь.
/**
* Shutdown hook that closes the underlying
* {@link org.apache.http.conn.HttpClientConnectionManager ClientConnectionManager}'s
* connection pool, if any.
*/
@Override
public void destroy() throws Exception {
if (this.httpClient instanceof Closeable) {
((Closeable) this.httpClient).close();
}
}
Ваше укрепление смотрит на код изолированно, а не интегрированным образом, поэтому он помечается.