Et @ i en Java-proxyadgangskode
Send den rå adgangskode til PasswordAuthentication, og anvend kun URL-kodning, når du opbygger en faktisk proxy-URL.
java.net.PasswordAuthentication modtager et brugernavn og et tegnarray til adgangskoden. Send de oprindelige adgangskodetegn:
var credential = new java.net.PasswordAuthentication(
"proxy-user", "p@ssword".toCharArray());
Værdien er en illustrativ adgangskode. I applikationskoden skal du hente de rigtige tegn fra den tilsigtede legitimationskilde.
Et @ inde i denne adgangskode er data, fordi adgangskoden allerede har sit eget argument. At konvertere det til p%40ssword før constructoren giver en anden adgangskode.
En proxy-URL har en anden repræsentation af legitimationsoplysninger. I en URL som http://proxy-user:p%[email protected]:8080 hører det kodede @ til brugeroplysningerne, mens det senere @ adskiller disse oplysninger fra værten. Afkod og kod efter den grænseflade, der faktisk forbruger værdien.
Shell-citering, escaping af Java-strengliteraler og procentkodning i URL'er løser også forskellige parsingproblemer. Afgør, hvilket lag der læser input, i stedet for at kode legitimationsoplysningerne gentagne gange, indtil en anmodnings adfærd ændres.