[Seasar-user:4914] Re: ログインしたユーザー名を取得

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2006年 10月 25日 (水) 16:10:05 JST


米林 様
Onagi です。

# 先のメールで、敬称が抜けておりました。
# 申し訳御座いません。

ご返答ありがとうございます。
ご指摘頂きました手順で試してみました。


>5.は必要ないですね。
>http://s2container.seasar.org/ja/DIContainer.html#Request
>上記の通り、s2filterはweb.xmlに記述されていますでしょうか?

了解致しました。

>s2jsf-exampleのaddActionクラスに以下を追加して
>試してみて下さい。
>===========================================
>private HttpServletRequest request;
>
>public void setRequest(HttpServletRequest request) {
>    System.out.println("request["+request+"]");
>    this.request = request;
>}
>===========================================

s2jsf-exampleのaddAction へご指摘の通り設定しましたところ
次の通り出力されました。

	request[[E-MAIL ADDRESS DELETED]]

試しに、
System.out.println("user["+request.getRemoteUser()+"]");
を追加したところ、次のとおりユーザー名を取得する事が出来ました。

	user[admin]

米林さん 
的確なご返答をありがとう御座いました。
大変助かりました。

一つ判りました事は、 
	「HTML タグの action に指定したメソッドには 
	  HttpServletRequest は渡されていない。」
という点です。

    <html xmlns:m="http://www.seasar.org/maya" 
          m:extends="/WEB-INF/layout/base-mp3.html"
          m:action="#{initImpl.initialize}">

この点、何かお気づきの点が御座いましたらアドバイス頂けると
助かります。

button などから起動される action には渡されている事が判りましたので
ロジックを変更する事を検討致します。

以上、よろしくお願い致します。


>米林です。
>
>From: "Hiroyuki Onagi" <[E-MAIL ADDRESS DELETED]>
>Sent: Wednesday, October 25, 2006 1:27 PM
>
>
>> 米林 様 こんにちは。
>> Onagi です。
>> アドバイスありがとうございます。
>> 早速試してみました。
>>
>> 1.初期化 action クラスへ次の setter を追加してみました。
>>
>> public void setRequest(HttpServletRequest request) {
>> this.request = request;
>> }
>>
>> 2.初期化メソッドで次のとおり、 getRemoteUser() ユーザー名を
>>     取得するコードを追加しました。
>>
>> public final String initialize() {
>> String user = request.getRemoteUser();
>> :
>>
>> 3.結果、this.request に HttpServletRequest がセットされていない為、
>>     NullPointerException
>>     が返りました。
>>
>> 4.HTML の action は、次の位置へ置いています。
>>
>>   <html xmlns:m="http://www.seasar.org/maya" m:extends="/WEB-INF/layout/
>> base-mp3.html"
>> m:action="#{topMenuInitImpl.initialize}">
>>
>>
>> 5.dicon ファイルへ、次の設定を追加してみましたが、やはりうまくいきませ
>> ん。
>>
>> <component class="javax.servlet.http.HttpServletRequest"/>
>>
>> HttpServletRequest が set 出来ていない状況ですが、
>> プロパティ名指定方法など 間違っていますでしょうか?
>
>5.は必要ないですね。
>http://s2container.seasar.org/ja/DIContainer.html#Request
>上記の通り、s2filterはweb.xmlに記述されていますでしょうか?
>
>s2jsf-exampleのaddActionクラスに以下を追加して
>試してみて下さい。
>===========================================
>private HttpServletRequest request;
>
>public void setRequest(HttpServletRequest request) {
>    System.out.println("request["+request+"]");
>    this.request = request;
>}
>===========================================
>
>よろしくお願いします。
>---
>米林 正明
>[E-MAIL ADDRESS DELETED]
>
>_______________________________________________
>Seasar-user mailing list
>[E-MAIL ADDRESS DELETED]
>https://www.seasar.org/mailman/listinfo/seasar-user



Seasar-user メーリングリストの案内