Jena-ren JDK-n oinarritutako HTTP pila konfiguratu behar duzu, Jena 4.3-n sartua, kontsulta eraikitzaileari ematen zaion transporta ezarriz. SPARQL amaierako puntuaren pasahitza eta proxyaren pasahitza makina desberdinek eska ditzakete.

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

Zati honek kontsulta exekuzio bat eraikitzen du. endpointUrl SPARQL zerbitzuaren benetako URLa da; proxyAuthenticator aplikazioak emandako java.net.Authenticator bat da. Exekutatu eta itxi kontsulta exekuzioa aplikazioaren ohiko kontsulta bizi-zikloaren bidez.

Autentifikatzaile horren getPasswordAuthentication metodoan, itzuli proxyaren PasswordAuthentication soilik getRequestorType() == RequestorType.PROXY betetzen denean eta eskatzen duen ostalaria eta portua konfiguratutako bitartekariarekin bat datozenean. Itzuli null erlazionatu gabeko erronketarako. Objektu hau bezeroari atxikitzeak hautua bezero horrentzat lokal mantentzen du.

Irakurri zer eskatzen duen proxyak

407 erantzun batek proxy autentifikazio erronka bat adierazten du. Bere Proxy-Authenticate goiburuak eskaintzen diren eskemak adierazten ditu; egoerak berak ez du Basic NTLM-tik edo beste eskema batetik bereizten.

Konparatu eskaintza hori zabaldutako JDK bezeroaren gaitasunekin eta autentifikazio politikarekin. Erabiltzaile-izena eta pasahitza emateak ez du onartzen ez den eskema gehitzen. HTTPS helmugatarako, aztertu JDK-ren jdk.http.auth.tunneling.disabledSchemes politika ere; ohiko HTTP proxyak disabledSchemes ezarpen bereizia du. CONNECTerako JDK-ren Basic autentifikazioaren lehenespenak politika egiaztapen horietako bat dira.

Apache HttpClient eta SimpleNTAuthenticator erabiltzen dituzten Jena-ren adibide historikoak transportu belaunaldi zaharrago batekoak dira. Enpresako proxyak uneko transportuan erabilgarri ez dagoen autentifikazio mekanismoa eskatzen badu, adostu integrazio bateragarria sareko administratzailearekin, autentifikazio objektu zahar horiek eraikitzaile modernoan sartzen saiatu beharrean.

Erlazionatutako artikuluak