Apache HttpClient biết mật khẩu nhưng vẫn nhận 407
Khớp thông tin xác thực proxy của Apache HttpClient với tuyến proxy thực tế và phân biệt thử thách xác thực với đăng nhập thất bại.
Mật khẩu đúng ở nhà cung cấp không tạo ra thông tin xác thực khớp cho proxy thực sự được chọn. Hãy bắt đầu với lược đồ, máy chủ và cổng của điểm cuối đó; trường máy chủ thường chỉ nhận tên máy chủ hoặc IP, không nhận URL đầy đủ.
- Đọc toàn bộ quá trình trao đổi xác thực. Một 407 theo sau là lần thử lại được chấp nhận có thể là bình thường. Xác nhận kết quả cuối cùng vẫn là 407 trước khi coi đăng nhập là bị từ chối.
- So sánh tuyến và phạm vi thông tin xác thực. Khớp máy chủ/cổng thực tế và các trường khác do HttpClient 5 AuthScope đã triển khai định nghĩa. Cổng sai có thể khiến BasicCredentialsProvider không có mục phù hợp.
- Kiểm tra phương thức và danh tính. Proxy có cung cấp phương thức được hỗ trợ không? Lần thử lại có dùng kết nối mong đợi không? Nhà vận hành có yêu cầu tài khoản đủ điều kiện theo miền hoặc định dạng được ghi chép khác không?
Dùng API của phiên bản chính đã cài. Công thức bộ nhớ đệm xác thực của HttpClient 4 không chuyển nguyên vẹn sang phiên bản 5. Hãy dùng yêu cầu tài khoản của nhà vận hành thay vì thử các biến thể tên người dùng tùy ý.
Xác thực trước là một lựa chọn có chủ đích khác. Với lược đồ tương thích, nó có thể bớt một vòng, nhưng thay đổi thời điểm thông tin xác thực rời đi và cần phạm vi được hỗ trợ. Nó không thể là bản sửa đầu tiên cho điểm cuối không khớp hoặc phương thức không được hỗ trợ.
Giữ danh tính proxy bị thử thách, phương thức, mức khớp phạm vi và trạng thái cuối cùng trong chẩn đoán đã biên tập. Mật khẩu và dấu vết thô mang thông tin xác thực không cần thiết cho việc so sánh đó.