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 طریقے میں، پراکسی کا 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 میں دستیاب نہیں، تو ان پرانے توثیقی آبجیکٹس کو جدید بنانے والے میں ٹھونسنے کی کوشش کے بجائے نیٹ ورک منتظم کے ساتھ معاون انضمام طے کریں۔

متعلقہ مضامین