La adreso de la prokuro diras al Emacs, kien konektiĝi. Ĝia ensaluto estas alia parto de la interparolo. Por ordinara HTTP-peto, la URL-biblioteko de Emacs povas respondi al aŭtentiga defio de la prokuro, akiri legitimojn el auth-source aŭ demandi interage, kaj reuzi legitimojn tenatajn en la seanco.

La subaj detaloj sekvas Emacs 31.1. Ili koncernas operaciojn uzantajn la URL-bibliotekon; ekstera elŝutilo lanĉita de Emacs-pakaĵo havas sian propran aŭtentigan vojon.

Agordu la itineron, poste lasu HTTP peti la ensaluton

Fiksa prokura finpunkto povas esti elektita per la dokumentita opcio:

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

Anstataŭigu la lokokupon per la liverita finpunkto. La ŝlosiloj priskribas la URL-skemon de la celo. Aldoni la HTTPS-eron elektas itineron por HTTPS-celoj; ĝi mem ne provizas legitimojn.

Dum ordinara HTTP-peto, prokuro povas respondi per 407 Proxy Authentication Required kaj Proxy-Authenticate-defio. La URL-biblioteko elektas subtenatan aŭtentigan skemon kaj akiras legitimojn por la prokura finpunkto. Poste ĝi reprovas per Proxy-Authorization.

Por Basic-aŭtentigo, interaga peto povas demandi uzantnomon kaj pasvorton kiam taŭgaj legitimoj ne disponeblas. Peto markita kiel neinteraga ne povas fidi tiujn demandojn. La prokura ensaluto ankaŭ estas aparta de la ensaluto de cela retejo: la 401-defio de retejo sekvas alian vojon.

Metu daŭrajn legitimojn en auth-source

Se auth-source jam legas ĉifritan legitiman dosieron kiel ~/.authinfo.gpg, Basic-ero por ĉi tiu ekzemplo havas la sekvan formon:

machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD

Uzu vian efektivan konton kaj sekreton, kaj certigu, ke la dosiero estas inter viaj agorditaj auth-sources. La linio ilustras kongruajn kampojn; ĝi ne estas instrukcio meti pasvorton en vian Lisp-agordan dosieron.

Du detaloj gravas en la Basic-implemento de Emacs 31.1. Ĝi serĉas la gastignomon de la prokuro sen la numera TCP-pordo, kaj ĝi pasigas la skemon de la prokura URL kiel la pordan valoron de auth-source. Por ĉi tiu HTTP-prokuro, tiu valoro estas http, kvankam la TCP-konekto uzas pordon 8080.

Ĉi tiu serĉado ne inkluzivas la realm de la defio nek la numeran prokuran pordon. Ne atendu, ke ĝi elektos malsamajn Basic-pasvortojn por pluraj realm-oj aŭ prokuraj pordoj ĉe la sama gastignomo. Digest uzas alian gastigantan serĉadon, do la supra ekzemplo estas specife por Basic.

La URL-biblioteko ankaŭ tenas sian propran aŭtentigan kaŝmemoron. Ĝiaj Basic-eroj distingas prokurajn finpunktojn kaj uzas realm- aŭ dosierujan kongruon ene de finpunkto; tiu kaŝmemoro estas aparta de la serĉado en auth-source. Tajpi pasvorton ĉe invito povas plenigi la seancon-kaŝmemoron sen konservi novan eron en via daŭra legitima dosiero.

HTTPS havas pli fruan aŭtentigan paŝon

Por HTTPS-celo tra HTTP-prokuro, Emacs unue sendas CONNECT. Aŭtentigo do povas esti bezonata antaŭ ol ĝi atingas la ĉifritan konekton al la retejo.

En Emacs 31.1, la konstruilo de CONNECT-petoj kontrolas aŭtentigon jam disponeblan per sia aŭtentiga maŝinaro, inkluzive kaŝmemoritajn Basic-legitimojn. Ĝia Basic-vojo ne demandas nek alportas novan auth-source-eron tiupunkte. CONNECT-respondo kiu ne estas 200 ankaŭ ne eniras la ordinaran HTTP 407-defian traktilon priskribitan supre.

Sekve, auth-source-ero kiu povas respondi al normala HTTP Basic-defio ne garantias, ke la unua HTTPS-peto de nova seanco aŭtentiĝos sukcese. Seanco kun taŭgaj kaŝmemoritaj legitimoj havas alian komencan staton. Ripeta redaktado de la sama pasvorta ero ne povas per si mem forigi ĉi tiun diferencon inter la du vojoj.

Se HTTPS-operacio haltas ĉe la prokuro, konstatigu ĉu CONNECT ricevis 407 kaj ĉu vi uzas la konduton de ĉi tiu eldono. Konfirmu ankaŭ la aŭtentigan skemon proponitan de la prokuro. Basic-legitima ero ne estas universala adaptilo por ĉiu entreprena aŭtentiga sistemo.

Konservu la daŭran agordon en la publika prokura opcio kaj en via elektita legitima dorsa sistemo. La interna Basic-tenejo de la URL-biblioteko utilas por kompreni ĉi tiun konduton, sed mane plenigi tiun privatan datumstrukturon ligus la agordon al efektivigaj detaloj.

Rilataj artikoloj