Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja, hogyan konfigurálhat proxykat a Azure SDK a Java számára, hogy az ügyfélkéréseket a szükséges hálózati és biztonsági határokon keresztül irányíthassa.
HTTP-proxykonfiguráció
A Java számára készült Azure ügyfélkönyvtárak több módot kínálnak egy proxy konfigurálására HttpClient.
A proxyk biztosításának minden módszerének megvannak a maga előnyei és hátrányai, és különböző beágyazási szinteket biztosít. Ha proxyt állít be egy HttpClient számára, az élettartama hátralévő részében azt a proxyt használja. Ha a proxyt egy adott HttpClient elemhez rendeli, az alkalmazás több HttpClient példányt is használhat, amelyek mindegyike más proxyt használhat az alkalmazás proxyzási igényeinek kielégítésére.
A proxykonfigurációs beállítások a következők:
Proxy környezet használata
Alapértelmezés szerint a HTTP-ügyfélkészítők proxykonfigurációkat keresnek a környezetben. Ez a folyamat az Azure SDK for Java Configuration API-kat használja. Amikor az építőobjektum létrehoz egy klienst, a klienst a(z) Configuration.getGlobalConfiguration() meghívásával lekért globális konfiguráció másolatával konfigurálja. Ez a hívás beolvassa a HTTP-proxykonfigurációkat a rendszerkörnyezetből.
Amikor a szerkesztő a környezetet vizsgálja, a megadott sorrendben a következő környezeti konfigurációkat keresi:
HTTPS_PROXYHTTP_PROXYhttps.proxy*http.proxy*
Ez * a jól ismert Java-proxytulajdonságokat jelöli. További információ: Java Networking and Proxies in the Oracle documentation.
Ha az építő megtalálja a környezeti konfigurációk bármelyikét, egy ProxyOptions példányt hoz létre a ProxyOptions.fromConfiguration(Configuration.getGlobalConfiguration()) meghívásával. Ez a cikk további részleteket tartalmaz a ProxyOptions típusról.
Fontos
Az implicit használathoz HTTPS_PROXY vagy HTTP_PROXYa Java megköveteli, hogy a rendszerkörnyezet tulajdonságát java.net.useSystemProxies a következőre trueállítsa.
Létrehozhat olyan HTTP-ügyfélpéldányt is, amely nem használ proxykonfigurációt a rendszerkörnyezet változóiban. Az alapértelmezett működés felülbírálásához kifejezetten állítson be egy másképpen konfigurált Configuration elemet a HTTP-kliens összeállítójában. Amikor beállít egy Configuration értéket a szerkesztőben, az már nem hív meg Configuration.getGlobalConfiguration(). Például, ha configuration(Configuration) hívása során Configuration.NONE használja, explicit módon megakadályozhatja, hogy a konstruktor megvizsgálja a környezetet a konfiguráció szempontjából.
Az alábbi példa a HTTP_PROXY környezeti változót localhost:8888 értékkel használja, hogy a Fiddlert használja proxyként. Ez a kód egy Netty és egy OkHttp HTTP-ügyfél létrehozását mutatja be. A HTTP-ügyfélkonfigurációval kapcsolatos további információkért tekintse meg a HTTP-ügyfeleket és -folyamatokat.
export HTTP_PROXY=localhost:8888
HttpClient nettyHttpClient = new NettyAsyncHttpClientBuilder().build();
HttpClient okhttpHttpClient = new OkHttpAsyncHttpClientBuilder().build();
Ha meg szeretné akadályozni a környezeti proxy használatát, konfigurálja a HTTP-ügyfélszerkesztőt Configuration.NONEa következő példában látható módon:
HttpClient nettyHttpClient = new NettyAsyncHttpClientBuilder()
.configuration(Configuration.NONE)
.build();
HttpClient okhttpHttpClient = new OkHttpAsyncHttpClientBuilder()
.configuration(Configuration.NONE)
.build();
Konfigurációs proxy használata
A környezetből való olvasás helyett konfigurálja a HTTP-ügyfélkészítőket úgy, hogy a környezet által már elfogadott proxybeállításokkal rendelkező egyéni Configuration beállításokat használjanak. Ez a konfiguráció lehetővé teszi az újrafelhasználható konfigurációk használatát, amelyek korlátozott használati esetekre terjednek ki. Amikor az HTTP-ügyfélkészítő elkészíti a HttpClient elemet, a ProxyOptions.fromConfiguration(<Configuration passed into the builder>) által visszaadott ProxyOptions elemet használja.
Az alábbi példa az http.proxy* objektumban Configuration beállított konfigurációkat használja a Fiddlert proxyként hitelesítő proxy használatára.
Configuration configuration = new ConfigurationBuilder()
.putProperty("http.proxyHost", "localhost")
.putProperty("http.proxyPort", "8888")
.putProperty("http.proxyUser", "1")
.putProperty("http.proxyPassword", "1")
.build();
HttpClient nettyHttpClient = new NettyAsyncHttpClientBuilder()
.configuration(configuration)
.build();
HttpClient okhttpHttpClient = new OkHttpAsyncHttpClientBuilder()
.configuration(configuration)
.build();
Explicit proxy használata
Az Java ügyfélkódtárak olyan osztályt ProxyOptions tartalmaznak, amely Azure ügyfélkódtár-típusként működik a proxy konfigurálásához. Konfigurálhatja ProxyOptions a proxykérelmek küldéséhez használt hálózati protokollt, a proxycímet, a proxyhitelesítési hitelesítő adatokat és a nem proxyzó gazdagépeket. Csak a proxy hálózati protokollra és a proxycímre van szükség. Hitelesítési hitelesítő adatok használata esetén a felhasználónevet és a jelszót is be kell állítania.
Az alábbi példa egy egyszerű ProxyOptions példányt hoz létre, amely az alapértelmezett Fiddler-címre (localhost:8888) irányítja a kéréseket.
ProxyOptions proxyOptions = new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("localhost", 8888));
Az alábbi példa egy hitelesített ProxyOptions állít be, amely egy Fiddler-példányhoz küld kéréseket, amely proxyhitelesítést igényel.
// Fiddler uses username "1" and password "1" with basic authentication as its proxy authentication requirement.
ProxyOptions proxyOptions = new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("localhost", 8888))
.setCredentials("1", "1");
A HTTP-ügyfélkészítőket ProxyOptions közvetlenül konfigurálhatja, hogy explicit proxyt jelöljön. Ez a konfiguráció a proxy biztosításának legrészletesebb módja, és általában nem annyira rugalmas, mint egy Configuration átadása, amelyet módosíthatsz a proxyszolgáltatási követelmények frissítéséhez.
Az alábbi példa a Fiddler proxyként való használatát használja ProxyOptions :
ProxyOptions proxyOptions = new ProxyOptions(ProxyOptions.Type.HTTP, new InetSocketAddress("localhost", 8888));
HttpClient nettyHttpClient = new NettyAsyncHttpClientBuilder()
.proxy(proxyOptions)
.build();
HttpClient okhttpHttpClient = new OkHttpAsyncHttpClientBuilder()
.proxy(proxyOptions)
.build();
Következő lépések
Most, hogy már ismeri a proxykonfigurációt a Java Azure SDK-ban, olvassa el a Nyomkövetés konfigurálása a Java-hoz készült Azure SDK-ban az alkalmazáson belüli folyamatok jobb megértéséhez és a problémák diagnosztizálásához című témakört.