FastCGI+lighttpd+C++:如何在代码中访问 HTTP headers?
FastCGI+lighttpd+C++: How can I access the HTTP headers in code?
我正在 C/C++ 中通过 FastCGI 开发 RESTFul
API,在嵌入式系统中部署 Lighttpd
。我想使用基本授权。官方的做法是在lighttpd.conf
中配置包含usr+password.
的文件
但是我的嵌入式系统有自己的用户管理系统,很难合并前面提到的静态用户+密码机制。所以我想知道我的代码中是否可以像"Authorization: Basic SGVsbWVyxxxxxx3b3JkMDE="
那样访问HTTPHeader,自己做user+pass的验证。
问题:我发现我可以通过调用 getenv()
获取 "CONTENT_LENGTH"
、"REQUEST_URI"
、"REQUEST_METHOD"
等的 headers 信息,但是"Authorization"
没有环境变量。我怎样才能在我的代码中得到这个 HTTP header
?
谢谢,
艾萨克·王
你可以使用 lighttpd mod_fastcgi 和 FastCGI "mode" => "authorizer"
https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI
当 FastCGI "mode" => "responder"(默认)时,lighttpd 不通过授权 header。
.
以下是错误的:
The official approach is to configure it in lighttpd.conf with files that contains usr+password.
这是不正确的。 lighttpd 支持除文件之外的多个身份验证选项,例如 GSSAPI、LDAP、MySQL、PAM 和 SASL,如果您想编写自定义 mod_authn_* 模块,lighttpd 有一个可重用的框架。
https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAuth
我正在 C/C++ 中通过 FastCGI 开发 RESTFul
API,在嵌入式系统中部署 Lighttpd
。我想使用基本授权。官方的做法是在lighttpd.conf
中配置包含usr+password.
但是我的嵌入式系统有自己的用户管理系统,很难合并前面提到的静态用户+密码机制。所以我想知道我的代码中是否可以像"Authorization: Basic SGVsbWVyxxxxxx3b3JkMDE="
那样访问HTTPHeader,自己做user+pass的验证。
问题:我发现我可以通过调用 getenv()
获取 "CONTENT_LENGTH"
、"REQUEST_URI"
、"REQUEST_METHOD"
等的 headers 信息,但是"Authorization"
没有环境变量。我怎样才能在我的代码中得到这个 HTTP header
?
谢谢, 艾萨克·王
你可以使用 lighttpd mod_fastcgi 和 FastCGI "mode" => "authorizer"
https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI
当 FastCGI "mode" => "responder"(默认)时,lighttpd 不通过授权 header。
.
以下是错误的:
The official approach is to configure it in lighttpd.conf with files that contains usr+password.
这是不正确的。 lighttpd 支持除文件之外的多个身份验证选项,例如 GSSAPI、LDAP、MySQL、PAM 和 SASL,如果您想编写自定义 mod_authn_* 模块,lighttpd 有一个可重用的框架。
https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAuth