Znak @ v hesle k Java proxy
Předejte surové heslo do PasswordAuthentication a URL kódování použijte jen při sestavování skutečné proxy URL.
java.net.PasswordAuthentication přebírá uživatelské jméno a pole znaků hesla. Předejte původní znaky hesla:
var credential = new java.net.PasswordAuthentication(
"proxy-user", "p@ssword".toCharArray());
Hodnota je ilustrativní heslo. V kódu aplikace získejte skutečné znaky z určeného zdroje přihlašovacích údajů.
Znak @ uvnitř tohoto hesla je datový údaj, protože heslo už má svůj vlastní argument. Převod na p%40ssword před konstruktorem předá jiné heslo.
Proxy URL má jiné znázornění přihlašovacích údajů. V URL jako http://proxy-user:p%[email protected]:8080 kódovaný @ patří do uživatelských informací, zatímco pozdější @ odděluje tyto informace od hostitele. Dekódujte a kódujte podle rozhraní, které hodnotu skutečně spotřebovává.
Citace v shellu, escapování řetězcových literálů v Javě a procentové kódování URL také řeší různé problémy při parsování. Určete, která vrstva čte vstup, místo abyste opakovaně kódovali přihlašovací údaje, dokud se nezmění chování požadavku.