Proxy-hitelesítés Jena 4.3+ SPARQL-kliensekhez
Csatoljon proxyválasztót és hitelesítőt ahhoz a JDK HTTP-klienshez, amelyet a modern Jena-lekérdezés-végrehajtás használ.
A Jena 4.3-ban bevezetett JDK-alapú Jena HTTP-veremhez állítsa be a lekérdezés-építőnek átadott transportot. A SPARQL-végpont jelszavát és a proxy jelszavát különböző gépek kérhetik.
import java.net.InetSocketAddress;
import java.net.ProxySelector;
import java.net.http.HttpClient;
import org.apache.jena.sparql.exec.http.QueryExecutionHTTP;
var http = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("proxy.example", 8080)))
.authenticator(proxyAuthenticator)
.build();
var execution = QueryExecutionHTTP.service(endpointUrl)
.httpClient(http)
.query("ASK { ?s ?p ?o }")
.build();A részlet egy lekérdezés-végrehajtást épít fel. Az endpointUrl a SPARQL-szolgáltatás tényleges URL-je; a proxyAuthenticator az alkalmazás által biztosított java.net.Authenticator. Futtassa és zárja le a lekérdezés-végrehajtást az alkalmazás szokásos lekérdezési életciklusán keresztül.
Az adott hitelesítő getPasswordAuthentication metódusában csak akkor adja vissza a proxy PasswordAuthentication objektumát, ha getRequestorType() == RequestorType.PROXY, valamint ha a kérő hoszt és port megfelel a beállított közvetítőnek. Kapcsolat nélküli kihívásokra adjon vissza null értéket. Ha ezt az objektumot a klienshez csatolja, a választás az adott kliensen belül marad.
Olvassa el, mit kér a proxy
A 407-es válasz proxyhitelesítési kihívást jelez. A Proxy-Authenticate fejléc megadja a felkínált sémákat; az állapot önmagában nem különbözteti meg a Basic sémát az NTLM-től vagy más sémától.
Vesse össze ezt az ajánlatot a telepített JDK-kliens képességeivel és hitelesítési irányelvével. A felhasználónév és jelszó megadása nem tesz hozzá nem támogatott sémát. HTTPS-célok esetén vizsgálja meg a JDK jdk.http.auth.tunneling.disabledSchemes irányelvét is; a szokásos HTTP-proxyzásnak külön disabledSchemes beállítása van. A JDK Basic-hitelesítési alapértékei CONNECT esetén egy ilyen irányelv-ellenőrzés.
A Apache HttpClientet és SimpleNTAuthenticatort használó történelmi Jena-példák egy régebbi transport-generációhoz tartoznak. Ha a vállalati proxy olyan hitelesítési mechanizmust követel, amely a jelenlegi transportban nem érhető el, egyeztessen támogatott integrációt a hálózati adminisztrátorral, ahelyett hogy a régi hitelesítési objektumokat a modern építőbe próbálná belegyömöszölni.