Emacs 31.1 లో URL ప్రాక్సీ లాగిన్: auth-source మరియు CONNECT పరిమితులు
Emacs యొక్క URL లైబ్రరీ కోసం ధృవీకరించిన HTTP ప్రాక్సీని కాన్ఫిగర్ చేయండి, దాని Basic ఆధారాల శోధనను అర్థం చేసుకోండి, మరియు Emacs 31.1 లో HTTPS CONNECT మార్గాన్ని పరిగణించండి.
ప్రాక్సీ చిరునామా 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 నిల్వ ఈ ప్రవర్తనను అర్థం చేసుకోవడానికి ఉపయోగకరం, కానీ ఆ ప్రైవేట్ డేటా నిర్మాణాన్ని చేతితో నింపడం సెటప్ను అమలు వివరాలతో బంధిస్తుంది.