Hitilafu ya proksi ya HttpClient 4: itifaki ya http haitumiki
Hifadhi kiwanda cha HTTP cha kawaida katika rejista maalum ya Apache HttpClient 4 wakati njia ya HTTPS inaunganisha kwa proksi ya HTTP kwanza.
Katika programu ya Apache HttpClient 4, lengo la HTTPS halimaanishi kuwa kila muunganisho huanza na TLS. Proksi ya kawaida ya HTTP hufikiwa kwa muunganisho usiosimbwa kwa njia fiche kabla CONNECT kufungua handaki na TLS kupangwa kuelekea lengo.
Iwapo msimamizi maalum wa miunganisho anasajili https pekee, mruko wa kwanza wa proksi unaweza kushindwa kwa UnsupportedSchemeException: http protocol is not supported.
Kwa API ya 4.5, jumuisha viwanda vyote viwili unapounda msimamizi huyo:
var registry = RegistryBuilder.<ConnectionSocketFactory>create()
.register("http", PlainConnectionSocketFactory.getSocketFactory())
.register("https", tlsFactory)
.build();
var manager = new PoolingHttpClientConnectionManager(registry);
var client = HttpClients.custom()
.setConnectionManager(manager)
.setProxy(new HttpHost("proxy.example.net", 8080, "http"))
.build();
tlsFactory ni SSLConnectionSocketFactory iliyopo ya programu, pamoja na uthibitishaji wake wa uaminifu na jina la mwenyeji. Aina zilizoonyeshwa ni za vifurushi vya org.apache.http vya Apache 4. Kipande hiki kinadhani Java inaweza kukisia aina za vigeu vya ndani; msimbo wa Java wa zamani unaweza kutumia aina dhahiri.
Ambatisha msimamizi uliosahihishwa kwa mteja anayetumika kwa hakika kwa ombi. Kwa ombi la HTTPS la umma linaloruhusiwa bila uthibitishaji wa proksi, ingizo la HTTP kutoka orodha ya proksi za HTTP linaweza kujaza anwani ya proksi ya HttpHost. Kusanidi builder mwingine hakuupdate mteja aliyekwisha jengwa.
Chunguza pia umiliki wa builder: HttpClientBuilder inaeleza kuwa msimamizi wa miunganisho aliyetolewa kwa uwazi anaweza kupuuza pembejeo zake tofauti za usanidi wa SSL. Weka viwanda vinavyohitajika katika rejista ya msimamizi badala ya kudhani wito wa setSSLContext baadaye utabadilisha ndani yake.
Utambuzi huu unahusu rejista ya skimu ya ndani. Changamoto ya uthibitishaji wa proksi au lengo lililokataliwa ni matokeo ya baadaye, tofauti. Hifadhi usajili wote wa viwanda wakati unachunguza majibu hayo.