Am 2020-05-26 um 23:09 schrieb Oleg Kalnichevski:
On Tue, 2020-05-26 at 22:28 +0200, Michael Osipov wrote:
Am 2020-05-26 um 20:20 schrieb Oleg Kalnichevski:
On Tue, 2020-05-26 at 17:58 +0000, Bernd Eckenfels wrote:
Michael, this looks a bit like the packets in between have been
TLS
handshakes which have not been carried out because the engine was
not
kicked off. Maybe a starHandshake() would help? Or can you share
the
full traces? Did you try http as well?
Michael,
I can only second what Bernd has said. Try to simplify the setup
and
see if you can get things to work with plain HTTP first.
Also feel free to tweak my code as you see fit.
I followed Bernd's advise and disabled TLS. Although I already had a
clue what is going wrong. Attached is a patch on top of Oleg's
branch
which makes it work unencrypted and encrypted. I will explain in
detail
why the changes are necessary.
- public static final Timeout DEFAULT_WAIT_FOR_EARLY_RESPONSE =
Timeout.ofMilliseconds(5);
+ public static final Timeout DEFAULT_WAIT_FOR_EARLY_RESPONSE =
Timeout.ofMilliseconds(50);
unless client and server are physically next to each other 5 ms are
virtually impossible. I have tried with our server at work. I am
connected with my laptop via VPN to the corporate network, I don't
know
where the peering point of our VPN provider is, but the server is
physically 10 km away from me and with TLS 1.3 it takes 28 ms to
produce
the 401.
Maybe both timeouts (expect and early) should be configurable via
RequestConfig?
+ conn.flush();
Michael
You are absolutely right. Not flushing the request head was the cause
of the problem.
Could you please try out a slightly different take on your original
patch, though?
https://github.com/ok2c/httpcomponents-core/commit/39f6d69a87586c147dc080431d45d6d48acb2c80
HttpRequestExecutor ought not be flushing all request message heads
indiscriminately and should still try to pack small payload messages
into a single IP frame for performance reasons.
Makes sense!
I also would not overload RequestConfig with too many options but we
can discuss that later.
Agreed.
This is why it did not work before is that headers were stuck in the
local buffer and were flushed only when the body was sent. So the
server
never saw the headers before the body. The wait was pointless.
Please also note that even the buffer for headers might be large due
to
some authnz tokens. E.g., JWT or SPNEGO, cookies, etc.
+ response = conn.receiveResponseHeader();
One needs to read the headers because the client shall be able to
see
the status code and if fast enough the response body. In my case the
error page from Tomcat.
RFC 7230, section 6.5 says:
A client sending a message body SHOULD monitor the network
connection
for an error response while it is transmitting the request. If
the
client sees a response that indicates the server does not wish
to
receive the message body and is closing the connection, the
client
SHOULD immediately cease transmitting the body and close its
side of
the connection.
I have issued another request and HttpClient reuses the connection
because Tomcat forgot to send "Connection: close".
Hmm. That sounds weird. HttpClient must terminate the connection if it
failed to submit the entire message body declared in `Content-Length`
header. The #terminateRequest should have marked the connection as
`inconsistent`.
Could you please send me a wire log of the session?
So far, the patch works and I can access the first 401 response.
This is my test client code, if necessary:
HttpClientBuilder builder = HttpClientBuilder.create();
try (CloseableHttpClient httpClient = builder.build()) {
HttpPost method = new
HttpPost("https://<hostname>:11111/content-dev/api/documents");
method.setHeader("Connection", "blbla");
method.setEntity(new FileEntity(new File("Z:\\inputs.zip"),
ContentType.create("application/zip")) {
@Override
public void writeTo(OutputStream outStream) throws IOException {
Args.notNull(outStream, "Output stream");
try (final InputStream inStream = getContent()) {
if (inStream != null) {
int count;
final byte[] tmp = new byte[4096*2];
long writtenBytes = 0L;
while ((count = inStream.read(tmp)) != -1) {
System.out.printf("Bytes written: %d%n", writtenBytes);
outStream.write(tmp, 0, count);
writtenBytes += count;
}
}
}
}
});
CloseableHttpResponse response = httpClient.execute(method);
response.getEntity().writeTo(System.out);
response.close();
response = httpClient.execute(method);
response.getEntity().writeTo(System.out);
response.close();
}
and the output:
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader
classes because bootstrap classpath has been appended
Mai 26, 2020 11:52:18 PM name.neykov.secrets.AgentMain main
INFORMATION: Successfully attached agent C:\Users\osipovmi\Downloads\extract-tls-secrets-4.0.0.jar. Logging to C:\Temp\keylog.txt.
74 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient - ex-00000001: preparing request execution
134 [main] DEBUG org.apache.hc.client5.http.protocol.RequestAddCookies - Cookie
spec selected: strict
146 [main] DEBUG org.apache.hc.client5.http.protocol.RequestAuthCache - Auth
cache not set in the context
146 [main] DEBUG org.apache.hc.client5.http.impl.classic.ProtocolExec -
ex-00000001: target auth state: UNCHALLENGED
147 [main] DEBUG org.apache.hc.client5.http.impl.classic.ProtocolExec -
ex-00000001: proxy auth state: UNCHALLENGED
148 [main] DEBUG org.apache.hc.client5.http.impl.classic.ConnectExec - ex-00000001:
acquiring connection with route {s}->https://<hostname>:11111
148 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ex-00000001: acquiring endpoint (3 MINUTES)
150 [main] DEBUG org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ex-00000001: endpoint lease request (3 MINUTES) [route:
{s}->https://<hostname>:11111][total available: 0; route allocated: 0 of 5;
total allocated: 0 of 25]
190 [main] DEBUG org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ex-00000001: endpoint leased [route: {s}->https://<hostname>:11111][total
available: 0; route allocated: 1 of 5; total allocated: 1 of 25]
202 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ex-00000001: acquired ep-00000000
202 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ex-00000001: acquired endpoint ep-00000000
202 [main] DEBUG org.apache.hc.client5.http.impl.classic.ConnectExec - ex-00000001:
opening connection {s}->https://<hostname>:11111
203 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ep-00000000: connecting endpoint (3 MINUTES)
203 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager - ep-00000000:
connecting endpoint to https://<hostname>:11111 (3 MINUTES)
222 [main] DEBUG org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator -
http-outgoing-0: connecting to <hostname>/<ip>:11111
222 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory - Connecting
socket to <hostname>/<ip>:11111 with timeout 3 MINUTES
306 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory -
Enabled protocols: [TLSv1.3, TLSv1.2]
306 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory -
Enabled cipher suites:[TLS_AES_256_GCM_SHA384, TLS_AES_128_GCM_SHA256,
TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,
TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,
TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,
TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,
TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_RSA_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_GCM_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256,
TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_EMPTY_RENEGOTIATION_INFO_SCSV]
306 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory -
Starting handshake
488 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory -
Secure session established
488 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory -
negotiated protocol: TLSv1.3
488 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory -
negotiated cipher suite: TLS_AES_256_GCM_SHA384
488 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory - peer
principal: CN=<hostname>, OU=LDA DW, O=Siemens, C=DE
488 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory - peer
alternative names: [<hostname>]
488 [main] DEBUG org.apache.hc.client5.http.ssl.SSLConnectionSocketFactory -
issuer principal: CN=Siemens Issuing CA Intranet Server 2017, OU=Siemens Trust
Center, SERIALNUMBER=ZZZZZZB7, O=Siemens, L=Muenchen, ST=Bayern, C=DE
491 [main] DEBUG org.apache.hc.client5.http.impl.io.DefaultHttpClientConnectionOperator -
http-outgoing-0: connection established 139.22.137.23:57312<-><ip>:11111
491 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ep-00000000: connected http-outgoing-0
491 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ep-00000000: endpoint connected
491 [main] DEBUG org.apache.hc.client5.http.impl.classic.MainClientExec -
ex-00000001: executing POST /content-dev/api/documents HTTP/1.1
492 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ep-00000000: start execution ex-00000001
492 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ep-00000000: executing exchange ex-00000001 over http-outgoing-0
492 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >> POST
/content-dev/api/documents HTTP/1.1
492 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
Connection: blbla
492 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
Accept-Encoding: gzip, x-gzip, deflate
492 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
Content-Length: 7664149
492 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
Content-Type: application/zip
493 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >> Host:
<hostname>:11111
493 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
User-Agent: Apache-HttpClient/5.0 (Java/13.0.2)
523 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 << HTTP/1.1 401
523 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 << WWW-Authenticate: Negotiate
523 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 <<
Content-Type: text/html;charset=utf-8
523 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 <<
Content-Language: en
523 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 <<
Content-Length: 437
523 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 << Date:
Tue, 26 May 2020 21:52:20 GMT
527 [main] DEBUG org.apache.hc.client5.http.impl.classic.MainClientExec -
ex-00000001: connection can be kept alive for 3 MINUTES
529 [main] DEBUG org.apache.hc.client5.http.impl.classic.ProtocolExec -
Authentication required
530 [main] DEBUG org.apache.hc.client5.http.impl.classic.ProtocolExec -
<hostname>:11111 requested authentication
531 [main] DEBUG org.apache.hc.client5.http.impl.DefaultAuthenticationStrategy
- Authentication schemes in the order of preference: [Negotiate, Kerberos,
NTLM, Digest, Basic]
532 [main] DEBUG org.apache.hc.client5.http.impl.DefaultAuthenticationStrategy
- Challenge for Kerberos authentication scheme not available
532 [main] DEBUG org.apache.hc.client5.http.impl.DefaultAuthenticationStrategy
- Challenge for NTLM authentication scheme not available
532 [main] DEBUG org.apache.hc.client5.http.impl.DefaultAuthenticationStrategy
- Challenge for Digest authentication scheme not available
532 [main] DEBUG org.apache.hc.client5.http.impl.DefaultAuthenticationStrategy
- Challenge for Basic authentication scheme not available
532 [main] WARN org.apache.hc.client5.http.impl.classic.ProtocolExec - Missing
auth challenge
<!doctype html><html lang="en"><head><title>HTTP Status 401 – Unauthorized</title><style type="text/css">body
{font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a
{color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 401 –
Unauthorized</h1></body></html>532 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient - ep-00000000: releasing valid endpoint
533 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ep-00000000: releasing endpoint
533 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ep-00000000: connection http-outgoing-0 can be kept alive for 3 MINUTES
533 [main] DEBUG org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ep-00000000: connection released [route: {s}->https://<hostname>:11111][total
available: 1; route allocated: 1 of 5; total allocated: 1 of 25]
533 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ex-00000002: preparing request execution
534 [main] DEBUG org.apache.hc.client5.http.protocol.RequestAddCookies - Cookie
spec selected: strict
534 [main] DEBUG org.apache.hc.client5.http.protocol.RequestAuthCache - Auth
cache not set in the context
535 [main] DEBUG org.apache.hc.client5.http.impl.classic.ProtocolExec -
ex-00000002: target auth state: UNCHALLENGED
535 [main] DEBUG org.apache.hc.client5.http.impl.classic.ProtocolExec -
ex-00000002: proxy auth state: UNCHALLENGED
535 [main] DEBUG org.apache.hc.client5.http.impl.classic.ConnectExec - ex-00000002:
acquiring connection with route {s}->https://<hostname>:11111
535 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ex-00000002: acquiring endpoint (3 MINUTES)
535 [main] DEBUG org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ex-00000002: endpoint lease request (3 MINUTES) [route:
{s}->https://<hostname>:11111][total available: 1; route allocated: 1 of 5;
total allocated: 1 of 25]
535 [main] DEBUG org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ex-00000002: endpoint leased [route: {s}->https://<hostname>:11111][total
available: 0; route allocated: 1 of 5; total allocated: 1 of 25]
535 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ex-00000002: acquired ep-00000001
535 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ex-00000002: acquired endpoint ep-00000001
535 [main] DEBUG org.apache.hc.client5.http.impl.classic.MainClientExec -
ex-00000002: executing POST /content-dev/api/documents HTTP/1.1
535 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ep-00000001: start execution ex-00000002
535 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ep-00000001: executing exchange ex-00000002 over http-outgoing-0
535 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >> POST
/content-dev/api/documents HTTP/1.1
535 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
Connection: blbla
535 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
Accept-Encoding: gzip, x-gzip, deflate
535 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
Content-Length: 7664149
535 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
Content-Type: application/zip
535 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >> Host:
<hostname>:11111
535 [main] DEBUG org.apache.hc.client5.http.headers - http-outgoing-0 >>
User-Agent: Apache-HttpClient/5.0 (Java/13.0.2)
Bytes written: 0
Bytes written: 8192
Bytes written: 16384
Bytes written: 24576
Bytes written: 32768
Bytes written: 40960
Bytes written: 49152
Bytes written: 57344
Bytes written: 65536
Bytes written: 73728
Bytes written: 81920
Bytes written: 90112
Bytes written: 98304
Bytes written: 106496
Bytes written: 114688
Bytes written: 122880
Bytes written: 131072
Bytes written: 139264
Bytes written: 147456
Bytes written: 155648
Bytes written: 163840
Bytes written: 172032
Bytes written: 180224
Bytes written: 188416
Bytes written: 196608
Bytes written: 204800
Bytes written: 212992
Bytes written: 221184
Bytes written: 229376
Bytes written: 237568
Bytes written: 245760
Bytes written: 253952
Bytes written: 262144
Bytes written: 270336
Bytes written: 278528
Bytes written: 286720
Bytes written: 294912
Bytes written: 303104
Bytes written: 311296
Bytes written: 319488
Bytes written: 327680
Bytes written: 335872
Bytes written: 344064
Bytes written: 352256
Bytes written: 360448
Bytes written: 368640
Bytes written: 376832
Bytes written: 385024
Bytes written: 393216
Bytes written: 401408
Bytes written: 409600
Bytes written: 417792
Bytes written: 425984
Bytes written: 434176
Bytes written: 442368
Bytes written: 450560
Bytes written: 458752
Bytes written: 466944
Bytes written: 475136
Bytes written: 483328
Bytes written: 491520
Bytes written: 499712
Bytes written: 507904
Bytes written: 516096
Bytes written: 524288
Bytes written: 532480
Bytes written: 540672
Bytes written: 548864
Bytes written: 557056
Bytes written: 565248
Bytes written: 573440
Bytes written: 581632
Bytes written: 589824
Bytes written: 598016
Bytes written: 606208
Bytes written: 614400
Bytes written: 622592
Bytes written: 630784
Bytes written: 638976
Bytes written: 647168
Bytes written: 655360
Bytes written: 663552
Bytes written: 671744
Bytes written: 679936
Bytes written: 688128
Bytes written: 696320
Bytes written: 704512
Bytes written: 712704
Bytes written: 720896
Bytes written: 729088
Bytes written: 737280
Bytes written: 745472
Bytes written: 753664
Bytes written: 761856
Bytes written: 770048
Bytes written: 778240
Bytes written: 786432
Bytes written: 794624
Bytes written: 802816
Bytes written: 811008
Bytes written: 819200
Bytes written: 827392
Bytes written: 835584
Bytes written: 843776
Bytes written: 851968
Bytes written: 860160
Bytes written: 868352
Bytes written: 876544
Bytes written: 884736
Bytes written: 892928
Bytes written: 901120
Bytes written: 909312
Bytes written: 917504
Bytes written: 925696
Bytes written: 933888
Bytes written: 942080
Bytes written: 950272
Bytes written: 958464
Bytes written: 966656
Bytes written: 974848
Bytes written: 983040
Bytes written: 991232
Bytes written: 999424
Bytes written: 1007616
Bytes written: 1015808
Bytes written: 1024000
Bytes written: 1032192
Bytes written: 1040384
Bytes written: 1048576
Bytes written: 1056768
Bytes written: 1064960
Bytes written: 1073152
Bytes written: 1081344
Bytes written: 1089536
Bytes written: 1097728
Bytes written: 1105920
Bytes written: 1114112
Bytes written: 1122304
Bytes written: 1130496
Bytes written: 1138688
Bytes written: 1146880
Bytes written: 1155072
Bytes written: 1163264
Bytes written: 1171456
Bytes written: 1179648
Bytes written: 1187840
Bytes written: 1196032
Bytes written: 1204224
Bytes written: 1212416
Bytes written: 1220608
Bytes written: 1228800
Bytes written: 1236992
Bytes written: 1245184
Bytes written: 1253376
Bytes written: 1261568
Bytes written: 1269760
Bytes written: 1277952
Bytes written: 1286144
Bytes written: 1294336
Bytes written: 1302528
Bytes written: 1310720
Bytes written: 1318912
Bytes written: 1327104
Bytes written: 1335296
Bytes written: 1343488
Bytes written: 1351680
Bytes written: 1359872
Bytes written: 1368064
Bytes written: 1376256
Bytes written: 1384448
Bytes written: 1392640
Bytes written: 1400832
Bytes written: 1409024
Bytes written: 1417216
Bytes written: 1425408
Bytes written: 1433600
Bytes written: 1441792
Bytes written: 1449984
Bytes written: 1458176
Bytes written: 1466368
Bytes written: 1474560
Bytes written: 1482752
Bytes written: 1490944
Bytes written: 1499136
Bytes written: 1507328
Bytes written: 1515520
Bytes written: 1523712
Bytes written: 1531904
Bytes written: 1540096
Bytes written: 1548288
Bytes written: 1556480
Bytes written: 1564672
Bytes written: 1572864
Bytes written: 1581056
Bytes written: 1589248
Bytes written: 1597440
Bytes written: 1605632
Bytes written: 1613824
Bytes written: 1622016
Bytes written: 1630208
Bytes written: 1638400
Bytes written: 1646592
Bytes written: 1654784
Bytes written: 1662976
Bytes written: 1671168
Bytes written: 1679360
Bytes written: 1687552
Bytes written: 1695744
Bytes written: 1703936
Bytes written: 1712128
Bytes written: 1720320
Bytes written: 1728512
Bytes written: 1736704
Bytes written: 1744896
Bytes written: 1753088
Bytes written: 1761280
Bytes written: 1769472
Bytes written: 1777664
Bytes written: 1785856
Bytes written: 1794048
Bytes written: 1802240
Bytes written: 1810432
Bytes written: 1818624
Bytes written: 1826816
Bytes written: 1835008
Bytes written: 1843200
Bytes written: 1851392
Bytes written: 1859584
Bytes written: 1867776
Bytes written: 1875968
Bytes written: 1884160
Bytes written: 1892352
Bytes written: 1900544
Bytes written: 1908736
Bytes written: 1916928
Bytes written: 1925120
Bytes written: 1933312
Bytes written: 1941504
Bytes written: 1949696
Bytes written: 1957888
Bytes written: 1966080
Bytes written: 1974272
Bytes written: 1982464
Bytes written: 1990656
Bytes written: 1998848
Bytes written: 2007040
Bytes written: 2015232
Bytes written: 2023424
Bytes written: 2031616
Bytes written: 2039808
Bytes written: 2048000
Bytes written: 2056192
Bytes written: 2064384
Bytes written: 2072576
Bytes written: 2080768
Bytes written: 2088960
Bytes written: 2097152
Bytes written: 2105344
Bytes written: 2113536
Bytes written: 2121728
Bytes written: 2129920
Bytes written: 2138112
Bytes written: 2146304
Bytes written: 2154496
Bytes written: 2162688
Bytes written: 2170880
Bytes written: 2179072
Bytes written: 2187264
Bytes written: 2195456
Bytes written: 2203648
Bytes written: 2211840
Bytes written: 2220032
Bytes written: 2228224
Bytes written: 2236416
4964 [main] DEBUG
org.apache.hc.client5.http.impl.io.DefaultManagedHttpClientConnection -
http-outgoing-0: Close connection
4964 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ep-00000001: endpoint closed
4964 [main] DEBUG org.apache.hc.client5.http.impl.classic.InternalHttpClient -
ep-00000001: discarding endpoint
4964 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
ep-00000001: releasing endpoint
4965 [main] DEBUG org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager
- ep-00000001: connection released [route: {s}->https://<hostname>:11111][total
available: 0; route allocated: 0 of 5; total allocated: 0 of 25]
4965 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
Shutdown connection pool GRACEFUL
4965 [main] DEBUG
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager -
Connection pool shut down
Exception in thread "main" javax.net.ssl.SSLException: Eine bestehende
Verbindung wurde softwaregesteuert
durch den Hostcomputer abgebrochen
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:127)
at
java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:324)
at
java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:267)
at
java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:262)
at
java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1258)
at
org.apache.hc.core5.http.impl.io.SessionOutputBufferImpl.flushBuffer(SessionOutputBufferImpl.java:117)
at
org.apache.hc.core5.http.impl.io.SessionOutputBufferImpl.write(SessionOutputBufferImpl.java:150)
at
org.apache.hc.core5.http.impl.io.ContentLengthOutputStream.write(ContentLengthOutputStream.java:113)
at sspijava.SspiAuth$1.writeTo(SspiAuth.java:76)
at
org.apache.hc.core5.http.impl.io.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:153)
at
org.apache.hc.core5.http.impl.io.HttpRequestExecutor.execute(HttpRequestExecutor.java:172)
at
org.apache.hc.core5.http.impl.io.HttpRequestExecutor.execute(HttpRequestExecutor.java:250)
at
org.apache.hc.client5.http.impl.io.PoolingHttpClientConnectionManager$InternalConnectionEndpoint.execute(PoolingHttpClientConnectionManager.java:596)
at
org.apache.hc.client5.http.impl.classic.InternalExecRuntime.execute(InternalExecRuntime.java:220)
at
org.apache.hc.client5.http.impl.classic.MainClientExec.execute(MainClientExec.java:107)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at
org.apache.hc.client5.http.impl.classic.ConnectExec.execute(ConnectExec.java:181)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at
org.apache.hc.client5.http.impl.classic.ProtocolExec.execute(ProtocolExec.java:165)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at
org.apache.hc.client5.http.impl.classic.HttpRequestRetryExec.execute(HttpRequestRetryExec.java:93)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at
org.apache.hc.client5.http.impl.classic.RedirectExec.execute(RedirectExec.java:116)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement$1.proceed(ExecChainElement.java:57)
at
org.apache.hc.client5.http.impl.classic.ContentCompressionExec.execute(ContentCompressionExec.java:128)
at
org.apache.hc.client5.http.impl.classic.ExecChainElement.execute(ExecChainElement.java:51)
at
org.apache.hc.client5.http.impl.classic.InternalHttpClient.doExecute(InternalHttpClient.java:178)
at
org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:75)
at
org.apache.hc.client5.http.impl.classic.CloseableHttpClient.execute(CloseableHttpClient.java:89)
at sspijava.SspiAuth.main(SspiAuth.java:90)
Suppressed: java.net.SocketException: Eine bestehende Verbindung wurde
softwaregesteuert
durch den Hostcomputer abgebrochen
at
java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:421)
at
java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:441)
at
java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:825)
at
java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1007)
at
java.base/sun.security.ssl.SSLSocketOutputRecord.encodeAlert(SSLSocketOutputRecord.java:82)
at
java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:355)
... 33 more
Suppressed: java.net.SocketException: Connection or outbound has closed
at
java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1246)
at
org.apache.hc.core5.http.impl.io.SessionOutputBufferImpl.flushBuffer(SessionOutputBufferImpl.java:117)
at
org.apache.hc.core5.http.impl.io.SessionOutputBufferImpl.flush(SessionOutputBufferImpl.java:126)
at
org.apache.hc.core5.http.impl.io.ContentLengthOutputStream.close(ContentLengthOutputStream.java:93)
at
org.apache.hc.core5.http.impl.io.DefaultBHttpClientConnection.sendRequestEntity(DefaultBHttpClientConnection.java:154)
... 25 more
Caused by: java.net.SocketException: Eine bestehende Verbindung wurde
softwaregesteuert
durch den Hostcomputer abgebrochen
at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:421)
at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:441)
at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:825)
at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1007)
at
java.base/sun.security.ssl.SSLSocketOutputRecord.deliver(SSLSocketOutputRecord.java:342)
at
java.base/sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1253)
... 30 more
---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-users-unsubscr...@hc.apache.org
For additional commands, e-mail: httpclient-users-h...@hc.apache.org