אויטענטיפיקאציע דורך פּראָקסי פֿאַר Jena 4.3+ SPARQL קליענטן
באַהעפֿט אַ פּראָקסי־אויסקלײַבער און אויטענטיפֿיקאַטאָר צום JDK HTTP קליענט וואָס די מאָדערנע Jena אָפּפֿרעג־אויספֿירונג ניצט.
פֿאַר Jena's 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 איז דער עמעס־URL פֿון דעם SPARQL־דינסט; 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־איינשטעלונג. די JDK־פֿאַרבאַשטימונגען פֿאַר Basic־אויטענטיפֿיקאַציע בײַ CONNECT זענען איינע פֿון אַזוילכע פּאָליטיק־פּרויפֿונגען.
היסטאָרישע Jena־בײַשפּילן מיט Apache HttpClient און SimpleNTAuthenticator געהערן צו אַן עלטערער transport־דור. אויב דער פֿירמע־פּראָקסי פֿאָדערט אַ מעכאַניזם פֿאַר אויטענטיפֿיקאַציע וואָס פֿעלט אין דעם איצטיקן transport, פֿאַרשטייט זיך מיט אַן אונטערשטיצטער אינטעגראַציע מיטן נעצווערק־אַדמיניסטראַטאָר אַנשטאָט פּרויען אַרײַנצושטופּן יענע אַלטע אויטענטיפֿיקאַציע־אָביעקטן אין דעם מאָדערנעם בויער.