FastCGI + lighttpd + C ++: как получить доступ к заголовкам HTTP в коде? - PullRequest
0 голосов
/ 08 января 2020

Я разрабатываю RESTFul API-интерфейсы FastCGI на C / C ++, развертывание на Lighttpd во встроенной системе. Я хочу использовать Basi c Авторизация. Официальный подход заключается в том, чтобы настроить его в lighttpd.conf с файлами, содержащими пароль usr +.

Но моя встроенная система имеет собственную систему управления пользователями, сложно объединить вышеупомянутый механизм stati c user + password , Поэтому мне было интересно, смогу ли я получить доступ к заголовку HTTP, как "Authorization: Basic SGVsbWVyxxxxxx3b3JkMDE=" в моем коде, и выполнить проверку user + pass самостоятельно.

ПРОБЛЕМА: Я обнаружил, что могу получить информацию заголовков для "CONTENT_LENGTH", "REQUEST_URI", "REQUEST_METHOD" и др. c. вызывая getenv(), но без переменных окружения для "Authorization". Как я могу получить это HTTP header в моем коде?

Спасибо, Исаа c Ван

1 Ответ

0 голосов
/ 09 января 2020

Вы можете использовать lighttpd mod_fastcgi с FastCGI "mode" => "authorizer"

https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI

lighttpd не передает заголовок авторизации в режиме FastCGI " "=>" отвечающий "(по умолчанию).

.

FALSE следующее:

Официальный подход заключается в том, чтобы настроить его в lighttpd.conf с помощью файлы, содержащие usr + пароль.

Это НЕПРАВИЛЬНО. lighttpd поддерживает несколько опций authn, кроме файлов, таких как GSSAPI, LDAP, MySQL, PAM и SASL, а lighttpd имеет многократно используемую инфраструктуру, если вы хотите написать собственный модуль mod_authn_ *.

https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModAuth

...