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 хост атын getServiceName(), @ белгиси жана аутентификация алмашуусунун хосту менен бириктирип түзөт. [email protected]ди кызмат компоненти катары берүү дагы бир хост кошот. Бул setter толук Kerberos principal кабыл алат деп болжолдоонун ордуна анын келишимин окуңуз.
Алынган GSS аты HTTP@hostname концептуалдык формасына ээ. KDCнин тиешелүү кызмат principalы адатта HTTP/hostname түрүндө берилет. тандалган proxy аты чындап катталган кызматка дал келиши керек ошол эсеп үчүн; IP дарек же лакап ат башка билет бутасын тандашы мүмкүн.
407 жолун да текшериңиз
Jetty 12.0.x ичинде authenticate() GSS хост атын request.getHost()дон алат жана демейки Authorization аталышы менен жыйынтык түзөт. Аутентификация объектин proxy URI боюнча дал келтирүү өзү эле бул тандоолорду proxy хостунун атына жана Proxy-Authorizationга өзгөртпөйт.
Ошондуктан proxy интеграциясы ошол алмашуу үчүн туура сурам хосту жана proxy менен чектелген жыйынтык талап кылат. HTTPS CONNECT сурамы жана кадимки баштапкы сурам ар башка хост маанилерине ээ болушу мүмкүн. Кызмат атынын setterи толук 407 агымын камсыз кылат деп болжолдоонун ордуна орнотулган ишке ашыруунун жүрүм-турумун ырастаңыз.
407 үчүн proxy аутентификация алмашуусун жана ошол сурам колдонгон хостту текшериңиз. 401 баштапкы аутентификацияга таандык. Жарактуу колдонуучу билети гана Jetty туура кызмат билетин сураганын же ортомчу аны кабыл алганын далилдебейт.