Jens Geyer created THRIFT-5252:
----------------------------------

             Summary: Make CreateHttpClientHandler() method virtual
                 Key: THRIFT-5252
                 URL: https://issues.apache.org/jira/browse/THRIFT-5252
             Project: Thrift
          Issue Type: Improvement
          Components: netstd - Library
            Reporter: Jens Geyer
            Assignee: Jens Geyer


The CreateHttpClientHandler() factory method of THttpTransport should be 
virtual instead of static. This allows overriding the method and manipulating 
the returned handler. Amongst others, one possible use case could be to relax 
the SSL/TLS validation checks intentionally for some custom purpose, like so:

{code}
public class TCustomizedHttpTransport : THttpTransport
{
        public override HttpClientHandler 
CreateHttpClientHandler(X509Certificate[] certs = null)
        {
                var handler = base.CreateHttpClientHandler(certificates);
                handler.ServerCertificateCustomValidationCallback = MyCallback;
                return handler;
        }

        private bool MyCallback(object s, X509Certificate crt, X509Chain ch, 
SslPolicyErrors e)
        {
                var other_errors = e & 
(~SslPolicyErrors.RemoteCertificateNameMismatch);
                return (SslPolicyErrors.None == other_errors);
        }
}
{code}

 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to