java.net.PasswordAuthentication reçoit un nom d'utilisateur et un tableau de caractères pour le mot de passe. Transmettez les caractères d'origine du mot de passe :

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

La valeur est un mot de passe illustratif. Dans le code de l'application, obtenez les caractères réels depuis la source d'identifiants prévue.

Un @ à l'intérieur de ce mot de passe est une donnée, car le mot de passe possède déjà son propre argument. Le convertir en p%40ssword avant le constructeur fournit un autre mot de passe.

Une URL de proxy a une autre représentation des identifiants. Dans une URL telle que http://proxy-user:p%[email protected]:8080, le @ encodé appartient aux informations utilisateur, tandis que le @ suivant sépare ces informations de l'hôte. Décodez et encodez selon l'interface qui consomme réellement la valeur.

Le quoting du shell, l'échappement des littéraux de chaîne Java et l'encodage URL en pourcentage résolvent aussi des problèmes d'analyse différents. Déterminez quelle couche lit l'entrée au lieu d'encoder les identifiants de façon répétée jusqu'à ce qu'une requête change de comportement.

Articles similaires