Jetty 12.0.x SPNEGO: aseta palvelun nimi, ei koko principalia
Erota proxy-URI, JAAS-käyttäjä ja GSS-palvelukomponentti, kun määrität Jetty 12 -todennusta.
Jetty SPNEGO -kokoonpanossa on kolme nimeä: todennuksen sovittamiseen käytettävä URI, JAASin kautta kirjautuva käyttäjä ja palvelu, jolle lippu pyydetään. Niillä on eri tarkoitus.
Jetty 12.0.x -toteutuksessa todennusobjektin katkelma on:
var auth = new org.eclipse.jetty.client.SPNEGOAuthentication(
java.net.URI.create("http://proxy.example:8080"));
auth.setServiceName("HTTP");Tämä katkelma havainnollistaa palvelukomponenttia, ei täydellistä proxy-todennuksen reseptiä. JAAS-kirjautuminen, proxyn reititys ja pyynnön todennusvaihto pysyvät erillisinä.
Tässä toteutuksessa Jetty muodostaa GSS-isäntänimen yhdistämällä getServiceName(), @-merkin ja todennusvaihdon isäntänimen. Jos palvelukomponentiksi annetaan [email protected], siihen lisättäisiin toinen isäntä. Lue tämän setterin sopimus sen sijaan, että olettaisit sen hyväksyvän täydellisen Kerberos-principalin.
Tuloksena oleva GSS-nimi on käsitteellisesti muotoa HTTP@hostname. KDC:n vastaava palvelu-principal esitetään yleensä muodossa HTTP/hostname. valitun proxy-nimen on vastattava palvelua, joka on tosiasiassa rekisteröity kyseiselle tilille; IP-osoite tai alias voi valita toisen lipun kohteen.
Tarkista myös 407-polku
Jetty 12.0.x:ssä authenticate() hakee GSS-isäntänimen request.getHost()-kutsusta ja muodostaa tuloksen oletusarvoisella Authorization-otsikolla. Todennusobjektin sovittaminen proxy-URI:n mukaan ei itsessään muuta näitä valintoja proxyn isäntänimeksi ja Proxy-Authorizationiksi.
Siksi proxy-integraatio tarvitsee oikean pyyntöisännän ja proxyyn rajautuvan tuloksen tälle vaihdolle. HTTPS CONNECT -pyynnöllä ja tavallisella alkuperäpyynnöllä voi olla eri isäntäarvot. Vahvista asennetun toteutuksen käyttäytyminen sen sijaan, että olettaisit palvelunimen setterin tarjoavan koko 407-virran.
407:n kohdalla tarkista proxy-todennusvaihto ja kyseisen pyynnön käyttämä isäntä. 401 kuuluu alkuperän todennukseen. Pelkkä kelvollinen käyttäjän lippu ei todista, että Jetty pyysi oikean palvelulipun tai että välittäjä hyväksyi sen.