[Seasar-user:3877] Re: 独自作成Interceptorの使用方法

竹内 圭 [E-MAIL ADDRESS DELETED]
2006年 6月 16日 (金) 17:04:30 JST


こんにちは。rokugenこと竹内です。
私もinterceptorで認証、同じことやってました。
最近建て付け変わってservlet filterに変更しちゃいましたが。

自分のブログであいすみませんが
最近おんなじこと書いてましたので
http://d.hatena.ne.jp/rokugen/20060610#1149866602
宣伝がてら。

上記ブログにも書いてますが、スレッド間の同期に関して
ちょっとだけ不安な気持ちもない事もないのですが、
どんなもんでしょう。

藤本 正人 wrote:
> Seasar2勉強中の藤本と申します。
> 
> 私も同様の問題(Interceptorでセッション属性のオブジェクトが自動バインディ
> ングされない)で悩み、下記のように直接S2Containerからインスタンスを取得す
> ることで解決しました。
> 
> S2Container con = SingletonS2ContainerFactory.getContainer();
> User user = (User) con.getComponent(User.class);
> 
>> こんにちは、関です。
>>
>> Seasarを勉強中ですがよろしくお願いします。
>>
>> 【実現したいこと】
>> S2JSFに簡易的な認証機能を付けたプログラムを作成したい。
>> (ページの閲覧認証機能は、横断的なシステムの機能と考えてAOPで実装してみよう
>> と考えました)
>>
>> 【考えたこと】
>> 閲覧者は session で User コンポーネントを持ち回りサーバーに閲覧者を知らせま
>> す。
>> S2JSF の全ての action に 独自作成の Interceptor をAOPで埋め込んで
>> 独自実装 Interceptorの invoke(MethodInvocation invocation) メソッドで
>> 閲覧者が保持している session の User コンポーネントを取得し、
>> 閲覧権限が無い場合には invocation.proceed(); をスキップして action を終了さ
>> せようと考えました。
>> 閲覧権限の有無の実現方法は getTargetClass で action クラス名を取得できるみ
>> たいなので
>> それと 取得した User オブジェクトを比較しようと思っています。
>>
>> 【出来ないこと】
>> しかし、独自実装Interceptorで 閲覧者が保持している
>> session の User コンポーネントを取得できません。
>>
>> この独自作成のInterceptor で setter を実装すれば取得できるかとも思い
>> やってみましたが出来ませんでした。
>>
>> public void setUser(User user) {
>>   this.user = user;
>> }
>>
>> 【聞きたいこと】
>> actionには setUser メソッドでコンポーネントは入るのですが
>> Interceptorをかぶせるオブジェクトではコンポーネント(上記例でいうとUserイン
>> スタンス)は
>> 取得できないのでしょうか?
>> 何か分かりやすいサンプルなどがありましたら教えて下さい。
>>
>> そもそも、AOPで実装仕様とする事自体が
>> もしかしたら見当違いなのかもしれませんが、よろしくお願い致します。
>>
>>
>> _______________________________________________
>> Seasar-user mailing list
>> [E-MAIL ADDRESS DELETED]
>> https://www.seasar.org/mailman/listinfo/seasar-user
> 
> ---
> Masato FUJIMOTO
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://www.seasar.org/mailman/listinfo/seasar-user
> 




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