java.net.PasswordAuthentication מקבל שם משתמש ומערך תווים של סיסמה. העבירו את תווי הסיסמה המקוריים:

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

הערך הוא סיסמה להמחשה. בקוד היישום, השגו את התווים האמיתיים ממקור ההרשאות המיועד.

סימן @ בתוך הסיסמה הזו הוא נתון, מפני שלסיסמה כבר יש ארגומנט משלה. המרתו ל-p%40ssword לפני הבנאי מספקת סיסמה אחרת.

לכתובת URL של פרוקסי יש ייצוג אחר של הרשאות. בכתובת כמו http://proxy-user:p%[email protected]:8080, ה-@ המקודד שייך לפרטי המשתמש, ואילו ה-@ המאוחר מפריד את הפרטים האלה מהמארח. פענחו וקודדו לפי הממשק שצורך את הערך בפועל.

מרכאות ב-shell, בריחת מחרוזות ב-Java וקידוד אחוזים ב-URL פותרים גם הם בעיות ניתוח שונות. קבעו איזו שכבה קוראת את הקלט במקום לקודד את ההרשאות שוב ושוב עד שהתנהגות הבקשה משתנה.

מאמרים קשורים