Jena 4.3లో ప్రవేశపెట్టిన Jena యొక్క JDK ఆధారిత HTTP స్టాక్ కోసం, క్వెరీ నిర్మాణకర్తకు అందించే 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 పద్ధతిలో, getRequestorType() == RequestorType.PROXY అయినప్పుడు మరియు అభ్యర్థించే హోస్ట్ మరియు పోర్ట్ కాన్ఫిగర్ చేసిన మధ్యవర్తితో సరిపోలినప్పుడు మాత్రమే ప్రాక్సీ యొక్క PasswordAuthenticationను తిరిగి ఇవ్వండి. సంబంధం లేని సవాళ్లకు 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లో అందుబాటులో లేని ప్రామాణీకరణ విధానాన్ని కోరితే, ఆ పాత ప్రామాణీకరణ ఆబ్జెక్టులను ఆధునిక నిర్మాణకర్తలోకి దూర్చడానికి ప్రయత్నించకుండా నెట్‌వర్క్ నిర్వాహకుడితో మద్దతు ఉన్న సమన్వయాన్ని ఏర్పాటు చేసుకోండి.

సంబంధిత వ్యాసాలు