Назад | Перейти на главную страницу

Использование переменной Apache

Я пытаюсь использовать модуль аутентификации OpenID Apache. В соответствии с эта страница, Я смогу использовать REMOTE_USER Переменная Apache для идентификации пользователя. Я бы хотел передать это как заголовок вышестоящему приложению (я использую Apache для аутентификации и обратного прокси).

Конфигурация моего сайта Apache выглядит следующим образом:

<VirtualHost *:80>

  ProxyPass / http://localhost:3000/
  ProxyPassReverse / http://localhost:3000/

  <Location />
    AuthType OpenID
    require valid-user
    AuthOpenIDAXRequire email http://axschema.org/contact/email @muller\.io$
    AuthOpenIDAXUsername email
    RequestHeader set x-username $REMOTE_USER
  </Location>
</VirtualHost>

Я искал и искал, но больше всего я могу найти, как использовать переменную среды в этом контексте. Я проверил, что жестко запрограммированная строка работает (на самом деле приведенная выше строка передает строку "$REMOTE_USER" к моему приложению).

Если mod_auth_openid устанавливает REMOTE_USER переменная внутри Apache, как я могу передать это в свое приложение?

Покопав еще немного, я обнаружил эта страница со следующим кодом:

 RewriteEngine On
 RewriteCond %{REMOTE_USER} (.+)
 RewriteRule . - [E=RU:%1]
 RequestHeader set REMOTE_USER %{RU}e

Это была волшебная пуля, которая исправила это для меня. Я читал некоторые страницы, которые предполагают, что это может быть неверно (и действительно выглядит неуклюжим), поэтому, пожалуйста, не стесняйтесь порекомендовать что-то получше.