Jetty 12.0.x SPNEGO: සේවා නාමය සකසන්න, සම්පූර්ණ principal නොවේ
Jetty 12 සත්යාපනය වින්යාස කරන විට proxy URI, JAAS පරිශීලක සහ GSS සේවා සංරචකය වෙන් කරන්න.
Jetty SPNEGO වින්යාසයේ නම් තුනක් ඇත: සත්යාපනය ගැලපීමට භාවිතා කරන URI, JAAS හරහා පිවිසෙන පරිශීලක සහ ටිකට් ඉල්ලා සිටින සේවාව. ඒවාට වෙනස් අරමුණු ඇත.
Jetty 12.0.x ක්රියාත්මක කිරීම සඳහා, සත්යාපන වස්තුවේ කොටසක් මෙසේය:
var auth = new org.eclipse.jetty.client.SPNEGOAuthentication(
java.net.URI.create("http://proxy.example:8080"));
auth.setServiceName("HTTP");මෙම කොටස සේවා සංරචකය පෙන්වයි, සම්පූර්ණ proxy සත්යාපන වට්ටෝරුවක් නොවේ. JAAS පිවිසුම, proxy මාර්ගකරණය සහ ඉල්ලීමේ සත්යාපන හුවමාරුව වෙන්ව පවතී.
මෙම ක්රියාත්මක කිරීමේදී Jetty, getServiceName(), @ අක්ෂරය සහ සත්යාපන හුවමාරුවේ සත්කාරකය එකට එකතු කර GSS සත්කාරක පාදක නාමය ගොඩනඟයි. [email protected] සේවා සංරචකය ලෙස ලබා දුන්නොත් තවත් සත්කාරකයක් එකතු වේ. මෙය සම්පූර්ණ Kerberos principal එකක් පිළිගනී යැයි උපකල්පනය කරනවාට වඩා මෙම setter හි ගිවිසුම කියවන්න.
ප්රතිඵල GSS නාමයට HTTP@hostname යන සංකල්පීය ස්වරූපය ඇත. KDC හි අදාළ සේවා principal සාමාන්යයෙන් HTTP/hostname ලෙස නිරූපණය වේ. තෝරාගත් proxy නාමය සැබවින්ම ලියාපදිංචි සේවාවට ගැලපිය යුතුය එම ගිණුම සඳහා; IP ලිපිනයක් හෝ අන්වර්ථයක් වෙනත් ටිකට් ඉලක්කයක් තෝරාගත හැක.
407 මාර්ගය ද පරීක්ෂා කරන්න
Jetty 12.0.x හි authenticate() request.getHost() වෙතින් GSS සත්කාරක නාමය ලබාගෙන පෙරනිමි Authorization ශීර්ෂකය සමඟ ප්රතිඵලයක් ගොඩනඟයි. proxy URI අනුව සත්යාපන වස්තුවක් ගැලපීම එම තේරීම් තමා විසින්ම proxy හි සත්කාරක නාමයට සහ Proxy-Authorization වෙත නොවෙනස් කරයි.
එබැවින් proxy ඒකාබද්ධතාවයට එම හුවමාරුව සඳහා නිවැරදි ඉල්ලීම් සත්කාරකය සහ proxy-සීමිත ප්රතිඵලයක් අවශ්ය වේ. HTTPS CONNECT ඉල්ලීමක් සහ සාමාන්ය මූල ඉල්ලීමක් වෙනස් සත්කාරක අගයන් තිබිය හැක. සේවා-නාම setter සම්පූර්ණ 407 ප්රවාහය ලබා දෙයි යැයි උපකල්පනය කරනවාට වඩා ස්ථාපිත ක්රියාත්මක කිරීමේ හැසිරීම තහවුරු කරන්න.
407 සඳහා, එම ඉල්ලීම භාවිතා කළ proxy සත්යාපන හුවමාරුව සහ සත්කාරකය පරීක්ෂා කරන්න. 401 මූල සත්යාපනයට අයත් වේ. වලංගු පරිශීලක ටිකට් එකක් පමණක් Jetty නිවැරදි සේවා ටිකට් ඉල්ලා සිටියා යැයි හෝ මැදිහත්කරු එය පිළිගත්තා යැයි ඔප්පු නොකරයි.