Jetty SPNEGO konfiguratsioonis on kolm nime: autentimise sobitamiseks kasutatav URI, JAAS-i kaudu sisse logiv kasutaja ja teenus, mille jaoks piletit küsitakse. Neil on erinevad eesmärgid.

Jetty 12.0.x teostuse jaoks on autentimisobjekti fragment järgmine:

var auth = new org.eclipse.jetty.client.SPNEGOAuthentication(
    java.net.URI.create("http://proxy.example:8080"));
auth.setServiceName("HTTP");

See fragment illustreerib teenusekomponenti, mitte täielikku proxy autentimise retsepti. JAAS-i sisselogimine, proxy marsruutimine ja päringu autentimisvahetus jäävad eraldi.

Selles teostuses koostab Jetty GSS-i hostipõhise nime, ühendades getServiceName(), @-märgi ja autentimisvahetuse hosti. Kui anda teenusekomponendiks [email protected], lisanduks veel üks host. Lugege selle setteri lepingut, selle asemel et eeldada, et see võtab vastu täieliku Kerberose principali.

Saadud GSS-i nimi on kontseptuaalsel kujul HTTP@hostname. KDC vastav teenuse principal esitatakse tavaliselt kujul HTTP/hostname. valitud proxy nimi peab vastama tegelikult registreeritud teenusele selle konto jaoks; IP-aadress või alias võib valida teise pileti sihtmärgi.

Kontrollige ka 407 rada

Jetty 12.0.x-s saab authenticate() GSS-i hostinime request.getHost()-st ja koostab tulemuse vaikimisi Authorization päisega. Autentimisobjekti sobitamine proxy URI järgi ei muuda iseenesest neid valikuid proxy hostinimeks ja Proxy-Authorization-iks.

Seetõttu vajab proxy integratsioon selle vahetuse jaoks õiget päringu hosti ja proxy-ulatusega tulemust. HTTPS CONNECT päringul ja tavalisel lähtepäringul võivad olla erinevad hosti väärtused. Kinnitage paigaldatud teostuse käitumist, selle asemel et eeldada, et teenuse nime setter pakub täielikku 407 voogu.

407 puhul uurige proxy autentimisvahetust ja selle päringu kasutatud hosti. 401 kuulub lähtekoha autentimise juurde. Üksi kehtiv kasutajapilet ei tõesta, et Jetty küsis õige teenusepileti või et vahendaja selle vastu võttis.

Seotud artiklid