ສຳລັບສະແຕັກ HTTP ຂອງ Jena ທີ່ອີງໃສ່ JDK ເຊິ່ງນຳມາໃນ 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.http.auth.tunneling.disabledSchemes ຂອງ JDK ນຳ; ພຣັອກຊີ HTTP ທຳມະດາມີການຕັ້ງຄ່າ disabledSchemes ແຍກຕ່າງຫາກ. ຄ່າເລີ່ມຕົ້ນຂອງການຢືນຢັນ Basic ໃນ JDK ສຳລັບ CONNECT ແມ່ນໜຶ່ງໃນການກວດນະໂຍບາຍເຫຼົ່ານັ້ນ.

ຕົວຢ່າງ Jena ທາງປະຫວັດສາດທີ່ໃຊ້ Apache HttpClient ແລະ SimpleNTAuthenticator ເປັນຂອງຍຸກ transport ເກົ່າ. ຖ້າພຣັອກຊີຂອງອົງກອນຮຽກຮ້ອງກົນໄກຢືນຢັນຕົວຕົນທີ່ບໍ່ມີໃນ transport ປັດຈຸບັນ, ໃຫ້ຈັດການເຊື່ອມໂຍງທີ່ຮອງຮັບກັບຜູ້ດູແລເຄືອຂ່າຍ ແທນທີ່ຈະພະຍາຍາມຍັດວັດຖຸຢືນຢັນເກົ່າເຫຼົ່ານັ້ນເຂົ້າໃນຕົວສ້າງສະໄໝໃໝ່.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ