Pushgateway抛出401 -未授权



我正试图将指标推向基本的认证推送网关。但是我遇到了401 -未经授权

所以我安装了一个本地推送网关,并配置了基本身份验证:

密码加密如下所示:https://github.com/prometheus/exporter-toolkit/blob/master/docs/web-configuration.md#about-bcrypt

basic_auth_users:
pushgateway: $2y$10$d6t8zGfPMZBLFLpoClFcReK6z4gxkDr2H8jnEfOaUpjpLX4.tbyTS%
在我的代码中,我按照如下方式指定用户名和密码:
this.pushGateway.setConnectionFactory(new BasicAuthHttpConnectionFactory("pushgateway","<password>"));

以上密码为加密后输入push gateway config中的密码。

这里的文档(https://github.com/prometheus/client_java#with-basic-auth)没有提到任何关于加密密码的内容,密码以明文形式提供。

谁能指出我错过了什么?

正如您概述的文档中所述,bcrypt过程仅适用于使用导出器工具包的导出器,而Java客户机以纯文本形式接受参数。

这背后的原因是bcrypt是为密码存储而设计的。Bcrypt在内部为您生成一个盐和从纯文本重新计算哈希所需的各种信息。

信息由$分隔,salt是哈希的第22个字符;在您的示例中:

  • 2y为BCrypt算法版本
  • 10为算法的强度
  • d6t8zGfPMZBLFLpoClFcRe为盐
  • 余数是哈希值

向导出方进行身份验证时,basic-auth将以明文形式发送密码,bcrypt可用于在服务器端验证密码。

如果您要从客户端发送散列密码,导出器(服务器)将不知道如何恢复明文密码(它是散列,而不是加密)。

如果秘密在服务器端泄露,盐(假定)确保密码难以恢复。在客户端,您负责确保明文密码不泄露。

相关内容

  • 没有找到相关文章

最新更新