[ 
https://issues.apache.org/jira/browse/HTTPCORE-319?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13477257#comment-13477257
 ] 

Oleg Kalnichevski commented on HTTPCORE-319:
--------------------------------------------

Scott
What I was trying to say was whether or not you were using a custom 
NHttpClientEventHandler implementation [1] or the one shipped with HttpCore 
[2]? The default protocol handlers should automatically shut down the 
underlying connection as soon as the end of stream condition has been detected 
[3].

Is there any chance you could share the certificates or some code that I could 
use to reproduce the problem?

Oleg

[1] 
http://hc.apache.org/httpcomponents-core-ga/httpcore-nio/xref/org/apache/http/nio/NHttpClientEventHandler.html
 
[2] 
http://hc.apache.org/httpcomponents-core-ga/httpcore-nio/xref/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.html
[3] 
http://hc.apache.org/httpcomponents-core-ga/httpcore-nio/xref/org/apache/http/nio/protocol/HttpAsyncRequestExecutor.html#256
                
> SSLIOSession goes into a loop if the server rejects an invalid certificate
> --------------------------------------------------------------------------
>
>                 Key: HTTPCORE-319
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-319
>             Project: HttpComponents HttpCore
>          Issue Type: Bug
>          Components: HttpCore NIO
>    Affects Versions: 4.2.2
>            Reporter: Scott Stanton
>            Priority: Blocker
>
> To reproduce:
> * Set up an SSL server that requests certificates from the client.
> * Set up a client with an expired SSL certificate.
> * Establish a connection from the client to the server using BaseNIOReactor 
> and SSLIOSession.
> The server will proceed through the handshake until the client supplies its 
> certificate in response to the CertificateRequest message.  At this point, 
> the server's certificate verification will fail and it will close the 
> connection. 
> The client socket will become readable due to the EOF and the 
> SSLIOSession.isAppInputReady() method is called to handle the EOF.  The 
> bytesRead gets set to -1, which sets this.endOfStream = true.  Nothing ever 
> sets the session into the CLOSING or CLOSED state, so it keeps looping on the 
> readable EOF event.
> I'm not sure what the best approach to fixing this should be.  It appears 
> that if I close the session manually with the debugger from inside 
> isAppInputReady, the system proceeds normally from that point, however I 
> don't know what the implications of doing that might be.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to