为什么在curl中引用密码变量会导致授权失败? (重击)

问题描述 投票:0回答:1

我对bash和curl有一个非常具体的问题。

我们要做的是:

  • 从詹金斯读取密码并将其粘贴到配置文件(我无权访问密码)
  • 从bash的配置文件中读取参数(主机,用户,密码等)并将其存储在变量中
  • 将带有curl的内容发布到数据库并将结果存储在变量中

最近,我们在我们的deploy-scripts中添加了shellcheck,因此我们需要将变量放在引号中。

这是我们要发送的请求(经​​过shellcheck批准的::

result=$(curl -s -XPOST "${dbURL}" --header "Authorization: Basic $(echo -n "${dbUser}:${dbPwd}" | base64)" --data-binary "blabla")

这是我们得到的错误消息:

{“错误”:“授权失败”}

当我取消引用密码变量(“ $ {dbUser}”:$ {dbPwd}时,它确实起作用。但是后来拼写检查抱怨说,我需要将所有变量都放在引号中。它也可以在另一台使用不同密码的计算机上工作(我无法访问其中任何一个)。

当我使用--user username:password时也是一样。看来问题出在密码内。

使用google并使用不同的特殊字符测试过程(无卷曲)也无法解决。

有人经历过类似的事情吗?

database bash variables curl authorization
1个回答
-1
投票

您可以仅在另一个文件中设置密码,然后将该文件的内容用作您的密码变量。

© www.soinside.com 2019 - 2024. All rights reserved.