java.net.PasswordAuthentication recebe um nome de utilizador e uma matriz de caracteres da palavra-passe. Passe os caracteres originais da palavra-passe:

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

O valor é uma palavra-passe ilustrativa. No código da aplicação, obtenha os caracteres reais a partir da origem de credenciais pretendida.

Um @ dentro desta palavra-passe é dado, porque a palavra-passe já tem o seu próprio argumento. Convertê-lo em p%40ssword antes do construtor fornece uma palavra-passe diferente.

Um URL de proxy tem outra representação de credenciais. Num URL como http://proxy-user:p%[email protected]:8080, o @ codificado pertence à informação do utilizador, enquanto o @ posterior separa essa informação do anfitrião. Descodifique e codifique conforme a interface que realmente consome o valor.

As aspas da shell, o escape de literais de string Java e a codificação percentual de URL também resolvem problemas de análise distintos. Determine que camada lê a entrada em vez de codificar repetidamente as credenciais até o comportamento de um pedido mudar.

Artigos relacionados