Proxy auðkenning fyrir Jena 4.3+ SPARQL-biðlara
Tengdu proxyval og auðkennara við JDK HTTP-biðlarann sem nútíma Jena-fyrirspurn keyrir með.
Fyrir HTTP-stakk Jena sem byggir á JDK, sem kom í Jena 4.3, skilgreinir þú transportinn sem er sendur fyrirspurnarsmiðnum. Lykilorð SPARQL-endapunktsins og lykilorð proxy-sins geta verið beðin um af mismunandi vélum.
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();Brotinn byggir fyrirspurnarkeyrslu. endpointUrl er raunverulegt URL SPARQL-þjónustunnar; proxyAuthenticator er java.net.Authenticator sem forritið leggur til. Keyrðu og lokaðu fyrirspurnarkeyrslunni í gegnum venjulegt lífsferli fyrirspurna í forritinu.
Í getPasswordAuthentication-aðferð auðkennarans skilar þú PasswordAuthentication proxy-sins aðeins þegar getRequestorType() == RequestorType.PROXY og þegar hýsill og port beiðninnar passa við stillta milliliðinn. Skilaðu null fyrir ótengd áskoranir. Að tengja þetta hlut við biðlarann heldur valinu staðbundnu við þann biðlara.
Lestu hvað proxy-ið biður um
407-svar bendir á áskorun um auðkenningu proxy-sins. Proxy-Authenticate-höfuðið segir til um hvaða skemu eru boðin; staðan ein og sér greinir ekki Basic frá NTLM eða öðru skemu.
Berðu boðið saman við getu og auðkenningarstefnu JDK-biðlarans sem er í notkun. Að gefa upp notandanafn og lykilorð bætir ekki við óstuddu skemu. Fyrir HTTPS-áfangastaði skaltu einnig skoða jdk.http.auth.tunneling.disabledSchemes-stefnu JDK; venjuleg HTTP-proxy hefur sérstaka disabledSchemes-stillingu. Sjálfgefin gildi JDK fyrir Basic-auðkenningu við CONNECT eru ein slík stefnuprófun.
Söguleg Jena-dæmi með Apache HttpClient og SimpleNTAuthenticator tilheyra eldri transportkynslóð. Ef fyrirtækjaproxy-ið krefst auðkenningaraðferðar sem er ekki tiltæk í núverandi transport, samiðu um studda samþættingu við netkerfisstjórann í stað þess að reyna að þrýsta þeim gömlu auðkenningahlutum inn í nútíma smiðinn.