Сложность передачи ключа при создании сервера с использованием Springloops API

Я пытаюсь использовать API Springloops для создания нового сервера развертывания, но у меня возникают трудности при передаче ключа.

Когда я пробую полный ключ:

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"}

Когда я делаю следующий CURL с явно поддельным ключом ssh:

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 ответ

Ответ состоит в том, чтобы передать ключ в одной строке, но использовать \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
Другие вопросы по тегам