使用Springloops API

时间:2018-02-05 10:35:21

标签: springloops

我正在尝试使用Springloops API创建新的部署服务器,但是传递密钥时遇到了困难。

当我尝试完整的密钥时:

curl --header "Accept: application/json" --header "Content-type: application/json" \
--header "Authorization: Basic a2V2aW5AdGh*****************************Mzg1eGlrYnRUTQ==" \
--data-binary '{"name": "testDeploy1",
"role": "DEVELOPMENT",
"projectPathInRepository": "/",
"protocol": "SFTP_KEY",
"branch": "develop",
"isAutoDeployment": false,
"host": "148.251.124.123",
"port": "22",
"path": "/home/httpd/develop.example.co.uk",
"isPathAbsolute": true,
"privateKey": "-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAm+hBiQ4W88nAG+ri0+ogfvN/ZF0NV7VTyl/+OcsWrBFZFM0A
1XMQJaQnJguWH+iHtpNvghf+QQlP+ln9ndk9W8OEGrSi75q2WWE6O53wz3+vS1Yj
ium5gFeSOuAQGRGkwqHsMI20trkNSgJAUhaqiVaG+SONRaYIDJfMO2+ZrRqy/oIB
****************************************************************
**************************************************************** 
                      ... snip ... 
**************************************************************** 
**************************************************************** 
rlOW7b39DrojA98xr6ltAoGAChUFYB7L5C1032DOd5QmP7rqKggugrwT4qC0Sx8C
zFeB/hDPHRPKfhE2tpJRiR6O8cOulEqoTWKNJAHspfHozv5YuZ5sCYsyQk+FpX9p
gDnWky0LTslb3np7mLH5cHwQmjTCupOVR8S9ydqtDWBaPyUlfqEl9M97eaNKS0wg
k50CgYB4aZmf3vEoIUWxwVvVhLEdJvxjQFeMjjr4aUBFglOY3sZjrFzdkEBrHNYm
Rl3zAUggdobo7UfEZpBAsUUFufaym8uPLrhVYssL1qOAvbc57i+QAabemuIgX40h
zr/dIDiWam+RafEDoLnnZhq9nhVcBa98qSFj/Yf/SBH+3NwlZg==
-----END RSA PRIVATE KEY-----"}' \
https://example.springloops.io/api/project/180346/servers

我收到回复

{"success":false,"code":400,"message":"Please provide server name"}

当我使用明显伪造的ssh密钥执行以下CURL时:

curl --header "Accept: application/json" --header "Content-type: application/json" \
--header "Authorization: Basic a2V2a****************zg1eGlrYnRUTQ==" \
--data-binary '{"name": "testDeploy1",
"role": "DEVELOPMENT",
"projectPathInRepository": "/",
"protocol": "SFTP_KEY",
"branch": "develop",
"isAutoDeployment": false,
"host": "148.251.124.123",
"port": "22",
"path": "/home/httpd/develop.example.co.uk",
"isPathAbsolute": true,
"privateKey": "PrivateKeyHere"}' \
https://example.springloops.io/api/project/180346/servers

我收到回复

{"success":false,"code":0,"message":"Error while connecting to the server: The key format is not a supported format"}

这是我所期待的。如果我回到虚假键但添加第二行

curl --header "Accept: application/json" --header "Content-type: application/json" \
--header "Authorization: Basic a2V2a****************zg1eGlrYnRUTQ==" \
--data-binary '{"name": "testDeploy1",
"role": "DEVELOPMENT",
"projectPathInRepository": "/",
"protocol": "SFTP_KEY",
"branch": "develop",
"isAutoDeployment": false,
"host": "148.251.124.123",
"port": "22",
"path": "/home/httpd/develop.example.co.uk",
"isPathAbsolute": true,
"privateKey": "PrivateKeyHere
SecondLine"}' \
https://example.springloops.io/api/project/180346/servers

我再次得到同样失败的回复:

{"success":false,"code":400,"message":"Please provide server name"}

所以它似乎与json中的多行参数有关。

使用RequestBin,似乎正在传递数据 - 正在接收

{"name": "testDeploy1",
"role": "DEVELOPMENT",
"projectPathInRepository": "/",
"protocol": "SFTP_KEY",
"branch": "develop",
"isAutoDeployment": false,
"host": "148.251.124.123",
"port": "22",
"path": "/home/httpd/develop.example.co.uk",
"isPathAbsolute": true,
"privateKey": "-----BEGIN RSA PRIVATE KEY-----
MIIEoQIBAAKCAQEAm+hBiQ4W88nAG+ri0+ogfvN/ZF0NV7VTyl/+OcsWrBFZFM0A
1XMQJaQnJguWH+iHtpNvghf+QQlP+ln9ndk9W8OEGrSi75q2WWE6O53wz3+vS1Yj
ium5gFeSOuAQGRGkwqHsMI20trkNSgJAUhaqiVaG+SONRaYIDJfMO2+ZrRqy/oIB
****************************************************************
**************************************************************** 
**************************************************************** 
**************************************************************** 
rlOW7b39DrojA98xr6ltAoGAChUFYB7L5C1032DOd5QmP7rqKggugrwT4qC0Sx8C
zFeB/hDPHRPKfhE2tpJRiR6O8cOulEqoTWKNJAHspfHozv5YuZ5sCYsyQk+FpX9p
gDnWky0LTslb3np7mLH5cHwQmjTCupOVR8S9ydqtDWBaPyUlfqEl9M97eaNKS0wg
k50CgYB4aZmf3vEoIUWxwVvVhLEdJvxjQFeMjjr4aUBFglOY3sZjrFzdkEBrHNYm
Rl3zAUggdobo7UfEZpBAsUUFufaym8uPLrhVYssL1qOAvbc57i+QAabemuIgX40h
zr/dIDiWam+RafEDoLnnZhq9nhVcBa98qSFj/Yf/SBH+3NwlZg==
-----END RSA PRIVATE KEY-----"}

有没有人对此有任何成功,可以对此有所了解?

1 个答案:

答案 0 :(得分:0)

答案是将密钥传递到一行,但使用\r\n作为行终止符。所以正确的方法是

curl --header "Accept: application/json" --header "Content-type: application/json" \
--header "Authorization: Basic a2V2aW5AdGh*****************************Mzg1eGlrYnRUTQ==" \
--data-binary '{"name": "testDeploy1",
"role": "DEVELOPMENT",
"projectPathInRepository": "/",
"protocol": "SFTP_KEY",
"branch": "develop",
"isAutoDeployment": false,
"host": "148.251.124.123",
"port": "22",
"path": "/home/httpd/develop.example.co.uk",
"isPathAbsolute": true,
"privateKey": "-----BEGIN RSA PRIVATE KEY-----\r\nMIIEoQIBAAKCAQEAm+hBiQ4W88nAG+ri0+ogfvN/ZF0NV7VTyl/+OcsWrBFZFM0A\r\n1XMQJaQnJguWH+iHtpNvghf+QQlP+ln9ndk9W8OEGrSi75q2WWE6O53wz3+vS1Yj\r\nium5gFeSOuAQGRGkwqHsMI20trkNSgJAUhaqiVaG+SONRaYIDJfMO2+ZrRqy/oIB\r\n****************************************************************\r\n****************************************************************\r\n                      ... snip ...                              \r\n****************************************************************\r\n ****************************************************************\r\nrlOW7b39DrojA98xr6ltAoGAChUFYB7L5C1032DOd5QmP7rqKggugrwT4qC0Sx8C\r\nzFeB/hDPHRPKfhE2tpJRiR6O8cOulEqoTWKNJAHspfHozv5YuZ5sCYsyQk+FpX9p\r\ngDnWky0LTslb3np7mLH5cHwQmjTCupOVR8S9ydqtDWBaPyUlfqEl9M97eaNKS0wg\r\nk50CgYB4aZmf3vEoIUWxwVvVhLEdJvxjQFeMjjr4aUBFglOY3sZjrFzdkEBrHNYm\r\nRl3zAUggdobo7UfEZpBAsUUFufaym8uPLrhVYssL1qOAvbc57i+QAabemuIgX40h\r\nzr/dIDiWam+RafEDoLnnZhq9nhVcBa98qSFj/Yf/SBH+3NwlZg==\r\n-----END RSA PRIVATE KEY-----"}' \
https://example.springloops.io/api/project/180346/servers