read_auth() 函数会在客户端发起鉴权握手时被触发。在执行序列中,read_auth() 在 read_handshake() 后立即发生,所以此时服务器选择已经完成,但是连接和授权信息尚未提供给 backend server 。
你可以通过检查 proxy.connection.client 结构获取具体的鉴权信息。更多信息请参考 proxy.connection 。
例如,你可以打印在授权过程中提供的用户名和密码,如下:
你可以在该函数内部中断鉴权过程,然后构建新的错误包,以 proxy.proxy_send_result 参数返回给客户端: