Una @ in una password proxy Java
Passa la password non elaborata a PasswordAuthentication e applica la codifica URL solo quando costruisci un URL proxy reale.
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.