HAProxy。如何更改授权标头

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

我有一个在 tcp 模式下工作的 HAProxy 工作配置。 我可以捕获看起来像“Basic dGVzdDp0ZXN0”的授权标头(这意味着授权类型和用户名:密码base64编码)。
有时,在用户名:密码之后会出现“换行”符号,并且授权标头看起来像“Basic dGVzdDp0ZXN0Cg==”
所以我需要从授权标头末尾找到并删除“Cg==”。
怎么办?

frontend HAproxy
       mode tcp
       tcp-request content capture req.hdr(Authorization) len 128
backend server
        mode tcp
        server server1 172.16.1.1
haproxy
1个回答
0
投票

我会在捕获行之前添加这两行,总是

tcp-request inspect-delay 5s
tcp-request content accept if HTTP

我会切换到

mode http
进行这样的捕获,因为 req.hdr() 是一个 http 获取器。

在http模式下你可以使用类似下面的代码吗?

# untested line
# just to get one possible solution
http-request set-var(txn.my_Authorization) req.hdr(Authorization),b64dec,cut_crlf,base64
http-request set-header Authorization %[var(txn.my_Authorization)]

以上所有命令都记录在优秀的 HAProxy 文档

在博客文章HAProxy ACL 简介 中通过更多示例解释了 HAProxy acl 功能

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