You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi WebBroker Apache模块中处理Authorization: Basic授权?

解决WebBroker Apache模块中TWebRequest未填充AuthUser/AuthPassword的问题
  • 直接读取HTTP请求头的Authorization字段
    TWebRequest未自动解析Basic授权信息时,可通过Request.GetFieldByName('Authorization')获取完整授权头内容。典型值格式为Basic dXNlcjpwYXNzd29yZA==,空格后的Base64字符串是用户名:密码的组合。

  • 手动解码Base64凭证
    提取授权头中的Base64部分,解码后分割出用户名和密码。Delphi示例代码如下:

    var
      AuthHeader, Base64Part, Credentials, Username, Password: string;
      ColonPos: Integer;
    begin
      AuthHeader := Request.GetFieldByName('Authorization');
      if StartsText('Basic ', AuthHeader) then
      begin
        Base64Part := Copy(AuthHeader, 7, Length(AuthHeader));
        Credentials := TNetEncoding.Base64.DecodeString(Base64Part);
        ColonPos := Pos(':', Credentials);
        if ColonPos > 0 then
        begin
          Username := Copy(Credentials, 1, ColonPos - 1);
          Password := Copy(Credentials, ColonPos + 1, Length(Credentials));
        end;
      end;
    end;
    
  • 验证Apache配置的授权头传递
    检查Apache配置文件(httpd.conf或虚拟主机配置),确保没有RequestHeader unset Authorization这类禁用授权头的配置;若使用mod_proxy等模块,需保证授权头能正确传递到WebBroker模块。

内容的提问来源于stack exchange,提问作者LTi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 20:40:28