Go ಫಾರ್ವರ್ಡ್ ಪ್ರಾಕ್ಸಿಯಲ್ಲಿ r.BasicAuth Authorization ಹೆಡರ್ ಅನ್ನು ಓದುತ್ತದೆ, ಅದು ಗಮ್ಯ ವೆಬ್‌ಸೈಟ್‌ನ ಲಾಗಿನ್‌ಗೆ ಸೇರಿದ್ದು. ಪ್ರಾಕ್ಸಿಯ ಸ್ವಂತ ರುಜುವಾತುಗಳು Proxy-Authorization ನಲ್ಲಿ ಬರುತ್ತವೆ.

ಒಂದು ಸಣ್ಣ ಅಡಾಪ್ಟರ್ ಮೂಲ ವಿನಂತಿಯನ್ನು ಬದಲಿಸದೆ ಸಾರ್ವಜನಿಕ ಪಾರ್ಸರ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಬಹುದು:

func proxyBasicAuth(r *http.Request) (string, string, bool) {
    headers := make(http.Header)
    headers.Set("Authorization", r.Header.Get("Proxy-Authorization"))
    return (&http.Request{Header: headers}).BasicAuth()
}

ಈ ತುಣುಕು net/http ಬಳಸುತ್ತದೆ. ವಿಶ್ಲೇಷಿಸಿದ ಮೌಲ್ಯಗಳನ್ನು ಮತ್ತು ವಿಶ್ಲೇಷಣೆಯ ಯಶಸ್ಸಿನ ಸೂಚಕವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ; ಇದು ಖಾತೆಯನ್ನು ದೃಢೀಕರಿಸುವುದಿಲ್ಲ. ಫಲಿತಾಂಶವನ್ನು ಪ್ರಾಕ್ಸಿಯ ಉದ್ದೇಶಿತ ರುಜುವಾತು ಪರಿಶೀಲಕಕ್ಕೆ ನೀಡಿ.

ದೃಢೀಕರಣ ವಿಫಲವಾದರೆ, ಸೂಕ್ತವಾದ Proxy-Authenticate ಸವಾಲಿನೊಂದಿಗೆ 407 ಹಿಂತಿರುಗಿಸಿ ಮತ್ತು ಆ ವಿನಂತಿಯ ಸಂಸ್ಕರಣೆಯನ್ನು ನಿಲ್ಲಿಸಿ. ಗಮ್ಯಕ್ಕೆ ಸಂಪರ್ಕ ತೆರೆಯುವ ಮೊದಲು ಅಥವಾ CONNECT ಸುರಂಗವನ್ನು ಸ್ವೀಕರಿಸುವ ಮೊದಲು ದೃಢೀಕರಿಸಿ.

ರುಜುವಾತುಗಳನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಸಾಮಾನ್ಯ ಮುಂದಕ್ಕೆ ರವಾನೆಯ ಮೊದಲು ಪ್ರಾಕ್ಸಿಯ ಸ್ವಂತ Proxy-Authorization ಹೆಡರ್ ಅನ್ನು ಬಳಸಿ. ಮೂಲಕ್ಕಾಗಿ ಮೂಲ Authorization ಕ್ಷೇತ್ರವನ್ನು ಉಳಿಸಿ. ಮೇಲಿನ ಪೋಷಕ ಪ್ರಾಕ್ಸಿ ಇದ್ದರೆ, ಈ ಕ್ಲೈಂಟ್ ರುಜುವಾತು ಆಕಸ್ಮಿಕವಾಗಿ ಸಿಗುವ ಬದಲು ಅದಕ್ಕೆ ತನ್ನದೇ ಆದ ಉದ್ದೇಶಿತ ದೃಢೀಕರಣ ವ್ಯವಸ್ಥೆ ಬೇಕು.

ಸಂಬಂಧಿತ ಲೇಖನಗಳು