2015-10-02 3 views
0

Я делаю несколько вызовов из клиентского приложения Java на сервер с использованием TLS-соединения. Чтобы избежать накладных расходов на TLS, я хотел бы возобновить сеанс, используя идентификатор сеанса, аналогичный тому, что делает веб-браузер. В настоящее время я устанавливаю каждый запрос, используя объект HttpsURLConenction.возобновление сеанса клиентского приложения java

Как это достигается на Java? Какой API я ищу?

+0

Может ли любое существующее программное обеспечение сделать это? – VGR

ответ

0

Для решения этой проблемы я использовал API-интерфейс Apache HttpClient, а не HttpsURLConnection. Теперь я могу сохранить контекст SSL и сделать несколько вызовов без необходимости выполнять полное рукопожатие (например, операция подписания клиента).

SSLContext sslcontext = SSLContext.getInstance("TLSv1.2"); sslcontext.init(kmf.getKeyManagers(), tmf.getTrustManagers(),null); sslsf = new SSLConnectionSocketFactory(sslcontext, new String[] { "TLSv1.2" }, null, SSLConnectionSocketFactory.getDefaultHostnameVerifier()); ... //called multiple times CloseableHttpClient httpClient = HttpClients.custom().setSSLSocketFactory(sslsf).build();

+0

Ненужное. Проблем не решить. – EJP

+0

Это было давно, но если я правильно помню, я решал проблему, когда клиенту нужно было выполнить несколько операций подписи. Я не помню специфику, но она решила проблему, когда операции подписи требовались каждый раз, когда был сделан вызов. – emsworth

0

Java уже поддерживает сеанс возобновления в целом. Вам не нужно ничего делать с обеих сторон.

+0

У вас есть ссылка на документацию/описание этого? благодаря –

Смежные вопросы