在 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_primaryX-CAS-email-primary。此代码部分有效。新标题确实出现了,但没有值。

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

我已经确认X-CAS-email_primary设置好了,所以我不太清楚发生了什么。有什么建议吗?

谢谢!

答案1

的值RequestHeader set支持表达式,表达式包括req(或http) 函数,它为您提供请求标头的值。因此,这个指令应该可以满足您的要求:

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

你必须深入挖掘文档找到这种东西,但它就在那里。

不确定为什么你的配置不起作用,但我猜 SetEnvIfNoCase 是在 RequestHeader 之后评估的。文档并不容易弄清楚这一点。

相关内容