Ich habe einen Java-Client für Teile von Livys REST-API unter geschrieben. Der Client verwendet Spring's RestTemplate.getForObject()
und postForObject()
, um GET- und POST-Anfragen zu machen. Der Livius-Server ist mit Kerberos gesichert.Livy-REST-API: GET-Anforderungen funktionieren, aber POST-Anfragen schlagen mit '401 Authentifizierung erforderlich' fehl
GET /sessions
und GET /batches
Anfragen funktionieren gut: Ich bekomme die erwarteten Antworten von Livy. Aber beide POST /sessions
und POST /batches
Anfragen scheitern mit:
org.springframework.web.client.HttpClientErrorException: 401 Authentication required
Weiß jemand, warum die POST-Anfragen fehlschlagen, wenn die GET-Anforderungen erfolgreich sein? Mein Code tut nichts explizit mit der Authentifizierung.
Ich habe versucht, als mehrere verschiedene Benutzer über Kerberos zu authentifizieren, aber ich bekomme immer dieses Problem. Benötigt Livy eine zusätzliche Konfiguration, um POST-Anfragen von bestimmten Benutzern zuzulassen (da POST-Anfragen effektiv interaktive Sitzungen erstellen oder Jobs an Spark senden)?
Haben Sie die gesendeten/empfangenen HTTP-Header während der SPNego-Verhandlung (die immer mit einer '401'-Abfrage beginnt, aber mit' 200' oder '403' enden sollte) verfolgt? Jeder sichtbare Unterschied in der Sequenz von Ereignissen für _GET_ und _POST_ z. eine Umleitung irgendwann? –
Es gab ein ähnliches Problem mit WebHDFS, vor langer Zeit, aber wegen eines Fehlers in Java 6 'net'library ... hoffentlich verwenden Sie etwas neueres! –
Danke für die Tipps! Nein, ich verwende Java 8 (und Livy v0.3.0 BTW). Ich habe es nicht geschafft, diese HTTP-Header zu verfolgen, aber es sieht so aus, als ob Livy im Vergleich zu GET-Anfragen zusätzliche Sicherheit für POST-Anfragen benötigt. Ich versuche gerade mit einer speziellen Version von Spring's 'RestTemplate' mit Kerberos zu arbeiten: [' KerberosRestTemplate'] (https://docs.spring.io/spring-security-kerberos/docs/current/reference/html/ssk-resttemplate. html). Werde mehr posten, wenn ich in ein paar Tagen noch eine Chance bekomme ... – snark