[Seasar-user:17804] Re: [SAStruts]インターセプター(Interceptor)中でのセッション(HttpSession)の取得方法について

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2009年 6月 20日 (土) 17:50:59 JST


田中です。

ひがさん、小林さんとも素早いレスを頂きありがとうございます。
 ※Seasar初心者ということもあり、既出の情報に気づいておらず申し訳ありません。

おかげで、インターセプター側のインスタンススコープ指定漏れに気づきました。
小林さんの情報を元に修正を行い、以下の設定で動作が確認できています。

<インターセプタのソース> ※「session」プロパティを追加
> public class LoginCheckInterceptor extends AbstractInterceptor {
>   public HttpSession session;

<インターセプタの設定> ※「instance」指定を追加
 <component name="loginCheckInterceptor" instance="request" (以下略)

<カスタマイザの設定> ※「useLookupAdapter」「addIgnoreClassPattern」追加
  <component name="loginCheckCustomizer" class="org.seasar.framework.container.customizer.As
pectCustomizer">
    <property name="interceptorName">"loginCheckInterceptor"</property>
    <property name="useLookupAdapter">true</property>
    <initMethod name="addIgnoreClassPattern">
      <arg>"sample.sastruts.aop.action"</arg>
      <arg>"LoginAction"</arg>
    </initMethod>
  </component>

認証チェック対象外クラスの指定もできたので、良い感じです。

ご報告まで。


----- Original Message ----- 
送信者: Koichi Kobayashi<[E-MAIL ADDRESS DELETED]>
宛先: [E-MAIL ADDRESS DELETED]
日付:Saturday, June, 20, 2009, 01:30 AM
件名: [Seasar-user:17799] Re:[SAStruts]インターセプター(Interceptor)中でのセッション(Http
Session)の取得方法について

> 
> 
> 小林 (koichik) です.
> 
> Date:    19 Jun 2009 20:44:45 +0900
> From:    [E-MAIL ADDRESS DELETED]
> To:      [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:17797] [SAStruts]インターセプター(Interceptor)中でのセッション(Ht
tpSession)の取得方法について
> 
> > MLの中から以下の実装が数件見つかり、動作も確認できているのですが、
> > これは正しい取得方法なのでしょうか。
> > 
> > public class LoginCheckInterceptor extends AbstractInterceptor {
> > 	public Object invoke(MethodInvocation invocation) throws Throwable {
> > 		HttpSession session =
> > 		(HttpSession)SingletonS2ContainerFactory.getContainer().
> > 		getExternalContext().getSession();
> 
> それでも構いません.
> あるいは,
> 
> public class LoginCheckInterceptor extends AbstractInterceptor {
>   public HttpSession session;
> 
>   public Object invoke(MethodInvocation invocation) throws Throwable {
>     ...
>   }
> }
> 
> と public プロパティを用意して,customizer.dicon を
> 
> http://www.seasar.org/wiki/index.php?FAQ%2FS2AOP#q69751d4
> 
> にあるように設定する方法でも大丈夫です.
> この場合,自分で HttpSession を取りに行く必要は
> ありません.
> 
> 
> -- 
> <component name="koichik">
>     <property name="fullName">"Koichi Kobayashi"</property>
>     <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
>     <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
> </component>
> 
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
> 


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