java.net.PasswordAuthentication приема потребителско име и масив от символи за парола. Подайте оригиналните символи на паролата:

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

Стойността е примерна парола. В кода на приложението вземете истинските символи от предвидения източник на идентификационни данни.

Символът @ в тази парола е данни, защото паролата вече има свой собствен аргумент. Превръщането му в p%40ssword преди конструктора подава различна парола.

Прокси URL има друго представяне на идентификационните данни. В URL като http://proxy-user:p%[email protected]:8080 кодираният @ принадлежи към информацията за потребителя, а следващият @ отделя тази информация от хоста. Декодирайте и кодирайте според интерфейса, който действително консумира стойността.

Цитирането в shell, екранирането на Java низови литерали и процентното кодиране на URL също решават различни проблеми при разбор. Определете кой слой чете входа, вместо да кодирате идентификационните данни многократно, докато поведението на заявката се промени.

Подобни статии