我正在尝试配置我的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
我尝试过使用curl,并且可以使用。
有人已经成功配置了spring-sleuth身份验证吗?
答案 0 :(得分:1)
对于基本身份验证,用户名和密码必须作为HTTP标头Authorization
的一部分发送。标头值是根据字符串username:password
的Base64编码计算的。因此,如果用户名是abcd
,密码是1234
,则标头将看起来像这样(使用的帽子:UTF-8 )。
授权:基本YWJjZDoxMjM0
Sleuth云项目提供ZipkinRestTemplateCustomizer
来配置用于与Zipkin服务器通信的RestTemplate
。
请参考相同的文档: https://cloud.spring.io/spring-cloud-sleuth/reference/html/#sending-spans-to-zipkin
注意:Base64编码是可逆的,因此基本身份验证凭据不安全。 HTTPS通信应与基本身份验证一起使用。