[Seasar-user:20464] Re: Interceptorを用いた際のIllegalAutoBindingPropertyRuntimeException

Takafumi Yoshida [E-MAIL ADDRESS DELETED]
2010年 12月 27日 (月) 09:37:59 JST


いつもお世話になります。吉田(zephiransas)です。

AdminAuthInterceptorにある
>   @Resource
>   protected User user;
の使い方がちがいますね。

Userクラスはルートパッケージ(scoreupgolf?).entityにあるようですが普通entityは
セッション管理には使いません。

まず、Seasarでセッション管理するクラスをscoreupgolf.formにLoginInfoFormとかで
作成し、これに
@Component(instance = InstanceType.SESSION)
を追加します。Serializableを忘れずに。

http://s2container.seasar.org/2.4/ja/DIContainer.html#ComponentAnnotation
http://s2container.seasar.org/2.4/ja/DIContainer.html#InstanceMode

ログイン処理を行うServiceで上記のLoginInfoFormをDIし、ログイン成功時に各種プロパティ
(ユーザIDとか氏名とかロールとかetc...)をセットしておきます。

AdminAuthInterceptorでは
 @Resource
 protected LoginInfoForm loginInfoForm
でセッションからDIし、これを使用して、ログインしているか?adminロールがあるか?をチェックする
といったパターンが一般的ではないかと思います。

#それにしてもScoreupGolf・・・気になる名称ですw


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