java.net.PasswordAuthentication riceve un nome utente e un array di caratteri della password. Passa i caratteri originali della password:

var credential = new java.net.PasswordAuthentication(
    "proxy-user", "p@ssword".toCharArray());

Il valore è una password illustrativa. Nel codice dell'applicazione, ottieni i caratteri reali dall'origine delle credenziali prevista.

Una @ dentro questa password è un dato, perché la password ha già il proprio argomento. Convertirla in p%40ssword prima del costruttore fornisce una password diversa.

Un URL proxy ha un'altra rappresentazione delle credenziali. In un URL come http://proxy-user:p%[email protected]:8080, la @ codificata appartiene alle informazioni utente, mentre la @ successiva separa tali informazioni dall'host. Decodifica e codifica secondo l'interfaccia che consuma realmente il valore.

Il quoting della shell, l'escaping dei letterali stringa Java e la codifica percentuale degli URL risolvono anch'essi problemi di analisi diversi. Determina quale livello legge l'input invece di codificare ripetutamente le credenziali finché il comportamento di una richiesta non cambia.

Articoli correlati