En Jetty SPNEGO-agordo estas tri nomoj: la URI uzata por kongruigi aŭtentigon, la uzanto ensalutanta per JAAS kaj la servo por kiu oni petas bileton. Ili havas malsamajn celojn.

Por la Jetty 12.0.x-realigo, fragmento de aŭtentiga objekto estas:

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

Ĉi tiu fragmento montras la servokomponanton, ne kompletan recepton por proxy-aŭtentigo. JAAS-ensaluto, proxy-enkursigo kaj la aŭtentiga interŝanĝo de la peto restas apartaj.

En ĉi tiu realigo Jetty konstruas la GSS-gastigan nomon kombinante getServiceName(), la signon @ kaj la gastigon por la aŭtentiga interŝanĝo. Se oni donas [email protected] kiel servokomponanton, aldoniĝus alia gastigo. Legu la kontrakton de ĉi tiu setter anstataŭ supozi, ke ĝi akceptas plenan Kerberos-principal.

La rezulta GSS-nomo havas la konceptan formon HTTP@hostname. La responda serva principal de la KDC estas kutime prezentata kiel HTTP/hostname. La elektita proxy-nomo devas kongrui kun la servo efektive registrita por tiu konto; IP-adreso aŭ aliasso povas elekti alian biletcelon.

Inspektu ankaŭ la 407-vojon

En Jetty 12.0.x authenticate() prenas la GSS-gastigan nomon el request.getHost() kaj konstruas rezulton per la defaŭlta Authorization-kapo. Kongruigi aŭtentigan objekton laŭ proxy-URI mem ne ŝanĝas tiujn elektojn al la gastiga nomo de la proxy kaj Proxy-Authorization.

Tial proxy-integriĝo bezonas la ĝustan petan gastigon kaj proxy-limigitan rezulton por tiu interŝanĝo. HTTPS CONNECT-peto kaj ordinara origina peto povas havi malsamajn gastigajn valorojn. Konfirmu la konduton de la instalita realigo anstataŭ supozi, ke la servonomo-setter provizas la plenan 407-fluon.

Por 407, inspektu la proxy-aŭtentigan interŝanĝon kaj la gastigon uzatan de tiu peto. 401 apartenas al origina aŭtentigo. Valida uzanto-bileto sola ne pruvas, ke Jetty petis la ĝustan servan bileton aŭ ke la peranto akceptis ĝin.

Rilataj artikoloj