Autentikimi përmes proxy për klientët SPARQL të Jena 4.3+
Lidhni një përzgjedhës dhe autentifikues proxy me klientin HTTP të JDK që përdor ekzekutimi modern i pyetjeve të Jena.
Për stivën HTTP të Jena të bazuar në JDK, e prezantuar në Jena 4.3, konfiguroni transportin që i jepet ndërtuesit të pyetjeve. Fjalëkalimi i pikës fundore SPARQL dhe fjalëkalimi i proxy-t mund të kërkohen nga makina të ndryshme.
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();Ky fragment ndërton një ekzekutim pyetjeje. endpointUrl është URL-ja reale e shërbimit SPARQL; proxyAuthenticator është një java.net.Authenticator që e siguron aplikacioni. Ekzekutoni dhe mbyllni ekzekutimin e pyetjes përmes ciklit normal të jetës së pyetjeve të aplikacionit.
Në metodën getPasswordAuthentication të atij autentifikuesi, ktheni PasswordAuthentication e proxy-t vetëm kur getRequestorType() == RequestorType.PROXY dhe kur hosti dhe porta që kërkojnë përputhen me ndërmjetësin e konfiguruar. Ktheni null për sfidat e palidhura. Lidhja e këtij objekti me klientin e mban zgjedhjen lokale për atë klient.
Lexoni çfarë kërkon proxy-t
Një përgjigje 407 tregon një sfidë autentikimi proxy. Titulli i saj Proxy-Authenticate tregon skemat e ofruara; vetëm statusi nuk e dallon Basic nga NTLM ose nga një skemë tjetër.
Krahasoni atë ofertë me aftësitë dhe politikën e autentikimit të klientit JDK të vendosur. Dhënia e emrit të përdoruesit dhe fjalëkalimit nuk shton një skemë të pambështetur. Për destinacione HTTPS, shqyrtoni edhe politikën jdk.http.auth.tunneling.disabledSchemes të JDK-së; proxy-ja normale HTTP ka një cilësim të veçantë disabledSchemes. Vlerat e parazgjedhura të JDK-së për autentikim Basic në CONNECT janë një nga këto kontrolle politikë.
Shembujt historikë të Jena me Apache HttpClient dhe SimpleNTAuthenticator i përkasin një gjenerate më të vjetër transporti. Nëse proxy-ja korporative kërkon një mekanizëm autentikimi që nuk ofrohet në transportin aktual, merrni një integrim të mbështetur me administratorin e rrjetit në vend që të përpiqeni t'i fusni ato objekte të vjetra autentikimi në ndërtuesin modern.