hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Oleg Kalnichevski (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCLIENT-1449) X509HostnameVerifier API is too restrictive
Date Mon, 20 Jan 2014 16:30:19 GMT

    [ https://issues.apache.org/jira/browse/HTTPCLIENT-1449?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13876557#comment-13876557

Oleg Kalnichevski commented on HTTPCLIENT-1449:

If I understand it correctly the problem boils down to having to duplicate X509Certificate
retrieval code? 

I am perfectly fine with making all these methods non-final, but I would prefer to make this
change in 4.4 only and have it go through alpha / beta review process. You would still end
up stuck with the same problem as long as you want your application to depend on stable 4.3
release series.


> X509HostnameVerifier API is too restrictive
> -------------------------------------------
>                 Key: HTTPCLIENT-1449
>                 URL: https://issues.apache.org/jira/browse/HTTPCLIENT-1449
>             Project: HttpComponents HttpClient
>          Issue Type: Bug
>    Affects Versions: 4.3.1
>            Reporter: Mikhail Golubev
>            Priority: Minor
> I want to customize hostname verification process by creating custom X509HostnameVerifier,
which first try to use BrowserCompatHostnameVerifier strategy to check hostname and then,
if it fails, asks user directly, whether such certificate can be accepted. As I understand,
this verifier then can be supplied to e.g. HttpClientBuilder#setHostnameVerifier.
> But how should I achieve this? I can't extend BrowserCompatHostnameVerifier, because
all its methods is final or package-private. Extending AbstractVerifier also makes no sense,
because its only overridable method  is verify(String, String[], String[]) and it gives me
no access to certificate itself, which I need for user dialog. On the other hand, method verify(String
host, X509Certificate cert) is the perfect extension point for me, but it's declared final.
I really don't like to implement X509HostnameVerifier and then copy half of the AbstractVerifier
in it. May be I'm missing some other way to intercept hostname verification?

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org

View raw message