د Jena 4.3+ SPARQL کلاینټونو لپاره د پروکسي تصدیق
د پروکسي ټاکونکی او تصدیقوونکی له هغه JDK HTTP کلاینټ سره ونښلو چې نوی Jena د پوښتنې اجرا کول یې کاروي.
د Jena د JDK پر بنسټ HTTP سټیک لپاره، چې په Jena 4.3 کې معرفي شو، هغه transport تنظیم کړئ چې د پوښتنې جوړونکي ته ورکول کیږي. د SPARQL پای ټکي پټنوم او د پروکسي پټنوم کیدای شي مختلف ماشینونه وغواړي.
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();دا برخه د پوښتنې اجرا جوړوي. endpointUrl د SPARQL خدمت ریښتینی URL دی; proxyAuthenticator هغه java.net.Authenticator دی چې اپلیکیشن یې برابروي. د پوښتنې اجرا د اپلیکیشن د عادي پوښتنې ژوند دورې له مخې چل او وتړئ.
د هغه تصدیقوونکي په getPasswordAuthentication میتود کې د پروکسي PasswordAuthentication یوازې هغه وخت بیرته راکړئ چې getRequestorType() == RequestorType.PROXY وي او کله چې غوښتنه کوونکی هوسټ او پورټ له تنظیم شوي منځګړي سره سمون ولري. د نااړوندو ننګونو لپاره null بیرته راکړئ. دا شی له کلاینټ سره نښلول انتخاب په همدې کلاینټ کې سیمه ییز ساتي.
ولولئ چې پروکسي څه غواړي
407 ځواب د پروکسي تصدیق ننګونه ښیي. د هغې Proxy-Authenticate سرلیک وړاندیز شوي سکیمونه بیانوي; یوازې حالت Basic له NTLM یا بل سکیم څخه نه جلا کوي.
هغه وړاندیز د ځای پر ځای شوي JDK کلاینټ وړتیاوو او تصدیق پالیسۍ سره پرتله کړئ. د کارن نوم او پټنوم ورکول ناوداني شوی سکیم نه زیاتوي. د HTTPS هدفونو لپاره د JDK jdk.http.auth.tunneling.disabledSchemes پالیسي هم وګورئ; عادي HTTP پروکسي جلا disabledSchemes ترتیب لري. د CONNECT لپاره د JDK د Basic تصدیق ډیفالټونه د دغو پالیسي څیړنو څخه یوه ده.
د Apache HttpClient او SimpleNTAuthenticator کاروونکي تاریخي Jena بېلګې زوړ transport نسل ته تړاو لري. که شرکت پروکسي د تصدیق هغه میکانیزم وغواړي چې په اوسني transport کې نشته، له شبکې مدیر سره د ملاتړ شوي یوځای کیدو ترتیبات وکړئ، پرځای د دې چې هغه زاړه تصدیق شیان په عصري جوړونکي کې دننه کړئ.