2017-08-08 57 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 

这对我有用。希望这也能帮助你!