Foar de JDK-basearre HTTP-stapel fan Jena, yntrodusearre yn Jena 4.3, konfigurearje de transport dy't oan de query-bouwer jûn wurdt. In wachtwurd foar it SPARQL-einpunt en in wachtwurd foar de proxy kinne troch ferskate masines frege wurde.

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

It fragmint bout in query-útfiering. endpointUrl is de werklike URL fan de SPARQL-tsjinst; proxyAuthenticator is in java.net.Authenticator dy't de applikaasje leveret. Fier de query-útfiering út en slút dy fia de normale query-libbenssyklus fan de applikaasje.

Yn de getPasswordAuthentication-metoade fan dy autentisearrer jou jo de PasswordAuthentication fan de proxy allinnich werom as getRequestorType() == RequestorType.PROXY en as de host en poarte dy't oanfreegje by de konfigurearre tuskenpersoan passe. Jou null werom foar net-relatearre útdagings. Troch dit objekt oan de klant te keppeljen bliuwt de kar lokaal foar dy klant.

Lês wat de proxy freget

In 407-antwurd jout in proxy-autentikaasje-útdaging oan. De Proxy-Authenticate-kop fertelt hokker skema's oanbean wurde; de status allinnich ûnderskiedt Basic net fan NTLM of in oar skema.

Fergelykje dat oanbod mei de mooglikheden en it autentikaasjebelied fan de ynsette JDK-klant. It jaan fan in brûkersnamme en wachtwurd foeget gjin net-stipe skema ta. Foar HTTPS-doelen moat jo ek it jdk.http.auth.tunneling.disabledSchemes-belied fan de JDK besjen; gewoane HTTP-proxy hat in aparte disabledSchemes-ynstelling. De standertwearden fan de JDK foar Basic-autentikaasje by CONNECT binne ien sa'n beliedskontrôle.

Histoaryske Jena-foarbylden mei Apache HttpClient en SimpleNTAuthenticator hearre by in âldere transportgeneraasje. As de bedriuwsproxy in autentikaasjemeganisme easket dat yn de hjoeddeiske transport net beskikber is, regelje dan in stipe yntegraasje mei de netwurkbehearder ynstee fan te besykjen dy âlde autentikaasje-objekten yn de moderne bouwer te krijen.

Relatearre artikelen