علامة @ في كلمة مرور وكيل Java
مرّر كلمة المرور الخام إلى PasswordAuthentication، وطبّق ترميز URL فقط عند إنشاء عنوان URL فعلي للوكيل.
تستقبل java.net.PasswordAuthentication اسم مستخدم ومصفوفة أحرف لكلمة المرور. مرّر أحرف كلمة المرور الأصلية:
var credential = new java.net.PasswordAuthentication(
"proxy-user", "p@ssword".toCharArray());
القيمة كلمة مرور توضيحية. في كود التطبيق، احصل على الأحرف الحقيقية من مصدر بيانات الاعتماد المقصود.
علامة @ داخل كلمة المرور هذه بيانات، لأن كلمة المرور لها وسيطها الخاص بالفعل. تحويلها إلى p%40ssword قبل أن يستلمها المنشئ يقدّم كلمة مرور مختلفة.
لعناوين URL الوكيل تمثيل آخر لبيانات الاعتماد. في عنوان مثل http://proxy-user:p%[email protected]:8080 تنتمي علامة @ المرمّزة إلى معلومات المستخدم، بينما تفصل علامة @ اللاحقة تلك المعلومات عن المضيف. فكّ الترميز ورمّزه وفق الواجهة التي تستهلك القيمة فعليًا.
اقتباس الصدفة وهروب السلاسل النصية في Java والترميز المئوي في URL تحل أيضًا مشكلات تحليل مختلفة. حدّد أي طبقة تقرأ المدخل بدل تكرار ترميز بيانات الاعتماد حتى يتغيّر سلوك الطلب.