@ u Java proxy lozinci
Proslijedite sirovu lozinku u PasswordAuthentication i primijenite URL kodiranje samo pri izgradnji stvarnog proxy URL-a.
java.net.PasswordAuthentication prima korisničko ime i niz znakova lozinke. Proslijedite originalne znakove lozinke:
var credential = new java.net.PasswordAuthentication(
"proxy-user", "p@ssword".toCharArray());
Vrijednost je ilustrativna lozinka. U kodu aplikacije uzmite stvarne znakove iz predviđenog izvora akreditiva.
Znak @ unutar ove lozinke je podatak, jer lozinka već ima svoj argument. Pretvaranje u p%40ssword prije konstruktora daje drugu lozinku.
Proxy URL ima drugi prikaz akreditiva. U URL-u kao što je http://proxy-user:p%[email protected]:8080 kodirani @ pripada korisničkim informacijama, dok kasniji @ odvaja te informacije od hosta. Dekodirajte i kodirajte prema sučelju koje stvarno troši vrijednost.
Navodnici u shellu, escape sekvence Java string literala i procentno kodiranje URL-a također rješavaju različite probleme parsiranja. Utvrdite koji sloj čita ulaz umjesto da višekratno kodirate akreditive dok se ponašanje zahtjeva ne promijeni.