java.net.PasswordAuthentication menerima nama pengguna dan larik karakter kata sandi. Teruskan karakter kata sandi asli:

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

Nilai tersebut adalah kata sandi ilustratif. Dalam kode aplikasi, dapatkan karakter sebenarnya dari sumber kredensial yang dimaksud.

Tanda @ di dalam kata sandi ini adalah data, karena kata sandi sudah memiliki argumennya sendiri. Mengubahnya menjadi p%40ssword sebelum konstruktor memberikan kata sandi yang berbeda.

URL proxy memiliki representasi kredensial lain. Dalam URL seperti http://proxy-user:p%[email protected]:8080, @ yang dikodekan berada di dalam informasi pengguna, sedangkan @ berikutnya memisahkan informasi itu dari host. Dekodekan dan enkodekan sesuai antarmuka yang benar-benar mengonsumsi nilai tersebut.

Kutipan shell, escape literal string Java, dan pengodean persen URL juga menyelesaikan masalah penguraian yang berbeda. Tentukan lapisan mana yang membaca masukan alih-alih berulang kali mengodekan kredensial sampai perilaku permintaan berubah.

Artikel terkait