Log masuk proksi URL dalam Emacs 31.1: auth-source dan had CONNECT
Konfigurasikan proksi HTTP yang disahkan untuk pustaka URL Emacs, fahami carian kelayakan Basic-nya, dan ambil kira laluan HTTPS CONNECT dalam Emacs 31.1.
Alamat proksi memberitahu Emacs ke mana hendak bersambung. Log masuknya ialah bahagian lain dalam perbualan. Untuk permintaan HTTP biasa, pustaka URL Emacs boleh menjawab cabaran pengesahan proksi, mendapatkan kelayakan daripada auth-source atau bertanya secara interaktif, dan menggunakan semula kelayakan yang dipegang dalam sesi.
Butiran di bawah mengikut Emacs 31.1. Ia berkaitan operasi yang menggunakan pustaka URL; pemuat turun luaran yang dilancarkan oleh pakej Emacs mempunyai laluan pengesahannya sendiri.
Tetapkan laluan, kemudian biarkan HTTP meminta log masuk
Titik akhir proksi tetap boleh dipilih dengan pilihan yang didokumenkan:
(setq url-proxy-services
'(("http" . "proxy.example:8080")
("https" . "proxy.example:8080")))
Gantikan pemegang tempat dengan titik akhir yang dibekalkan. Kunci menerangkan skema URL destinasi. Menambah entri HTTPS memilih laluan untuk destinasi HTTPS; ia sendiri tidak membekalkan kelayakan.
Semasa permintaan HTTP biasa, proksi boleh bertindak balas dengan 407 Proxy Authentication Required dan cabaran Proxy-Authenticate. Pustaka URL memilih skema pengesahan yang disokong dan mendapatkan kelayakan untuk titik akhir proksi. Kemudian ia mencuba semula dengan Proxy-Authorization.
Untuk pengesahan Basic, permintaan interaktif boleh meminta nama pengguna dan kata laluan apabila kelayakan yang sesuai tidak tersedia. Permintaan yang ditandakan sebagai tidak interaktif tidak boleh bergantung pada gesaan itu. Log masuk proksi juga berasingan daripada log masuk laman web destinasi: cabaran 401 sesebuah laman web mengikut laluan yang berbeza.
Letakkan kelayakan berterusan dalam auth-source
Jika auth-source sudah membaca fail kelayakan yang disulitkan seperti ~/.authinfo.gpg, entri Basic untuk contoh ini mempunyai bentuk berikut:
machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD
Gunakan akaun dan rahsia sebenar anda, dan pastikan fail itu antara auth-sources yang anda konfigurasikan. Baris itu menggambarkan medan yang sepadan; ia bukan arahan untuk meletakkan kata laluan dalam fail permulaan Lisp anda.
Dua butiran penting dalam pelaksanaan Basic Emacs 31.1. Ia mencari nama hos proksi tanpa port TCP berangka, dan ia menyalurkan skema URL proksi sebagai nilai port auth-source. Untuk proksi HTTP ini, nilai itu ialah http, walaupun sambungan TCP menggunakan port 8080.
Carian ini tidak termasuk realm cabaran atau port proksi berangka. Jangan jangkakan ia memilih kata laluan Basic berbeza untuk beberapa realm atau port proksi pada nama hos yang sama. Digest menggunakan carian hos yang berbeza, jadi contoh di atas khusus untuk Basic.
Pustaka URL juga menyimpan cache pengesahannya sendiri. Entri Basic-nya membezakan titik akhir proksi dan menggunakan padanan realm atau direktori dalam sesuatu titik akhir; cache itu berasingan daripada carian auth-source. Menaip kata laluan pada gesaan boleh mengisi cache sesi tanpa menyimpan entri baharu dalam fail kelayakan berterusan anda.
HTTPS mempunyai langkah pengesahan yang lebih awal
Untuk destinasi HTTPS melalui proksi HTTP, Emacs menghantar CONNECT dahulu. Oleh itu pengesahan mungkin diperlukan sebelum ia mencapai sambungan tersulit ke laman web.
Dalam Emacs 31.1, pembina permintaan CONNECT menyemak pengesahan yang sudah tersedia melalui mesin pengesahannya, termasuk kelayakan Basic yang dicache. Laluan Basic-nya tidak meminta atau mengambil entri auth-source baharu pada ketika itu. Respons CONNECT yang bukan 200 juga tidak masuk ke pengendali cabaran HTTP 407 biasa yang diterangkan di atas.
Akibatnya, entri auth-source yang boleh menjawab cabaran HTTP Basic biasa tidak menjamin bahawa permintaan HTTPS pertama sesi baharu akan disahkan dengan jayanya. Sesi dengan kelayakan cache yang sesuai mempunyai keadaan permulaan yang berbeza. Menyunting entri kata laluan yang sama berulang kali tidak dapat dengan sendirinya menghapuskan perbezaan ini antara kedua-dua laluan.
Jika operasi HTTPS berhenti pada proksi, tentukan sama ada CONNECT menerima 407 dan sama ada anda menggunakan tingkah laku keluaran ini. Sahkan juga skema pengesahan yang ditawarkan oleh proksi. Entri kelayakan Basic bukan penyesuai universal untuk setiap sistem pengesahan perusahaan.
Simpan konfigurasi tahan lama dalam pilihan proksi awam dan dalam bahagian belakang kelayakan pilihan anda. Storan Basic dalaman pustaka URL berguna untuk memahami tingkah laku ini, tetapi mengisi struktur data peribadi itu secara manual akan mengikat persediaan kepada butiran pelaksanaan.