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 அல்லது வேறு திட்டத்திலிருந்து வேறுபடுத்தாது.
அந்த வழங்கலையும், நிறுவப்பட்ட JDK கிளையண்டின் திறன்களையும் அங்கீகாரக் கொள்கையையும் ஒப்பிடவும். பயனர் பெயரும் கடவுச்சொல்லும் வழங்குவது ஆதரிக்கப்படாத திட்டத்தைச் சேர்ப்பதில்லை. HTTPS இலக்குகளுக்கு JDK-வின் jdk.http.auth.tunneling.disabledSchemes கொள்கையையும் ஆய்வு செய்யவும்; சாதாரண HTTP ப்ராக்ஸிக்கு தனி disabledSchemes அமைப்பு உள்ளது. CONNECT-க்கான JDK-வின் Basic அங்கீகார இயல்புநிலைகள் அத்தகைய கொள்கை சரிபார்ப்புகளில் ஒன்று.
Apache HttpClient மற்றும் SimpleNTAuthenticator பயன்படுத்திய வரலாற்று Jena எடுத்துக்காட்டுகள் பழைய transport தலைமுறையைச் சேர்ந்தவை. நிறுவன ப்ராக்ஸிக்கு தற்போதைய transport-ல் கிடைக்காத அங்கீகார வழிமுறை தேவைப்பட்டால், அந்தப் பழைய அங்கீகாரப் பொருட்களை நவீன உருவாக்கிக்குள் திணிக்க முயலாமல், வலையமைப்பு நிர்வாகியுடன் ஆதரிக்கப்பட்ட ஒருங்கிணைப்பை ஏற்பாடு செய்யவும்.