java.net.PasswordAuthentication vastaanottaa käyttäjänimen ja salasanan merkkitaulukon. Välitä salasanan alkuperäiset merkit:

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

Arvo on havainnollistava salasana. Hanki sovelluskoodissa todelliset merkit aiotusta tunnistetietolähteestä.

Tämän salasanan sisällä oleva @ on dataa, koska salasanalla on jo oma argumenttinsa. Sen muuntaminen muotoon p%40ssword ennen konstruktoria välittää eri salasanan.

Välityspalvelimen URL-osoitteella on toinen tunnistetietojen esitys. URL-osoitteessa kuten http://proxy-user:p%[email protected]:8080 koodattu @ kuuluu käyttäjätietoihin, kun taas myöhempi @ erottaa nämä tiedot isännästä. Pura ja koodaa sen rajapinnan mukaan, joka todella kuluttaa arvon.

Shell-lainausmerkit, Java-merkkijonoliteraalien escapetus ja URL-osoitteen prosenttikoodaus ratkaisevat myös erilaisia jäsennysongelmia. Selvitä, mikä kerros lukee syötettä, sen sijaan että koodaisit tunnistetietoja toistuvasti, kunnes pyynnön käyttäytyminen muuttuu.

Aiheeseen liittyvät artikkelit