2017-08-08 56 views
0

我正在管理zeppelin服務器,並且正嘗試使用REST API調用重新啓動zeppelin解釋器。我已打開身份驗證。因此,我試圖首先獲取sessionID usin login api,然後將其傳遞給下一個PUT請求以重新啓動解釋器。Zeppelin在使用REST api進行身份驗證後重新啓動解釋器

以下是我關注的步驟。

獲取會話ID:

curl -i --data 'userName=admin&password=admin123' -X POST http://zeppelin-server.com:8055/api/login 

響應:

HTTP/1.1 200 OK 
Date: Tue, 08 Aug 2017 15:09:14 GMT 
Access-Control-Allow-Credentials: true 
Access-Control-Allow-Headers: authorization,Content-Type 
Access-Control-Allow-Methods: POST, GET, OPTIONS, PUT, HEAD, DELETE 
Date: Tuesday, August 8, 2017 11:09:14 AM EDT 
Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Mon, 07-Aug-2017 15:09:14 GMT 
Set-Cookie: JSESSIONID=438b05e7-1a9a-4cbe-aa06-1c3dfv454976; Path=/; HttpOnly 
Set-Cookie: JSESSIONID=deleteMe; Path=/; Max-Age=0; Expires=Mon, 07-Aug-2017 15:09:14 GMT 
Set-Cookie: JSESSIONID=f404ad12-a21b-4c6c-bcde-d4f8b59c076a; Path=/; HttpOnly 
Set-Cookie: rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Mon, 07-Aug-2017 15:09:14 GMT 
Content-Type: application/json 
Date: Tue, 08 Aug 2017 15:09:14 GMT 
Content-Length: 123 
Server: Jetty(9.2.15.v20160210) 

{"status":"OK","message":"","body":{"principal":"admin","ticket":"f329g1cc-d488-4aef-9b89-6b206ee71496","roles":"[admin]"}} 

接下來,我將傳遞到JSESSIONID PUT請求重啓解釋

curl -v -i -b 'JSESSIONID=438b05e7-1a9a-4cbe-aa06-1c3dfv454976; Path=/; HttpOnly' -X PUT http://zeppelin-server.com:8055/api/interpreter/setting/restart/2CGBW7NIF 

響應:

HTTP/1.1 302 Found 

我沒有得到json響應狀態,這是我在其他情況下,當我關閉身份驗證。

任何人都可以指出我在這裏做錯了什麼。我按照這裏的說明。

https://community.hortonworks.com/questions/52840/authentication-with-the-zeppelin-rest-api.html

回答

0

嘿,爲什麼你會得到302找到代碼的原因是因爲你剛纔提供的一半的Cookie。在你的例子中,捲曲應該是:

curl -v -i -b 'JSESSIONID=f404ad12-a21b-4c6c-bcde-d4f8b59c076a; Path=/; HttpOnly; rememberMe=deleteMe; Path=/; Max-Age=0; Expires=Mon, 07-Aug-2017 15:09:14 GMT' -X PUT http://zeppelin-server.com:8055/api/interpreter/setting/restart/2CGBW7NIF 

這對我有用。希望這也能幫助你!