Я использую пружинный загрузочный RestTemplate, чтобы сделать json-запрос к общедоступному сетевому IP-адресу, но он всегда отображает отключенные и повторно подключенные через минуту - PullRequest
0 голосов
/ 10 декабря 2018

Я использую пружинный загрузочный RestTemplate для отправки json-запроса на IP-адрес общедоступной сети, но он всегда отображает отключенное и повторно подключенное через минуту

Журнал следующим образом:

[] |[20181210 09: 11: 58.092] |[DEBUG] |[person-certify-7c46cfc9d-t4h7m] |[http-nio-8184-exec-10] |[org.apache.http.wire] |-> http-outgoing-15 << "конец потока" |[person-certify-7c46cfc9d-t4h7m] [person-certify] - |[] |[20181210 09: 11: 58.092] |[DEBUG] |[person-certify-7c46cfc9d-t4h7m] |[http-nio-8184-exec-10] |[oahicDefaultManagedHttpClientConnection] |-> http-outgoing-15: Закрыть соединение |[person-certify-7c46cfc9d-t4h7m] [person-certify] - |[] |[20181210 09: 12: 58.092] |[DEBUG] |[person-certify-7c46cfc9d-t4h7m] |[http-nio-8184-exec-10] |[oahicPoolingHttpClientConnectionManager] |-> Соединение арендовано: [id: 17] [route: {} -> http://118.25.31.127:80][total поддерживается: 1;выделенный маршрут: 1 из 1000;всего выделено: 2 из 1000] |

1 Ответ

0 голосов
/ 10 декабря 2018

Похоже, что ваши целевые серверы принимают только соединения TLSv1.2, вы должны убедиться, что ваш код выполняет соединения только с тем протоколом, который, по-видимому, ваш код не выполняет.Можете ли вы проверить свои журналы (режим отладки) и посмотреть, какая версия?Какую весеннюю версию вы используете?

Что-то подобное должно отображаться в журналах во время рукопожатия в режиме отладки ...

.....SSLConnectionSocketFactory - Enabled protocols: [TLSv1]

Как настроить TLSv2 уже получен ответ в этой теме Какдля принудительного применения TLS1.2 к клиенту Rest с помощью шаблона отдыха

вкратце вы можете попробовать

import javax.net.ssl.SSLContext;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;

SSLContext context = SSLContext.getInstance("TLSv1.2");
context.init(null, null, null);

CloseableHttpClient httpClient = HttpClientBuilder.create().setSSLContext(context)
    .build();
HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient);
RestTemplate restTemplate = new RestTemplate(factory);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...