Заполнение удаленного пользователя в файлах журнала apache с сеанса PHP

Я столкнулся с описанием того, как получить значение в файле журнала с PHP , однако это эффективно работает, устанавливая произвольную переменную среды и подставляя ее в строку конфигурации журнала.

На самом деле я хочу контролировать значение, на которое ссылается% u в строке конфигурации журнала на этом пути. Единственный способ, который, по-видимому, возможен, – это вернуть значение модулю auth в Apache.

На модуле mod_auth нет конца, поэтому большинство из них, похоже, реализуют собственное управление сеансом (т. Е. Генерируют свои собственные файлы cookie и сохраняют собственные поисковые запросы пользователя).

В идеальном мире мне нужен модуль, который:

  1. позволит мне указать имя файла cookie сеанса
  2. может получить произвольную / настраиваемую именованную переменную из сеанса PHP, содержащего имя пользователя
  3. затем кэширует ненулевые комбинации sessionid / username
  4. где это уместно, перенаправляет пользователей на настраиваемый URL входа

Раньше я проходил в программировании на С, поэтому я мог писать свои собственные, если это необходимо – к сожалению, многие ссылки из https://modules.apache.org мертвы (mod_auth_any, mod_auth_cookie_dbm), поэтому мне трудно найти что-то близкое на что мне нужно, чтобы понять API / найти то, что я мог бы использовать из коробки.

Любые предложения хорошо написанных модулей, которые могут предоставить то, что мне нужно, или которые соответствуют моим требованиям и хорошо написаны / сохранены?

ТИА

C.

Solutions Collecting From Web of "Заполнение удаленного пользователя в файлах журнала apache с сеанса PHP"

Вы должны проверить mod_auth_external .

Вики содержит много полезной информации, например:

  • примеры предоставленных внешних аутентификаторов
  • как написать аутентификатор

Можно использовать файлы cookie, но:

Невозможно установить файлы cookie из модуля аутентификации

И кеш аутентификации не выполняется (только mod_authz_ldap имеет серверный кеш).

Я думаю, что вам нужно будет обрабатывать инициализацию сеанса PHP (набор файлов cookie), страницы входа, страницы повтора и логин (с возможностью регенерации идентификатора сеанса) в отдельном приложении, посвященном этой работе. Используйте второй виртуальный хост, делая только это, как если бы вы имели решение SSO, такое как CAS или сервер Radius. Затем используйте mod_auth_external, чтобы проверить данный контент cookie или перенаправить пользователя в это приложение для входа. В аутентификаторе mod_auth_external вам нужно будет контролировать, что это действительный сеанс на стороне сервера (не доверяйте содержимому файла cookie), либо непосредственно в базе данных, либо с помощью связи с этим вторым приложением), но вы должны найти что-то быстро, это выполняется на каждом запрошенном объекте. Или доверяйте содержимому файла cookie, используя его только для целей ведения журнала, но не доверяйте ему в своем реальном приложении PHP и убедитесь, что сеанс действителен на стороне реального приложения PHP.

Решил пойти с authmemcookie