Изменить подчеркивание на тире в заголовке Apache

Изменить подчеркивание на тире в заголовке Apache

У меня есть приложение, работающее на Apache 2.4.27, которое аутентифицирует пользователей с помощью mod_auth_cas. Этот модуль хранит атрибуты аутентифицированного пользователя в заголовках. У меня возникли проблемы с одним заголовком, который удаляется, поскольку в нем есть подчеркивание ( X-CAS-email_primary). После некоторых поисков я добавил приведенный ниже фрагмент кода в конфигурацию VirtualHost.

SetEnvIfNoCase X-CAS-email_primary ^(.*)$ fix_header=$1
RequestHeader set X-CAS-email-primary %{fix_header}e env=fix_header

Если это не очевидно, я пытаюсь изменить X-CAS-email_primaryна X-CAS-email-primary. Этот код частично работает. Новый заголовок появляется, но он не имеет значения.

["HTTP_X_CAS_EMAIL_PRIMARY"]=> string(0) ""

Я подтвердил, что это X-CAS-email_primaryустановлено, поэтому я не совсем уверен, что происходит. Есть предложения?

Спасибо!

решение1

Значение a RequestHeader setподдерживает выражения, а выражения включают функцию req(или http), которая дает вам значение заголовков запроса. Так что эта директива должна делать то, что вам нужно:

RequestHeader set X-CAS-email-primary "expr=%{req:X-CAS-email_primary}"

Вам нужно глубоко вникнуть в сутьдокументациянайти что-то подобное, но оно есть.

Не уверен, почему ваша конфигурация не сработала, но, полагаю, SetEnvIfNoCase оценивается после RequestHeader. Документация не позволяет легко это выяснить.

Связанный контент