ਪ੍ਰੌਕਸੀ ਦਾ ਪਤਾ Emacs ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਕਿੱਥੇ ਜੁੜਨਾ ਹੈ। ਇਸਦਾ ਲੌਗਇਨ ਗੱਲਬਾਤ ਦਾ ਇੱਕ ਹੋਰ ਹਿੱਸਾ ਹੈ। ਆਮ HTTP ਬੇਨਤੀ ਲਈ, Emacs ਦੀ URL ਲਾਇਬ੍ਰੇਰੀ ਪ੍ਰੌਕਸੀ ਦੀ ਪ੍ਰਮਾਣਿਕਤਾ ਚੁਣੌਤੀ ਦਾ ਜਵਾਬ ਦੇ ਸਕਦੀ ਹੈ, auth-source ਤੋਂ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਲੈ ਸਕਦੀ ਹੈ ਜਾਂ ਇੰਟਰਐਕਟਿਵ ਢੰਗ ਨਾਲ ਪੁੱਛ ਸਕਦੀ ਹੈ, ਅਤੇ ਸੈਸ਼ਨ ਵਿੱਚ ਰੱਖੇ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਦੁਬਾਰਾ ਵਰਤ ਸਕਦੀ ਹੈ।

ਹੇਠਾਂ ਦਿੱਤੇ ਵੇਰਵੇ Emacs 31.1 ਦੀ ਪਾਲਣਾ ਕਰਦੇ ਹਨ। ਇਹ URL ਲਾਇਬ੍ਰੇਰੀ ਵਰਤਣ ਵਾਲੀਆਂ ਕਾਰਵਾਈਆਂ ਨਾਲ ਸੰਬੰਧਿਤ ਹਨ; Emacs ਪੈਕੇਜ ਵੱਲੋਂ ਸ਼ੁਰੂ ਕੀਤੇ ਬਾਹਰੀ ਡਾਊਨਲੋਡਰ ਦਾ ਆਪਣਾ ਪ੍ਰਮਾਣਿਕਤਾ ਮਾਰਗ ਹੈ।

ਮਾਰਗ ਨਿਰਧਾਰਿਤ ਕਰੋ, ਫਿਰ HTTP ਨੂੰ ਲੌਗਇਨ ਮੰਗਣ ਦਿਓ

ਇੱਕ ਸਥਿਰ ਪ੍ਰੌਕਸੀ ਐਂਡਪੌਇੰਟ ਦਸਤਾਵੇਜ਼ੀ ਵਿਕਲਪ ਨਾਲ ਚੁਣਿਆ ਜਾ ਸਕਦਾ ਹੈ:

(setq url-proxy-services
      '(("http" . "proxy.example:8080")
        ("https" . "proxy.example:8080")))

ਪਲੇਸਹੋਲਡਰ ਨੂੰ ਦਿੱਤੇ ਗਏ ਐਂਡਪੌਇੰਟ ਨਾਲ ਬਦਲੋ। ਕੁੰਜੀਆਂ ਮੰਜ਼ਿਲ URL ਸਕੀਮਾਂ ਦਾ ਵਰਣਨ ਕਰਦੀਆਂ ਹਨ। HTTPS ਐਂਟਰੀ ਜੋੜਨਾ HTTPS ਮੰਜ਼ਿਲਾਂ ਲਈ ਮਾਰਗ ਚੁਣਦਾ ਹੈ; ਇਹ ਆਪਣੇ ਆਪ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਨਹੀਂ ਦਿੰਦਾ।

ਆਮ HTTP ਬੇਨਤੀ ਦੌਰਾਨ, ਪ੍ਰੌਕਸੀ 407 Proxy Authentication Required ਅਤੇ Proxy-Authenticate ਚੁਣੌਤੀ ਨਾਲ ਜਵਾਬ ਦੇ ਸਕਦੀ ਹੈ। URL ਲਾਇਬ੍ਰੇਰੀ ਸਮਰਥਿਤ ਪ੍ਰਮਾਣਿਕਤਾ ਸਕੀਮ ਚੁਣਦੀ ਹੈ ਅਤੇ ਪ੍ਰੌਕਸੀ ਐਂਡਪੌਇੰਟ ਲਈ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਲੈਂਦੀ ਹੈ। ਫਿਰ ਇਹ Proxy-Authorization ਨਾਲ ਦੁਬਾਰਾ ਕੋਸ਼ਿਸ਼ ਕਰਦੀ ਹੈ।

Basic ਪ੍ਰਮਾਣਿਕਤਾ ਲਈ, ਜਦੋਂ ਢੁਕਵੇਂ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਉਪਲਬਧ ਨਾ ਹੋਣ ਤਾਂ ਇੰਟਰਐਕਟਿਵ ਬੇਨਤੀ ਵਰਤੋਂਕਾਰ ਨਾਮ ਅਤੇ ਪਾਸਵਰਡ ਪੁੱਛ ਸਕਦੀ ਹੈ। ਗੈਰ-ਇੰਟਰਐਕਟਿਵ ਵਜੋਂ ਨਿਸ਼ਾਨਿਤ ਬੇਨਤੀ ਉਹਨਾਂ ਪੁੱਛਾਂ 'ਤੇ ਨਿਰਭਰ ਨਹੀਂ ਕਰ ਸਕਦੀ। ਪ੍ਰੌਕਸੀ ਲੌਗਇਨ ਮੰਜ਼ਿਲ ਵੈੱਬਸਾਈਟ ਦੇ ਲੌਗਇਨ ਤੋਂ ਵੀ ਵੱਖਰਾ ਹੈ: ਵੈੱਬਸਾਈਟ ਦੀ 401 ਚੁਣੌਤੀ ਵੱਖਰਾ ਮਾਰਗ ਅਪਣਾਉਂਦੀ ਹੈ।

ਸਥਾਈ ਪ੍ਰਮਾਣ-ਪੱਤਰ auth-source ਵਿੱਚ ਰੱਖੋ

ਜੇ auth-source ਪਹਿਲਾਂ ਹੀ ~/.authinfo.gpg ਵਰਗੀ ਐਨਕ੍ਰਿਪਟਡ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਫਾਈਲ ਪੜ੍ਹਦੀ ਹੈ, ਤਾਂ ਇਸ ਉਦਾਹਰਨ ਲਈ Basic ਐਂਟਰੀ ਦਾ ਰੂਪ ਇਸ ਤਰ੍ਹਾਂ ਹੈ:

machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD

ਆਪਣਾ ਅਸਲ ਖਾਤਾ ਅਤੇ ਭੇਤ ਵਰਤੋ, ਅਤੇ ਯਕੀਨੀ ਬਣਾਓ ਕਿ ਫਾਈਲ ਤੁਹਾਡੇ ਸੰਰਚਿਤ auth-sources ਵਿੱਚ ਹੈ। ਲਾਈਨ ਮਿਲਦੇ ਖੇਤਰ ਦਿਖਾਉਂਦੀ ਹੈ; ਇਹ ਤੁਹਾਡੀ Lisp ਸ਼ੁਰੂਆਤੀ ਫਾਈਲ ਵਿੱਚ ਪਾਸਵਰਡ ਰੱਖਣ ਦੀ ਹਦਾਇਤ ਨਹੀਂ ਹੈ।

Emacs 31.1 ਦੀ Basic ਲਾਗੂਆਈ ਵਿੱਚ ਦੋ ਵੇਰਵੇ ਮਹੱਤਵਪੂਰਨ ਹਨ। ਇਹ ਸੰਖਿਆਤਮਕ TCP ਪੋਰਟ ਤੋਂ ਬਿਨਾਂ ਪ੍ਰੌਕਸੀ ਦਾ ਹੋਸਟਨਾਮ ਖੋਜਦੀ ਹੈ, ਅਤੇ ਪ੍ਰੌਕਸੀ URL ਦੀ ਸਕੀਮ auth-source ਦੇ ਪੋਰਟ ਮੁੱਲ ਵਜੋਂ ਭੇਜਦੀ ਹੈ। ਇਸ HTTP ਪ੍ਰੌਕਸੀ ਲਈ, TCP ਕਨੈਕਸ਼ਨ ਪੋਰਟ 8080 ਵਰਤਦਾ ਹੋਣ ਬਾਵਜੂਦ, ਉਹ ਮੁੱਲ http ਹੈ।

ਇਸ ਖੋਜ ਵਿੱਚ ਚੁਣੌਤੀ ਦਾ realm ਜਾਂ ਸੰਖਿਆਤਮਕ ਪ੍ਰੌਕਸੀ ਪੋਰਟ ਸ਼ਾਮਲ ਨਹੀਂ ਹੈ। ਇੱਕੋ ਹੋਸਟਨਾਮ 'ਤੇ ਕਈ realm ਜਾਂ ਪ੍ਰੌਕਸੀ ਪੋਰਟਾਂ ਲਈ ਇਹ ਵੱਖਰੇ Basic ਪਾਸਵਰਡ ਚੁਣੇਗੀ ਅਜਿਹੀ ਆਸ ਨਾ ਰੱਖੋ। Digest ਵੱਖਰੀ ਹੋਸਟ ਖੋਜ ਵਰਤਦਾ ਹੈ, ਇਸ ਲਈ ਉਪਰੋਕਤ ਉਦਾਹਰਨ ਖਾਸ ਤੌਰ 'ਤੇ Basic ਲਈ ਹੈ।

URL ਲਾਇਬ੍ਰੇਰੀ ਆਪਣਾ ਪ੍ਰਮਾਣਿਕਤਾ ਕੈਸ਼ ਵੀ ਰੱਖਦੀ ਹੈ। ਇਸਦੀਆਂ Basic ਐਂਟਰੀਆਂ ਪ੍ਰੌਕਸੀ ਐਂਡਪੌਇੰਟ ਵੱਖਰੇ ਕਰਦੀਆਂ ਹਨ ਅਤੇ ਐਂਡਪੌਇੰਟ ਅੰਦਰ realm ਜਾਂ ਡਾਇਰੈਕਟਰੀ ਮੇਲ ਵਰਤਦੀਆਂ ਹਨ; ਉਹ ਕੈਸ਼ auth-source ਖੋਜ ਤੋਂ ਵੱਖਰਾ ਹੈ। ਪ੍ਰੌਂਪਟ 'ਤੇ ਪਾਸਵਰਡ ਟਾਈਪ ਕਰਨਾ ਤੁਹਾਡੀ ਸਥਾਈ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਫਾਈਲ ਵਿੱਚ ਨਵੀਂ ਐਂਟਰੀ ਸੰਭਾਲੇ ਬਿਨਾਂ ਸੈਸ਼ਨ ਕੈਸ਼ ਭਰ ਸਕਦਾ ਹੈ।

HTTPS ਵਿੱਚ ਪਹਿਲਾਂ ਦਾ ਪ੍ਰਮਾਣਿਕਤਾ ਕਦਮ ਹੈ

HTTP ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ HTTPS ਮੰਜ਼ਿਲ ਲਈ, Emacs ਪਹਿਲਾਂ CONNECT ਭੇਜਦੀ ਹੈ। ਇਸ ਲਈ ਵੈੱਬਸਾਈਟ ਨਾਲ ਐਨਕ੍ਰਿਪਟਡ ਕਨੈਕਸ਼ਨ ਤੱਕ ਪਹੁੰਚਣ ਤੋਂ ਪਹਿਲਾਂ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੋ ਸਕਦੀ ਹੈ।

Emacs 31.1 ਵਿੱਚ, CONNECT ਬੇਨਤੀ ਬਣਾਉਣ ਵਾਲਾ ਆਪਣੀ ਪ੍ਰਮਾਣਿਕਤਾ ਮਸ਼ੀਨਰੀ ਰਾਹੀਂ ਪਹਿਲਾਂ ਹੀ ਉਪਲਬਧ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹੈ, ਕੈਸ਼ ਕੀਤੇ Basic ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਸਮੇਤ। ਇਸਦਾ Basic ਮਾਰਗ ਉਸ ਸਮੇਂ ਨਵੀਂ auth-source ਐਂਟਰੀ ਨਹੀਂ ਮੰਗਦਾ ਜਾਂ ਲਿਆਂਦਾ ਨਹੀਂ। 200 ਤੋਂ ਇਲਾਵਾ CONNECT ਜਵਾਬ ਵੀ ਉੱਪਰ ਵਰਣਿਤ ਆਮ HTTP 407 ਚੁਣੌਤੀ ਹੈਂਡਲਰ ਵਿੱਚ ਦਾਖਲ ਨਹੀਂ ਹੁੰਦਾ।

ਇਸ ਲਈ, ਆਮ HTTP Basic ਚੁਣੌਤੀ ਦਾ ਜਵਾਬ ਦੇ ਸਕਣ ਵਾਲੀ auth-source ਐਂਟਰੀ ਗਾਰੰਟੀ ਨਹੀਂ ਦਿੰਦੀ ਕਿ ਨਵੇਂ ਸੈਸ਼ਨ ਦੀ ਪਹਿਲੀ HTTPS ਬੇਨਤੀ ਸਫਲਤਾਪੂਰਵਕ ਪ੍ਰਮਾਣਿਤ ਹੋਵੇਗੀ। ਢੁਕਵੇਂ ਕੈਸ਼ ਪ੍ਰਮਾਣ-ਪੱਤਰਾਂ ਵਾਲੇ ਸੈਸ਼ਨ ਦੀ ਸ਼ੁਰੂਆਤੀ ਸਥਿਤੀ ਵੱਖਰੀ ਹੁੰਦੀ ਹੈ। ਉਹੀ ਪਾਸਵਰਡ ਐਂਟਰੀ ਵਾਰ-ਵਾਰ ਸੰਪਾਦਿਤ ਕਰਨਾ ਦੋਵਾਂ ਮਾਰਗਾਂ ਵਿਚਕਾਰ ਇਹ ਫ਼ਰਕ ਆਪਣੇ ਆਪ ਦੂਰ ਨਹੀਂ ਕਰ ਸਕਦਾ।

ਜੇ HTTPS ਕਾਰਵਾਈ ਪ੍ਰੌਕਸੀ 'ਤੇ ਰੁਕਦੀ ਹੈ, ਤਾਂ ਨਿਰਧਾਰਿਤ ਕਰੋ ਕਿ CONNECT ਨੂੰ 407 ਮਿਲਿਆ ਜਾਂ ਨਹੀਂ ਅਤੇ ਕੀ ਤੁਸੀਂ ਇਸ ਰੀਲੀਜ਼ ਦਾ ਵਿਵਹਾਰ ਵਰਤ ਰਹੇ ਹੋ। ਪ੍ਰੌਕਸੀ ਵੱਲੋਂ ਦਿੱਤੀ ਪ੍ਰਮਾਣਿਕਤਾ ਸਕੀਮ ਵੀ ਪੁਸ਼ਟੀ ਕਰੋ। Basic ਪ੍ਰਮਾਣ-ਪੱਤਰ ਐਂਟਰੀ ਹਰ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਪ੍ਰਮਾਣਿਕਤਾ ਪ੍ਰਣਾਲੀ ਲਈ ਸਰਵਵਿਆਪੀ ਅਡਾਪਟਰ ਨਹੀਂ ਹੈ।

ਸਥਾਈ ਸੰਰਚਨਾ ਨੂੰ ਜਨਤਕ ਪ੍ਰੌਕਸੀ ਵਿਕਲਪ ਵਿੱਚ ਅਤੇ ਤੁਹਾਡੇ ਚੁਣੇ ਪ੍ਰਮਾਣ-ਪੱਤਰ ਬੈਕਐਂਡ ਵਿੱਚ ਰੱਖੋ। URL ਲਾਇਬ੍ਰੇਰੀ ਦਾ ਅੰਦਰੂਨੀ Basic ਸਟੋਰ ਇਸ ਵਿਵਹਾਰ ਨੂੰ ਸਮਝਣ ਲਈ ਲਾਭਦਾਇਕ ਹੈ, ਪਰ ਉਸ ਨਿੱਜੀ ਡੇਟਾ ਢਾਂਚੇ ਨੂੰ ਹੱਥੀਂ ਭਰਨਾ ਸੈੱਟਅੱਪ ਨੂੰ ਲਾਗੂਆਈ ਵੇਰਵਿਆਂ ਨਾਲ ਬੰਨ੍ਹ ਦੇਵੇਗਾ।

ਸੰਬੰਧਿਤ ਲੇਖ