当前位置: 首页 > 知识库问答 >
问题:

使用Spring Sleuth Zipkin配置基本身份验证

艾文斌
2023-03-14

我正在尝试将我的spring boot应用程序配置为登录zipkin服务器。问题是,该服务器受代理(具有基本身份验证)保护,我找不到任何描述如何使用spring sleuth配置授权的文档。

我尝试过使用这种配置:

spring.zipkin.baseUrl: http://user:password@zipkin-server:9411

但没有成功,日志显示:

ZipkinRestTemplateWrapper    : Created POST request for "http://user:password@zipkin-server:9411/api/v2/spans"
ZipkinRestTemplateWrapper    : Setting request Accept header to [text/plain, application/json, application/*+json, */*]
ZipkinRestTemplateWrapper    : Writing [[B@46d92b65] as "application/json" using [org.springframework.http.converter.ByteArrayHttpMessageConverter@53804b23]
ZipkinRestTemplateWrapper    : POST request for "http://user:password@zipkin-server:9411/api/v2/spans" resulted in 401 (Unauthorized); invoking error handler

我试过卷发,效果很好。

有人已经成功地用spring sleuth配置了身份验证吗?

共有1个答案

王岳
2023-03-14

对于基本身份验证,用户名和密码需要作为HTTP头授权的一部分发送。头值计算为字符串的Base64编码username:password。因此,如果用户名是abcd,密码是1234,则标题将类似于以下内容(使用的聊天集:UTF-8)。

授权:基本YWJZDOXMJ0

Sleuth cloud project提供了ZipkinRestTemplateCustomizer配置用于与Zipkin服务器通信的RestTemplate

请参阅相关文档:https://cloud.spring.io/spring-cloud-sleuth/reference/html/#sending-到齐普金

注意:Base64编码是可逆的,因此基本身份验证凭据不安全。HTTPS通信应与基本身份验证一起使用。

 类似资料:
  • 我一直在努力遵循这个教程: https://www.baeldung.com/spring-security-basic-authentication 我创建了几个restendpoint,如下所示: 现在的问题是,每当我试图发送POST请求时,我都会得到以下错误消息: HTTP状态401-访问此资源需要完全身份验证 我尝试了两种方法来发送请求,一种是通过邮递员 1.1 401 set-cooki

  • 我有一个需要以两种不同方式保护的API: 1) 对除1以外的所有请求URL使用JWT,该URL需要使用基本身份验证进行保护 2) 一个url的基本身份验证。 我已经为JWT和Basic Auth设置了安全配置。我的问题是,当我使用有效的用户名和密码请求基本的经过身份验证的URL时,它会成功地对我进行身份验证,并将数据存储在cassandra中。 然后,我希望必须通过/api/login为所有其他请

  • 我想使用Spring Cloud实现OAuth2的令牌刷新。 我可以使用以下有效负载通过向发送请求来创建令牌: 但对于刷新令牌,则使用相同的路径。我还需要将用户名和密码发送到标题中,但我没有它们。我可以使用以下负载使用刷新令牌创建一个新令牌: Github代码

  • 问题内容: 我正在尝试使用Spring Security Java配置保护Web应用程序的安全。 这是配置的样子: 请注意,我已使用以下命令明确禁用了HTTP基本身份验证: 访问安全的URL时,我仍然收到HTTP Authenticaton提示框。为什么? 请帮我解决这个问题。我只想呈现捆绑的默认登录表单。 Spring Boot Starter版本:1.1.5 Spring安全版本:3.2.5

  • 在斯威格中有一个.BasicAuth(“基本”)。我取消注释的描述(“基本HTTP授权”)行。 但是,当尝试使用其中一个endpoint时,单击“试用!”按钮时,系统会提示我登录。无论我在这个框中放了什么(用户名和密码框),我都无法运行或测试endpoint,因为我未经授权。我需要在 SwaggerConfig.cs 文件或其他位置执行哪些操作才能进行测试? 我使用的是.Net Framework

  • 问题内容: 使用基本身份验证进行身份验证时遇到问题。我正在使用符合协议的标准枚举来构造我的请求。问题是,当我在枚举中手动设置授权标头时,如下所示: 我总是收到401未经授权的回复。 但是, 如果我像这样使用回调设置密码: 它正确认证。我希望能够在符合的枚举中手动进行设置,而不是在中传递凭据。 我知道它正在使用身份验证挑战的后台,但我希望能够手动设置它。 这是我的实现: 问题答案: 最终弄清楚了问题