Puhverserveri autentimine Jena 4.3+ SPARQL-klientidele
Lisage JDK HTTP-kliendile, mida kasutab kaasaegne Jena päringute täitmine, puhverserveri valija ja autentija.
Jena JDK-põhise HTTP-kihi jaoks, mis võeti kasutusele Jena 4.3 versioonis, seadistage transport, mis antakse päringu ehitajale. SPARQL-lõpp-punkti parooli ja puhverserveri parooli võivad küsida erinevad masinad.
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();See lõik koostab päringu täitmise. endpointUrl on SPARQL-teenuse tegelik URL; proxyAuthenticator on rakenduse poolt antud java.net.Authenticator. Käivitage ja sulgege päringu täitmine rakenduse tavapärase päringu elutsükli kaudu.
Selle autentija meetodis getPasswordAuthentication tagastage puhverserveri PasswordAuthentication ainult siis, kui kehtib getRequestorType() == RequestorType.PROXY ja kui taotlev host ja port vastavad seadistatud vahendajale. Sõltumatute väljakutsete puhul tagastage null. Selle objekti kliendiga sidumine hoiab valiku selle kliendi jaoks kohalikuna.
Lugege, mida puhverserver nõuab
Vastus 407 tähistab puhverserveri autentimise väljakutset. Selle päis Proxy-Authenticate teatab pakutavad skeemid; üksnes olek ei erista Basicut NTLM-ist ega muust skeemist.
Võrrelge seda pakkumist juurutatud JDK-kliendi võimaluste ja autentimispoliitikaga. Kasutajanime ja parooli esitamine ei lisa toetamata skeemi. HTTPS-sihtkohtade puhul kontrollige ka JDK poliitikat jdk.http.auth.tunneling.disabledSchemes; tavalisel HTTP puhverserveril on eraldi disabledSchemes-seade. JDK Basic-autentimise vaikeväärtused CONNECTi puhul on üks selline poliitikakontroll.
Ajaloolised Jena näited Apache HttpClienti ja SimpleNTAuthenticatoriga kuuluvad vanemasse transpordipõlvkonda. Kui ettevõtte puhverserver nõuab autentimismehhanismi, mida praeguses transpordis pole, leppige võrguadministraatoriga kokku toetatud integratsioon, selle asemel et proovida neid vanu autentimisobjekte kaasaegsesse ehitajasse suruda.