Я написал клиент Java для частей REST API Ливи по адресу https://github.com/apache/incubator-livy/blob/master/docs/rest-api.md. Клиент использует RestTemplate.getForObject()
и postForObject()
Spring для выполнения запросов GET и POST соответственно. Сервер Livy защищен с помощью Kerberos.
GET /sessions
и _ 4_ запросы работают нормально: я получаю ожидаемые ответы от Ливи. Но как POST /sessions
, так и _ 6_ запросы завершаются ошибкой:
org.springframework.web.client.HttpClientErrorException: 401 Authentication required
Кто-нибудь знает, почему запросы POST терпят неудачу, когда запросы GET успешны? Мой код ничего не делает явным с аутентификацией.
Я пробовал аутентифицироваться как несколько разных пользователей через Kerberos, но у меня всегда возникает эта проблема. Требуется ли Livy дополнительная конфигурация, чтобы разрешить запросы POST от определенных пользователей (поскольку запросы POST фактически создают интерактивные сеансы или отправляют задания в Spark)?
401
запроса, но должно заканчиваться либо200
, либо403
)? Любая видимая разница в последовательности событий для GET и POST, например. перенаправление в какой-то момент? - person Samson Scharfrichter   schedule 25.10.2017net
library ... надеюсь, вы используете что-то более свежее! - person Samson Scharfrichter   schedule 25.10.2017RestTemplate
с Kerberos: _ 2_. Опубликую больше, когда у меня будет еще один шанс через несколько дней ... - person snark   schedule 25.10.2017curl
HTTP-запрос командной строки (если Kerberos TGT доступен в кэше по умолчанию) сcurl --negotiate -u : --trace-ascii - <some-GET-URL>
, затем-X POST --data 'blah blah' <some-POST-URL>
- person Samson Scharfrichter   schedule 26.10.2017