Jena 4.3+ SPARQL සේවාදායකයන් සඳහා ප්රොක්සි සත්යාපනය
නවීන Jena විමසුම් ක්රියාත්මක කිරීම භාවිතා කරන JDK HTTP සේවාදායකයට ප්රොක්සි තෝරකයක් සහ සත්යාපකයක් සම්බන්ධ කරන්න.
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 හෝ වෙනත් ක්රමයකින් වෙන් නොකරයි.
එම ඉදිරිපත් කිරීම deployed JDK සේවාදායකයේ හැකියාවන් සහ සත්යාපන ප්රතිපත්තිය සමඟ සසඳන්න. පරිශීලක නාමය සහ මුරපදය ලබා දීමෙන් සහාය නොදක්වන ක්රමයක් එකතු නොවේ. HTTPS ගමනාන්ත සඳහා JDK හි jdk.http.auth.tunneling.disabledSchemes ප්රතිපත්තිය ද පරීක්ෂා කරන්න; සාමාන්ය HTTP ප්රොක්සියට වෙනම disabledSchemes සැකසුමක් ඇත. CONNECT සඳහා JDK හි Basic සත්යාපන පෙරනිමි එවැනි ප්රතිපත්ති පරීක්ෂාවකි.
Apache HttpClient සහ SimpleNTAuthenticator භාවිතා කළ ඓතිහාසික Jena උදාහරණ පැරණි transport පරම්පරාවට අයත් වේ. ආයතනික ප්රොක්සිය වර්තමාන transport හි නොමැති සත්යාපන ක්රමවේදයක් ඉල්ලා සිටින්නේ නම්, එම පැරණි සත්යාපන වස්තු නවීන ගොඩනඟන්නාට තල්ලු කිරීමට උත්සාහ කරනවා වෙනුවට ජාල පරිපාලක සමඟ සහාය දක්වන ඒකාබද්ධතාවක් සකසන්න.