V konfigurácii Jetty SPNEGO sú tri názvy: URI používané na párovanie overovania, používateľ prihlasujúci sa cez JAAS a služba, pre ktorú sa žiada lístok. Majú odlišné účely.

Pre implementáciu Jetty 12.0.x vyzerá fragment autentifikačného objektu takto:

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

Tento fragment ilustruje komponent služby, nie úplný postup overovania cez proxy. Prihlásenie JAAS, smerovanie proxy a výmena overovania požiadavky zostávajú oddelené.

V tejto implementácii Jetty zostavuje názov GSS založený na hostiteľovi spojením getServiceName(), znaku @ a hostiteľa pre výmenu overovania. Ak sa ako komponent služby zadá [email protected], pridá sa ďalší hostiteľ. Čítajte zmluvu tohto setteru namiesto predpokladu, že prijíma úplný principal Kerberos.

Výsledný názov GSS má koncepčnú podobu HTTP@hostname. Zodpovedajúci principal služby v KDC sa zvyčajne zapisuje ako HTTP/hostname. vybrané proxy meno musí zodpovedať skutočne registrovanej službe pre tento účet; IP adresa alebo alias môže zvoliť iný cieľ lístka.

Preverte aj cestu 407

V Jetty 12.0.x získava authenticate() názov hostiteľa GSS z request.getHost() a zostavuje výsledok s predvolenou hlavičkou Authorization. Párovanie autentifikačného objektu podľa proxy URI samo o sebe nemení tieto voľby na názov hostiteľa proxy a Proxy-Authorization.

Integrácia proxy preto potrebuje správneho hostiteľa požiadavky a výsledok v rozsahu proxy pre danú výmenu. Požiadavka HTTPS CONNECT a bežná požiadavka na zdroj môžu mať rôzne hodnoty hostiteľa. Potvrďte správanie nainštalovanej implementácie namiesto predpokladu, že setter názvu služby poskytuje celý tok 407.

Pri 407 preskúmajte výmenu overovania proxy a hostiteľa, ktorého táto požiadavka použila. 401 patrí overovaniu zdroja. Samotný platný používateľský lístok nedokazuje, že Jetty žiadal správny servisný lístok alebo že ho sprostredkovateľ prijal.

Súvisiace články