Во конфигурацијата на 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. Соодветниот principal на услугата во KDC обично се претставува како 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 побарал правилен билет за услугата или дека посредникот го прифатил.

Поврзани статии