Prokusaŭtentigo por Jena 4.3+ SPARQL-klientoj
Aldonu prosajn selektilon kaj aŭtentigilon al la JDK HTTP-kliento, kiun uzas la moderna Jena-demanda plenumo.
Por la JDK-bazita HTTP-stako de Jena, lanĉita en Jena 4.3, agordu la transporton, kiun oni pasas al la demanda konstruilo. Pasvorton de la SPARQL-finpunkto kaj pasvorton de la prokuro povas postuli malsamaj maŝinoj.
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();La fragmento konstruas demandan plenumon. endpointUrl estas la reala URL de la SPARQL-servo; proxyAuthenticator estas java.net.Authenticator liverata de la aplikaĵo. Lanĉu kaj fermu la demandan plenumon laŭ la kutima demanda vivciklo de la aplikaĵo.
En la metodo getPasswordAuthentication de tiu aŭtentigilo, redonu la PasswordAuthentication de la prokuro nur kiam getRequestorType() == RequestorType.PROXY kaj kiam la petanta gastiganto kaj pordo kongruas kun la agordita peranto. Redonu null por ne rilataj defioj. Fiksi ĉi tiun objekton al la kliento tenas la elekton loka al tiu kliento.
Legu, kion la prokuro postulas
Respondo 407 indikas prokusan aŭtentigan defion. Ĝia kaplinio Proxy-Authenticate diras la proponatajn skemojn; la stato sola ne distingas Basic de NTLM aŭ de alia skemo.
Komparu tiun proponon kun la kapabloj kaj aŭtentiga politiko de la instalita JDK-kliento. Doni uzantnomon kaj pasvorton ne aldonas ne subtenatan skemon. Por HTTPS-celoj ankaŭ kontrolu la politikon jdk.http.auth.tunneling.disabledSchemes de la JDK; ordinara HTTP-prokurado havas apartan agordon disabledSchemes. La defaŭltoj de JDK por Basic-aŭtentigo ĉe CONNECT estas unu tia politika kontrolo.
Historiaj Jena-ekzemploj kun Apache HttpClient kaj SimpleNTAuthenticator apartenas al pli malnova transport-generacio. Se la kompania prokuro postulas aŭtentigan mekanismon nehaveblan en la nuna transporto, interkonsentu subtenatan integriĝon kun la retadministranto anstataŭ provi ŝovi tiujn malnovajn aŭtentigajn objektojn en la modernan konstruilon.