HtmlUnit-Proxy-Anmeldedaten auf den Proxy-Host begrenzen
Konfigurieren Sie einen HtmlUnit-Proxy und nutzen Sie den Host-/Port-Bereich des Credential-Providers, mit domain- und workstation-Feldern für NTLM.
Die Proxy-Konfiguration von HtmlUnit wählt den Vermittler, und ihr Credential-Provider liefert das Konto für diesen Host und Port. Für einen NTLM-Proxy bietet die HtmlUnit-4.21.0-API eine eigene Methode:
String proxyHost = "proxy.example";
int proxyPort = 8080;
DefaultCredentialsProvider credentials = new DefaultCredentialsProvider();
credentials.addNTLMCredentials(
user, password.toCharArray(), proxyHost, proxyPort, workstation, domain);
try (WebClient browser = new WebClient()) {
browser.getOptions().setProxyConfig(
new ProxyConfig(proxyHost, proxyPort, "http"));
browser.setCredentialsProvider(credentials);
HtmlPage page = browser.getPage("https://www.example.com/");
}
Die Klassen verwenden die aktuellen org.htmlunit-Pakete, HtmlPage liegt in org.htmlunit.html. Geben Sie workstation und domain des Proxy-Kontos passend zur Umgebung an; die Zielwebsite ist nicht das NTLM-domain-Feld.
Für einen allgemeinen Benutzername/Passwort-Eintrag bietet derselbe Provider addCredentials mit Benutzername, char-Array-Passwort, Host, Port und realm. Ein null-realm gilt für jedes realm an diesem begrenzten Endpunkt.
Verwenden Sie die Überladung, die zum Authentifizierungsschema des Proxys und zur tatsächlich eingesetzten Abhängigkeit passt. Alte HtmlUnit-2.x-Beispiele nutzen andere Paketnamen und haben teils String-Passwort-Signaturen; der obige Code verwendet die 4.21.0-API.