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 ਵਿਧੀ ਵਿੱਚ, ਪ੍ਰੌਕਸੀ ਦਾ PasswordAuthentication ਸਿਰਫ਼ ਤਦ ਹੀ ਵਾਪਸ ਕਰੋ ਜਦੋਂ getRequestorType() == RequestorType.PROXY ਹੋਵੇ ਅਤੇ ਜਦੋਂ ਬੇਨਤੀ ਕਰਨ ਵਾਲਾ ਹੋਸਟ ਅਤੇ ਪੋਰਟ ਸੰਰਚਿਤ ਵਿਚੋਲੇ ਨਾਲ ਮੇਲ ਖਾਵੇ। ਅਸੰਬੰਧਿਤ ਚੁਣੌਤੀਆਂ ਲਈ 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 ਵਿੱਚ ਉਪਲਬਧ ਨਹੀਂ, ਤਾਂ ਉਹਨਾਂ ਪੁਰਾਣੀਆਂ ਪ੍ਰਮਾਣੀਕਰਨ ਵਸਤੂਆਂ ਨੂੰ ਆਧੁਨਿਕ ਬਿਲਡਰ ਵਿੱਚ ਠੂਸਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਨ ਦੀ ਥਾਂ ਨੈੱਟਵਰਕ ਪ੍ਰਸ਼ਾਸਕ ਨਾਲ ਸਮਰਥਿਤ ਏਕੀਕਰਨ ਤੈਅ ਕਰੋ।

ਸੰਬੰਧਿਤ ਲੇਖ