Выбор учетных данных HTTP-прокси Java по идентичности запроса
Сопоставьте тип запрашивающей стороны, хост и порт, прежде чем вернуть учетную запись; держите посторонние серверные запросы вне этого поиска.
Для каждого обратного вызова аутентификации HTTP принимайте решение об учетных данных в таком порядке:
- Проверьте, что запрашивающая сторона — это прокси, а не целевой сервер.
- Сопоставьте запрашиваемые хост и порт с одобренной записью прокси.
- Верните учетную запись этой записи или не возвращайте учетные данные для несовпадающего запроса.
Одни безусловные имя пользователя/пароль не могут выразить учетные записи двух прокси и могут утечь их другому получателю.
Предпочитайте Authenticator, привязанный к клиенту, при использовании конструктора HTTP-клиента Java. Authenticator JVM по умолчанию влияет и на другой участвующий код.
Определяйте любое сопоставление псевдонимов хоста намеренно, а не принимайте произвольные имена. Это шаблон HTTP; SOCKS может использовать другой путь реализации даже при похожем имени хоста.
Для диагностики записывайте тип запроса и идентификатор сопоставленной учетной записи без ее секрета. Это объясняет решение об области действия без журналирования паролей.