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.

Kapcsolódó cikkek