java.net.PasswordAuthentication tar emot ett användarnamn och en teckenarray för lösenordet. Skicka de ursprungliga lösenordstecknen:

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

Värdet är ett illustrativt lösenord. Hämta de riktiga tecknen från den avsedda källan för inloggningsuppgifter i applikationskoden.

Ett @ inuti detta lösenord är data, eftersom lösenordet redan har sitt eget argument. Att konvertera det till p%40ssword före konstruktorn ger ett annat lösenord.

En proxy-URL har en annan representation av inloggningsuppgifter. I en URL som http://proxy-user:p%[email protected]:8080 tillhör det kodade @ användarinformationen, medan det senare @ skiljer den informationen från värden. Avkoda och koda enligt det gränssnitt som faktiskt konsumerar värdet.

Shell-citering, escapning av Java-stränglitteraler och procentkodning av URL:er löser också olika tolkningsproblem. Avgör vilket lager som läser indata i stället för att koda inloggningsuppgifterna upprepade gånger tills en begärans beteende ändras.

Relaterade artiklar