问题
近期使用 Python 的requests库访问 Doris,结果发现无论如何都连接显示认证错误。
分析
使用AI也分析不出来个所以然,但是注意到 Doris 官方文档的例子中有一个 --location-trusted 和 --location 参数。
结论
Python 的requests库的理念就是默认不会把凭据在重定向过程中透传给新的location。
对于 curl来说 --location-trusted 和 -L 就可以搞定。
对于Python来说,需要对 requests 库的请求方式做一些修改:
class TrustRedirectSession(requests.Session):"""Session that preserves auth across redirects like curl --location-trusted"""def rebuild_auth(self, prepared_request, response):"""Override to preserve auth on redirect"""# Don't strip auth on redirect (like curl --location-trusted)pass
完整代码见:Github-Gist
