Pre HTTP zásobník Jeny postavený na JDK, predstavený v Jena 4.3, nastavte transport odovzdávaný tvorcovi dopytu. Heslo koncového bodu SPARQL a heslo proxy môžu vyžadovať rôzne stroje.

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

Tento fragment zostaví vykonávanie dopytu. endpointUrl je skutočná adresa služby SPARQL; proxyAuthenticator je java.net.Authenticator dodaný aplikáciou. Vykonávanie dopytu spustite a zatvorte v obvyklom životnom cykle dopytov aplikácie.

V metóde getPasswordAuthentication tohto overovateľa vracajte PasswordAuthentication proxy len vtedy, keď platí getRequestorType() == RequestorType.PROXY a keď sa hostiteľ a port žiadateľa zhodujú s nakonfigurovaným sprostredkovateľom. Pre nesúvisiace výzvy vracajte null. Pripojením tohto objektu ku klientovi zostáva voľba lokálna pre daného klienta.

Prečítajte si, čo proxy požaduje

Odpoveď 407 označuje výzvu na overenie cez proxy. Jej hlavička Proxy-Authenticate uvádza ponúkané schémy; samotný stav nerozlišuje Basic od NTLM ani inej schémy.

Porovnajte túto ponuku s možnosťami nasadeného klienta JDK a jeho zásadami overovania. Zadanie používateľského mena a hesla nepridá nepodporovanú schému. Pre ciele HTTPS skontrolujte aj zásadu JDK jdk.http.auth.tunneling.disabledSchemes; bežné proxyovanie HTTP má samostatné nastavenie disabledSchemes. Predvolené hodnoty overovania Basic v JDK pre CONNECT sú jednou z takýchto kontrol zásad.

Historické príklady Jeny s Apache HttpClient a SimpleNTAuthenticator patria staršej generácii transportu. Ak podniková proxy vyžaduje mechanizmus overovania, ktorý v súčasnom transporte nie je dostupný, dohodnite podporovanú integráciu so správcom siete namiesto toho, aby ste sa snažili tie staré objekty overovania pretlačiť do moderného tvorcu.

Súvisiace články