1

Tomcat をmod_proxy_ajpApache2.2 インスタンス経由で接続しています。Apache は を介し​​て認証をmod_auth_kerb行い、Tomcat は を使用request.getRemoteUser()して認証されたユーザーを取得します。

これは基本的には機能しますが、ユーザーを書き換えたいです。ただし、設定したヘッダーは によって返されるものには影響request.getRemoteUser()しません。追加のヘッダーとしてのみ表示されます。どうすればよいですか?

   # Rewrite Magic: change REMOTE_USER to something Alfresco expects
    RewriteEngine On

    RewriteMap domain_map txt:/etc/apache2/rewrite-map.txt

    # Grab the REMOTE_USER apache environment variable for HTTP forwarding (requires sub-request!)
    RewriteCond %{LA-U:REMOTE_USER} (.*)@(.*)

    # change the format and replace the domain, e.g.: 
    # user@some.domain  ==>  other.domain_user
    RewriteRule . - [E=RU:${domain_map:%2|%2}_%1]

    # copy processed user to HTTP headers
    RequestHeader set REMOTE_USER %{RU}e
    RequestHeader set HTTP_REMOTE_USER %{RU}e
    RequestHeader set AJP_REMOTE_USER %{RU}e
    RequestHeader set AJP_HTTP_REMOTE_USER %{RU}e

ありがとう!

4

2 に答える 2

0

AJP プロトコル ハンドラーが一部の内部 Apache 構造からユーザー名を取得するため、getRemoteUser() 値は Apache ヘッダー ディレクティブによって上書きできないようです。これを回避するには、http ヘッダー経由でユーザー名を送信し、getRemoteUser() を使用する代わりにそれを使用するように Java コードを変更しました。

于 2012-02-16T13:24:46.433 に答える
0

期待どおりにヘッダーが設定されておらず、Tomcat が空になっていると思われます。

RequestHeaderによって設定された環境変数を無視する原因となる不可解な処理順序の問題を経験しましたRewriteRule。役立つ場合はhttps://stackoverflow.com/a/9303018/239408をご覧ください

于 2012-02-16T08:58:04.090 に答える