Jetty 12.0.x SPNEGO: agordu la servan nomon, ne la plenan principal
Apartigu la proxy-URI, la JAAS-uzanton kaj la GSS-servokomponanton dum agordo de la aŭtentigo de Jetty 12.
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.