Kwa safu ya HTTP ya Jena inayotegemea JDK, iliyoanzishwa katika Jena 4.3, sanidi transport inayopitishwa kwa mjenzi wa hoja. Nenosiri la kituo cha mwisho cha SPARQL na nenosiri la proksi zinaweza kuombwa na mashine tofauti.

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();

Kipande hiki hujenga utekelezaji wa hoja. endpointUrl ni URL halisi ya huduma ya SPARQL; proxyAuthenticator ni java.net.Authenticator inayotolewa na programu. Endesha na funga utekelezaji wa hoja kupitia mzunguko wa kawaida wa maisha wa hoja za programu.

Katika mbinu ya getPasswordAuthentication ya kithibitishaji hicho, rudisha PasswordAuthentication ya proksi ikiwa tu getRequestorType() == RequestorType.PROXY na ikiwa mwenyeji na bandari zinazoomba zinalingana na mpatanishi aliyesanidiwa. Rudisha null kwa changamoto zisizohusiana. Kuambatisha kipengee hiki kwenye mteja huweka chaguo kuwa la ndani kwa mteja huyo.

Soma kile proksi inachoomba

Jibu la 407 linaonyesha changamoto ya uthibitishaji wa proksi. Kichwa chake cha Proxy-Authenticate hueleza mifumo inayotolewa; hali pekee haitofautishi Basic na NTLM au mfumo mwingine.

Linganisha toleo hilo na uwezo na sera ya uthibitishaji ya mteja wa JDK aliyesambazwa. Kutoa jina la mtumiaji na nenosiri hakuongezi mfumo usioungwa mkono. Kwa maeneo ya HTTPS, chunguza pia sera ya jdk.http.auth.tunneling.disabledSchemes ya JDK; proksi ya kawaida ya HTTP ina mpangilio tofauti wa disabledSchemes. Thamani chaguo-msingi za JDK za uthibitishaji wa Basic kwenye CONNECT ni mojawapo ya ukaguzi huo wa sera.

Mifano ya kihistoria ya Jena inayotumia Apache HttpClient na SimpleNTAuthenticator ni ya kizazi cha zamani cha transport. Ikiwa proksi ya kampuni inahitaji mbinu ya uthibitishaji isiyopatikana katika transport ya sasa, panga muunganisho unaoungwa mkono na msimamizi wa mtandao badala ya kujaribu kusukuma vitu hivyo vya zamani vya uthibitishaji kwenye mjenzi wa kisasa.

Makala zinazohusiana