2016-06-28 16 views
-1

Shibbolethベースの認証を実装するGWTアプリケーションを作成しようとしています。最終的には "プロダクションモード"で提供する必要があるため、Tomcat7を使用してアプリケーションを実行することを選択しましたが、クライアントはApache2に接続し、Apache2をAJP経由で(mod_proxy_ajpを使用して)Tomcatに転送します。GWTサーブレットからAJPリクエストデータにアクセスする

アプリケーションを処理する基本的な作業は機能します。しかし、私はShibbolethによって設定された環境変数に何らかの形でアクセスする必要があります。 the Shibboleth documentationによれば、環境変数は接頭辞がAJP_(接頭辞が削除されている)の場合Tomcatに転送されるので、Shibbolethを設定した環境変数にその接頭辞を追加するように設定しますすべての環境変数を出力するPHPスクリプトを使用して確認しています)。 mod_proxy_ajp documentationがそれをフレーズとして - - AJPリクエストがを属性として

トラブルは、彼らはTomcatを達するのではなく提供されることになっている場合、環境変数はもう環境変数として利用できないことです。

どうやら、属性のこれらの種類は、サーブレット内から

getThreadLocalRequest().getSession().getAttribute("uid") 

ようなものを使用してアクセスすることになっています。私のPHPスクリプトではAJP_uidという環境変数がリストされていますが、上記の呼び出しではnullが返されますが、環境変数AJP_uidと同じ値が返されるはずです。

接頭辞がなんらかの理由で削除されなかったが、運がない場合は、uidではなく、上記の呼び出しをAJP_uidで試してみました。

私は間違っていますか?

+1

リクエストでセッションではなくgetAttributeを直接呼び出そうとしましたか? –

+0

@ThomasBroyer私は今持っていなかったし、それは完璧に働いた。本当にありがとう! あなたのクレジットを奪い取ることなく、この質問に答えてマークする方法を教えてください。 – koala

+0

ああ、私は本当に気にしない、ちょうどあなた自身の答えを受け入れる。 –

答えて

0

@ThomasBroyerが述べたように、私はまた、実際に私のためのトリックをやっている、直接getThreadLocalRequest()によって返さHttpServletRequestオブジェクト上getAttributeを呼び出すことができます。

getThreadLocalRequest().getAttribute("uid") 

は私が期待適切な値を返します。 ありがとう!

関連する問題