Limitare le credenziali proxy di HtmlUnit all'host del proxy
Configurare un proxy HtmlUnit e usare l'ambito host/porta del provider di credenziali, con i campi domain e workstation per NTLM.
La configurazione proxy di HtmlUnit sceglie l'intermediario, e il suo provider di credenziali fornisce l'account per quell'host e quella porta. Per un proxy NTLM, l'API di HtmlUnit 4.21.0 dispone di un metodo dedicato:
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/");
}
Le classi usano i pacchetti org.htmlunit attuali, con HtmlPage in org.htmlunit.html. Indicare workstation e domain dell'account proxy in base all'ambiente; il sito di destinazione non è il campo domain di NTLM.
Per una voce generica nome utente/password, lo stesso provider offre addCredentials con nome utente, password come array di char, host, porta e realm. Un realm nullo vale per qualsiasi realm su quell'endpoint delimitato.
Usare l'overload corrispondente allo schema di autenticazione del proxy e alla dipendenza effettivamente distribuita. I vecchi esempi di HtmlUnit 2.x usano nomi di pacchetto diversi e possono avere firme con password stringa; il codice sopra usa l'API 4.21.0.