Isang @ sa Password ng Proxy sa Java
Ipasa ang hilaw na password sa PasswordAuthentication at ilapat ang URL encoding kapag gumagawa lamang ng tunay na proxy URL.
Tumatanggap ang java.net.PasswordAuthentication ng username at array ng mga character ng password. Ipasa ang orihinal na mga character ng password:
var credential = new java.net.PasswordAuthentication(
"proxy-user", "p@ssword".toCharArray());
Ang value ay isang halimbawang password. Sa code ng aplikasyon, kunin ang tunay na mga character mula sa inilaan na pinagmulan ng kredensyal.
Ang @ sa loob ng password na ito ay data, dahil may sariling argumento na ang password. Ang pagpapalit nito sa p%40ssword bago ang constructor ay nagbibigay ng ibang password.
Ang proxy URL ay may ibang representasyon ng kredensyal. Sa URL tulad ng http://proxy-user:p%[email protected]:8080, ang naka-encode na @ ay nasa loob ng impormasyon ng user, habang ang sumunod na @ ay naghihiwalay ng impormasyong iyon mula sa host. I-decode at i-encode ayon sa interface na aktwal na gumagamit ng value.
Ang quoting sa shell, escaping ng Java string literal at percent-encoding ng URL ay lumulutas din ng magkakaibang problema sa pag-parse. Tukuyin kung aling layer ang nagbabasa ng input sa halip na paulit-ulit na i-encode ang kredensyal hanggang magbago ang pag-uugali ng isang request.