
Apache 2.4.27 の背後で実行され、mod_auth_cas を使用してユーザーを認証するアプリケーションがあります。このモジュールは、認証されたユーザーに関する属性をヘッダーに格納します。アンダースコア ( X-CAS-email_primary
) が含まれているために削除されるヘッダーが 1 つあるという問題が発生しています。検索した後、以下のコード スニペットを 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
の値はRequestHeader set
式をサポートしており、式にはリクエスト ヘッダーの値を提供するreq
(または) 関数が含まれています。したがって、次の 1 つのディレクティブで必要な処理を実行できます。http
RequestHeader set X-CAS-email-primary "expr=%{req:X-CAS-email_primary}"
深く掘り下げる必要がありますドキュメンテーションこのようなものを探すのは難しいですが、そこにあります。
なぜ設定が機能しなかったのかはわかりませんが、おそらく SetEnvIfNoCase は RequestHeader の後に評価されるのでしょう。ドキュメントでは、それを簡単に理解することはできません。