Eit Java-proxyobjekt skildrar ei rute. Nettverksklienten avgjer framleis kva slag ruter han kan bruke. Dette har noko å seie når endepunktet som er tilgjengeleg talar SOCKS, og applikasjonen brukar java.net.http.HttpClient.

I JDK 25-implementasjonen som blir undersøkt her, godtek førespurnadskoden til HTTP-klienten ein HTTP-kandidat frå veljaren. Ein SOCKS-kandidat får han ikkje til å utføre SOCKS-forhandling; implementasjonen kan halde fram utan proxy. Ein vellukka respons er difor ikkje tilstrekkeleg prov for at SOCKS-oppføringa til ein tilpassa veljar vart brukt.

Vel transporten fyrst

For ein eksisterande URLConnection-basert applikasjon kan protokollhandsamaren få ein støtta eksplisitt proxy når tilkoplinga blir opna:

Proxy route = new Proxy(Proxy.Type.SOCKS,
    new InetSocketAddress("proxy.example", 1080));
URLConnection connection = URI.create("https://service.example/")
    .toURL().openConnection(route);
connection.setConnectTimeout(5000);
connection.setReadTimeout(15000);

For tillatne testar mot offentlege mål, bruk eit samsvarande SOCKS-endepunkt frå tenesta di eller frå SOCKS-proxylista. Dette er ein annan klient-API, ikkje ein alternativ skrivemåte for HttpClient.Builder.proxy. Hald på mål-URL-en slik at HTTPS framleis identifiserer nettstaden ein har tenkt seg.

Ein applikasjon som må behalde java.net.http, kan i staden bruke eit kompatibelt HTTP-proxyendepunkt, inkludert ein godkjend adapter som handterer den vidare SOCKS-tilkoplinga. Det legg til ein reell komponent og nok ei tilgangsgrense; å endre port 8080 til 1080 gjev ikkje den omsetjinga.

Hald val og overtaking synleg

Registrer både resultatet frå veljaren og tilkoplinga klienten faktisk opnar. Det fyrste skildrar policyutdata; det andre fastslår om implementasjonen tok det i bruk.

Knyt konklusjonane til køyretidsmiljøet og transporten som blir brukte. JVM SOCKS-eigenskapar som éin socket-implementasjon brukar, er ikkje eit løfte om at kvart HTTP-bibliotek spør etter dei. Når ruta er obligatorisk, bør ein ustøtta proxytype oppdagast før ein godtek ein tilsynelatande vellukka direkte førespurnad.

Relaterte artiklar