Ìwọlé prókísì URL nínú Emacs 31.1: auth-source àti àwọn ààlà CONNECT
Ṣètò prókísì HTTP tí ó nílò ìjẹ́rìí fún kànnàkànnà URL ti Emacs, yé ìwárí ẹ̀rí Basic rẹ̀, kí o sì kíyèsí ipa HTTPS CONNECT nínú Emacs 31.1.
Àdírẹ́sì prókísì náà sọ fún Emacs ibi tí ó yẹ kó so mọ́. Ìwọlé rẹ̀ jẹ́ apá mìíràn nínú ìjíròrò náà. Fún ìbéèrè HTTP lasan, kànnàkànnà URL ti Emacs lè dáhùn ìpèníjà ìjẹ́rìí prókísì, gba ẹ̀rí láti auth-source tàbí béèrè lọ́nà ìbánisọ̀rọ̀, kí ó sì tún ẹ̀rí tí a pa mọ́ nínú ìpàdé náà lò.
Àwọn àlàyé tí ó wà nísàlẹ̀ ń tẹ̀lé Emacs 31.1. Wọ́n kan àwọn iṣẹ́ tí ń lo kànnàkànnà URL; ẹ̀rọ ìgbàsílẹ̀ ìta tí àkójọpọ̀ Emacs bẹ̀rẹ̀ ní ọ̀nà ìjẹ́rìí tirẹ̀.
Ṣètò ipa náà, kí HTTP lè béèrè ìwọlé
A lè yan ibi ìparí prókísì tí ó dúró ṣinṣin pẹ̀lú àṣàyàn tí a kọ sínú ìwé:
(setq url-proxy-services
'(("http" . "proxy.example:8080")
("https" . "proxy.example:8080")))
Rọ́pò ààyè náà pẹ̀lú ibi ìparí tí a fún ọ. Àwọn kọ́kọ́rọ́ náà ṣàpèjúwe àwọn ètò URL ibi tí a ń lọ. Fífi àkọsílẹ̀ HTTPS kún un yan ipa fún àwọn ibi HTTPS; kò fúnni ní ẹ̀rí fúnra rẹ̀.
Nínú ìbéèrè HTTP lasan, prókísì lè dáhùn pẹ̀lú 407 Proxy Authentication Required àti ìpèníjà Proxy-Authenticate. Kànnàkànnà URL yan ètò ìjẹ́rìí tí a ṣe àtìlẹ́yìn fún, ó sì gba ẹ̀rí fún ibi ìparí prókísì. Lẹ́yìn náà ó tún gbìyànjú pẹ̀lú Proxy-Authorization.
Fún ìjẹ́rìí Basic, ìbéèrè ìbánisọ̀rọ̀ lè béèrè orúkọ olùlò àti ọ̀rọ̀ ìkọ̀kọ̀ nígbà tí kò sí ẹ̀rí tí ó yẹ. Ìbéèrè tí a sàmì sí gẹ́gẹ́ bí aláìbánisọ̀rọ̀ kò lè gbára lé àwọn ìbéèrè yẹn. Ìwọlé prókísì yàtọ̀ sí ìwọlé ojúèwé ibi tí a ń lọ pẹ̀lú: ìpèníjà 401 ojúèwé kan ń tẹ̀lé ipa mìíràn.
Fi ẹ̀rí ayérayé sínú auth-source
Tí auth-source bá ti ń ka fáìlì ẹ̀rí tí a fi kọ́ọ̀dù pa mọ́ bí ~/.authinfo.gpg, àkọsílẹ̀ Basic fún àpẹẹrẹ yìí ní ìrísí yìí:
machine proxy.example port http login YOUR_LOGIN password YOUR_PASSWORD
Lo àkọsílẹ̀ àti àṣírí rẹ gidi, kí o sì rí i dájú pé fáìlì náà wà nínú auth-sources tí o ṣètò. Ìlà náà ṣàpèjúwe àwọn pápá tí ó bára mu; kì í ṣe ìtọ́ni láti fi ọ̀rọ̀ ìkọ̀kọ̀ sínú fáìlì ìbẹ̀rẹ̀ Lisp rẹ.
Àlàyé méjì ṣe pàtàkì nínú ìmúṣẹ Basic ti Emacs 31.1. Ó ń wá orúkọ agbàlejò prókísì láìsí ẹnu-ọ̀nà TCP oníhà, ó sì ń fi ètò URL prókísì ránṣẹ́ gẹ́gẹ́ bí iye ẹnu-ọ̀nà auth-source. Fún prókísì HTTP yìí, iye yẹn ni http, bí ó tilẹ̀ jẹ́ pé ìsopọ̀ TCP ń lo ẹnu-ọ̀nà 8080.
Ìwárí yìí kò ní realm ìpèníjà náà tàbí ẹnu-ọ̀nà prókísì oníhà. Má ṣe retí pé yóò yan ọ̀rọ̀ ìkọ̀kọ̀ Basic ọ̀tọ̀ọ̀tọ̀ fún ọ̀pọ̀ realm tàbí ẹnu-ọ̀nà prókísì lórí orúkọ agbàlejò kan náà. Digest ń lo ìwárí agbàlejò mìíràn, nítorí náà àpẹẹrẹ tí ó wà lókè jẹ́ ti Basic ní pàtàkì.
Kànnàkànnà URL tún pa káṣì ìjẹ́rìí tirẹ̀ mọ́. Àwọn àkọsílẹ̀ Basic rẹ̀ yàtọ̀ àwọn ibi ìparí prókísì, wọ́n sì ń lo ìbáramu realm tàbí àkójọpọ̀ fáìlì nínú ibi ìparí; káṣì yẹn yàtọ̀ sí ìwárí auth-source. Fífi ọ̀rọ̀ ìkọ̀kọ̀ kọ̀wé ní ibi ìbéèrè lè kún káṣì ìpàdé láìsí fífi àkọsílẹ̀ tuntun pamọ́ sínú fáìlì ẹ̀rí ayérayé rẹ.
HTTPS ní ìgbésẹ̀ ìjẹ́rìí tí ó ṣáájú
Fún ibi HTTPS nípasẹ̀ prókísì HTTP, Emacs kọ́kọ́ ń fi CONNECT ránṣẹ́. Nítorí náà ìjẹ́rìí lè nílò kí ó tó dé ìsopọ̀ tí a fi kọ́ọ̀dù pa mọ́ pẹ̀lú ojúèwé náà.
Nínú Emacs 31.1, olùkọ́ CONNECT ìbéèrè ń yẹ̀wò ìjẹ́rìí tí ó ti wà tẹ́lẹ̀ nípasẹ̀ ẹ̀rọ ìjẹ́rìí rẹ̀, pẹ̀lú ẹ̀rí Basic tí a ti káṣì. Ọ̀nà Basic rẹ̀ kò béèrè tàbí mú àkọsílẹ̀ auth-source tuntun wá ní àkókò yẹn. Ìdáhùn CONNECT tí kì í ṣe 200 kò sì wọ inú olùṣàkóso ìpèníjà HTTP 407 lasan tí a ṣàpèjúwe lókè.
Nítorí náà, àkọsílẹ̀ auth-source tí ó lè dáhùn ìpèníjà HTTP Basic lasan kò dáàbò bo pé ìbéèrè HTTPS àkọ́kọ́ ti ìpàdé tuntun yóò jẹ́rìí ní àṣeyọrí. Ìpàdé tí ó ní ẹ̀rí káṣì tí ó yẹ ní ipò ìbẹ̀rẹ̀ mìíràn. Ṣíṣe àtúnṣe àkọsílẹ̀ ọ̀rọ̀ ìkọ̀kọ̀ kan náà lẹ́ẹ̀mẹ́kọ̀ọ̀kan kò lè mú ìyàtọ̀ yìí kúrò láàárín àwọn ipa méjèèjì fúnra rẹ̀.
Tí iṣẹ́ HTTPS bá dúró ní prókísì, ṣèwádìí bóyá CONNECT gba 407 àti bóyá ìwọ ń lo ìhùwàsí àtẹ̀jáde yìí. Ṣèjẹ́rìí ètò ìjẹ́rìí tí prókísì ń fi lọ́lá pẹ̀lú. Àkọsílẹ̀ ẹ̀rí Basic kì í ṣe ẹ̀rọ ìsopọ̀ àgbáyé fún gbogbo ètò ìjẹ́rìí ilé-iṣẹ́.
Pa ìṣètò ayérayé mọ́ nínú àṣàyàn prókísì gbangba àti nínú ẹ̀yìn ẹ̀rí tí o yàn. Ilé ìpamọ́ Basic inú kànnàkànnà URL wúlò fún òye ìhùwàsí yìí, ṣùgbọ́n fífi ọwọ́ kún ìlàlẹ̀ dátà aládàáni yẹn yóò so ìṣètò náà mọ́ àwọn àlàyé ìmúṣẹ.