Obiekt proxy w Javie opisuje trasę. Klient sieciowy nadal decyduje, jakich typów tras może używać. Ma to znaczenie, gdy dostępny punkt końcowy mówi po SOCKS, a aplikacja używa java.net.http.HttpClient.

W badanej tutaj implementacji JDK 25 kod żądania klienta HTTP akceptuje kandydata HTTP od selektora. Kandydat SOCKS nie powoduje przeprowadzenia negocjacji SOCKS; implementacja może kontynuować bez proxy. Udana odpowiedź nie jest więc wystarczającym dowodem, że użyto wpisu SOCKS niestandardowego selektora.

Najpierw wybierz transport

W istniejącej aplikacji opartej na URLConnection można przekazać obsługiwane jawne proxy do procedury obsługi protokołu podczas otwierania połączenia:

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);

Do dozwolonych testów publicznych celów użyj pasującego punktu końcowego SOCKS z Twojej usługi lub z listy proxy SOCKS. To inne API klienta, a nie alternatywna pisownia HttpClient.Builder.proxy. Zachowaj docelowy URL, aby HTTPS nadal identyfikował zamierzoną witrynę.

Aplikacja, która musi zachować java.net.http, może zamiast tego użyć zgodnego punktu końcowego proxy HTTP, w tym zatwierdzonego adaptera obsługującego dalsze połączenie SOCKS. Dodaje to rzeczywisty komponent i kolejną granicę dostępu; zmiana portu 8080 na 1080 nie daje tego tłumaczenia.

Utrzymuj widoczność wyboru i przyjęcia

Rejestruj zarówno wynik selektora, jak i połączenie, które klient faktycznie otwiera. Pierwszy opisuje wynik polityki; drugi ustala, czy implementacja go przyjęła.

Wiąż wnioski z używanym środowiskiem uruchomieniowym i transportem. Właściwości JVM SOCKS używane przez jedną implementację gniazda nie są obietnicą, że każda biblioteka HTTP je konsultuje. Gdy trasa jest obowiązkowa, nieobsługiwany typ proxy powinien zostać wykryty przed zaakceptowaniem pozornie udanego żądania bezpośredniego.

Powiązane artykuły