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 GSS host ئاساسلىق ئىسمىنى getServiceName()، @ ھەرىپى ۋە دەلىللەش ئالماشتۇرۇشىنىڭ hostىنى بىرلەشتۈرۈپ قۇرىدۇ. [email protected] نى مۇلازىمەت زاپچاسى قىلىپ بەرسە، يەنە بىر host قوشۇلىدۇ. بۇ setter تولۇق Kerberos principal قوبۇل قىلىدۇ دەپ پەرەز قىلماي، ئۇنىڭ كېلىشىمىنى ئوقۇڭ.
ھاسىل بولغان GSS ئىسمى HTTP@hostname دېگەن ئۇقۇم شەكلىگە ئىگە. KDC دىكى ماس كېلىدىغان مۇلازىمەت principal ئادەتتە HTTP/hostname دەپ ئىپادىلىنىدۇ. تاللانغان proxy ئىسمى ھەقىقەتەن تىزىملانغان مۇلازىمەتكە ماس كېلىشى كېرەك شۇ ھېسابات ئۈچۈن؛ IP ئادرېس ياكى تەخەللۇس باشقا بېلەت نىشانىنى تاللىشى مۇمكىن.
407 يولىنىمۇ تەكشۈرۈڭ
Jetty 12.0.x دا authenticate() GSS host ئىسمىنى request.getHost() دىن ئالىدۇ ۋە سۈكۈتتىكى Authorization تېمىسى بىلەن نەتىجە قۇرىدۇ. proxy URI بويىچە دەلىللەش ئوبيېكتىنى ماسلاشتۇرۇش ئۆزىلا بۇ تاللاشلارنى proxy نىڭ host ئىسمى ۋە Proxy-Authorization غا ئۆزگەرتمەيدۇ.
شۇڭا proxy بىرلەشمىسى شۇ ئالماشتۇرۇش ئۈچۈن توغرا تەلەپ hostى ۋە proxy دائىرىسىدىكى نەتىجىگە ئېھتىياجلىق. HTTPS CONNECT تەلىپى بىلەن ئادەتتىكى مەنبە تەلىپىنىڭ host قىممىتى ئوخشاش بولماسلىقى مۇمكىن. مۇلازىمەت ئىسمى setter تولۇق 407 ئېقىمىنى تەمىنلەيدۇ دەپ پەرەز قىلماي، قاچىلانغان ئىجرانىڭ ھەرىكىتىنى جەزملەشتۈرۈڭ.
407 ئۈچۈن، شۇ تەلەپ ئىشلەتكەن proxy دەلىللەش ئالماشتۇرۇشى ۋە hostنى تەكشۈرۈڭ. 401 مەنبە دەلىللەشكە تەۋە. پەقەت ئىناۋەتلىك ئىشلەتكۈچى بېلىتى Jetty نىڭ توغرا مۇلازىمەت بېلىتىنى تەلەپ قىلغانلىقىنى ياكى ئارىلىقچىنىڭ ئۇنى قوبۇل قىلغانلىقىنى ئىسپاتلىمايدۇ.