[Seasar-user:8098] Re: S2ContainerとTeedaのバージョンを変更するとInterceptorにDIされません

亀田一郎 [E-MAIL ADDRESS DELETED]
2007年 6月 6日 (水) 10:54:27 JST


SessionScopeを使って認証チェックを行なうサンプルも作成しましたが、
その場合は、環境1、環境2とも正常に動作しました。


07/06/06 に Kenji Yamaguchi <[E-MAIL ADDRESS DELETED]> さんは書きました:
>
> お世話になります。
> 山口です。
>
> この件、は
> https://www.seasar.org/issues/browse/TEEDA-305
> の問題ではないでしょうか?
> 違っていたらすいません。
>
> -----Original Message-----
> From: [E-MAIL ADDRESS DELETED] [mailto:
> [E-MAIL ADDRESS DELETED]] On Behalf Of Shinpei Ohtani
> Sent: Wednesday, June 06, 2007 10:09 AM
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:8094]
> Re:S2ContainerとTeedaのバージョンを変更するとInterceptorにDIされません
>
> 大谷です。
>
> はずしているかもしれませんが、
> ・LoginInterceptor2 は本当に動いていますでしょうか?
> デバッグポイントをあててみてください。
> ・customizer.diconが何かおかしいかもしれません。
> こちらは見せていただければ何かわかるかもしれません。
> ・環境2でTeedaやS2の古いjarがWEB-INFの下に残っていたりしませんか?
>
>
>
> 07/06/06 に 亀田一郎<[E-MAIL ADDRESS DELETED]> さんは書きました:
> > 亀田と申します。
> > 初めて投稿します。
> > 宜しくお願いします。
> >
> > AOPによる認証チェックのサンプルを作っています。
> > S2ContainerとTeedaのバージョンを変更したら、
> > プログラムが正常に動作しなくなり、原因が分かりません。
> > 皆様のご教示を賜りたく投稿しました。
> >
> > ■環境1(S2Container-2.4.10とTeeda-1.0.4)
> >   s2-extension-2.4.10.jar,s2-framework-2.4.10.jar,s2-tiger-2.4.10.jar
> >   teeda-core-1.0.4.jar,teeda-extension-1.0.4.jar,teeda-tiger-1.0.4.jar
> >   他多数
> >
> > ■環境2(S2Container-2.4.13とTeeda-1.0.7)
> > s2-extension-2.4.13.jar,s2-framework-2.4.13.jar,s2-tiger-2.4.13.jar
> > teeda-ajax-1.0.7.jar,teeda-core-1.0.7.jar,teeda-extension-1.0.7.jar,
> teeda-tiger-1.0.7.jar
> >   他多数
> >
> > ■プログラム構成
> >   LoginInterceptor2.java
> >   LoginUserDto.java    @Component(instance = InstanceType.SESSION)で
> >  セッションに保管
> > login2.html     ---->Login2Page.java
> >
> > ログオフは@RemoveSession(name="loginUserDto")
> >   logincheck2.html---->Logincheck2Page.java
> >
> > ■テストの概要
> > ・login2.htmlで入力したログイン情報をLogin2Pageでチェックし
> > 結果をLoginUserDtoにセットし、セッションに保管します。
> >   ・logincheck2.htmlはテスト用htmlで、画面上のsubmitボタンを
> > 押下するとLogincheck2PageのdoAuth()メソッドを呼び出します。
> > ・doAuth()メソッドにはAOPが適用されており、LoginInterceptor2が
> > LoginUserDtoのログイン情報をチェックし、認証OKとエラーに
> > 対応して画面に遷移します。
> >
> > ■環境1は正常に動作します。
> >
> > ■環境2の場合、
> >
> > 1.LoginInterceptor2にLoginUserDtoがDIされない(null)ため、常に認証エラーになります
> > Logincheck2PageにはDIされます
> >   2.Login2PageのログオフでLoginUserDtoがセッションから削除されません
> >     @RemoveSession(name="loginUserDto")が利かない
> >
> > ■ソース
> >
> > 【LoginInterceptor2】
> > package test.interceptor;
> >
> > … 省略 …
> >
> > public class LoginInterceptor2 implements MethodInterceptor {
> >
> >   private LoginUserDto loginUserDto;
> >
> >   public void setLoginUserDto(LoginUserDto loginUserDto){
> > this.loginUserDto = loginUserDto; }
> >
> >   public Object invoke(MethodInvocation invocation) throws Throwable {
> >
> >     if(loginUserDto!=null){
> >       if(loginUserDto.isAuthed()){
> >           System.out.println("@@@@@@@@@ 前");
> >           Object obj = invocation.proceed();
> >           System.out.println("@@@@@@@@@ 後");
> >           return obj;
> >       }
> >     }
> >     return "error";
> >   }
> > }
> >
> > 【LoginUserDto】
> > package test.web.dto;
> > import org.seasar.framework.container.annotation.tiger.*;
> >
> > @Component(instance = InstanceType.SESSION) public class LoginUserDto
> > {
> >   private String userId;
> >   private boolean authed;
> >   public String  getUserId()                 { return userId;          }
> >   public void    setUserId(String userId)    { this.userId = userId;   }
> >   public boolean isAuthed()                  { return authed;          }
> >   public void    setAuthed(boolean authed)   { this.authed = authed;   }
> > }
> >
> > 【Login2Page】
> >
> > package test.web.login2;
> >
> > … 省略 …
> >
> > public class Login2Page {
> >
> >   private String  userId;
> >   private String  password;
> >   private boolean loggedin=true;
> >   private String  loginMsg = "初期メッセージ";
> >
> >   private LoginUserDto loginUserDto;
> >
> >  … 省略 …(setter/getter)
> >
> >   public void    setLoginUserDto(LoginUserDto loginUserDto) {
> >     this.loginUserDto = loginUserDto;
> >   }
> >
> >   public String doLogin() {
> >     System.out.println("#### start doLogin() ####");
> >     if(userId.equals("user") && password.equals("user")) {
> >       loginUserDto.setAuthed(true);
> >       loginUserDto.setUserId(userId);
> >       loginMsg = "ログイン成功";
> >       loggedin = true;
> >       return "success";
> >     } else {
> >       loginUserDto.setAuthed(false);
> >       loginMsg = "ログイン失敗";
> >       loggedin = false;
> >       return "error";
> >     }
> >
> >   }
> >
> >   @RemoveSession(name="loginUserDto")
> >   public String doLogout() {
> >     System.out.println("#### start doLogout() ####");
> >     return null;
> >   }
> >
> >   public String prerender() {
> >     System.out.println("#### start prerender() ####");
> >
> >     if(loginUserDto.isAuthed()) {
> >       loggedin = true;
> >     } else {
> >       loggedin = false;
> >     }
> >     return null;
> >   }
> > }
> >
> > 【Logincheck2Page】
> >
> > package test.web.logincheck2;
> >
> > … 省略 …
> >
> > public class Logincheck2Page {
> >
> > … 省略 …
> >
> >   private LoginUserDto loginUserDto;
> >   public void setLoginUserDto(LoginUserDto loginUserDto){
> >     his.loginUserDto = loginUserDto ;
> >   }
> >
> >   public String initialize(){
> >     System.out.println("##### Start initialize() #####");
> >     statMsg="ログイン承認未済";
> >     if(loginUserDto!=null){
> >       if(loginUserDto!=null){
> >         if(loginUserDto.isAuthed ()){
> >           statMsg="ログイン承認済み";
> >         }
> >       }
> >     }
> >     return null;
> >   }
> >   public String doAuth() {
> >     System.out.println("##### Start doAuth() #####");
> >     return null;
> >   }
> > }
> >
> >
> >
> >
> >
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> >
>
>
> --
> =============================
> Shinpei Ohtani
> [E-MAIL ADDRESS DELETED]
> =============================
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://ml.seasar.org/archives/seasar-user/attachments/20070606/834bac47/attachment.html 


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