S2AOP
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
] [
Twitter
]
開始行:
→詳細設計・アルゴリズムなど
→DI(依存性注入)
→Java関連
#contents
*SAStrutsのアクション全実行メソッドでログイン済みチェック...
public class LoginCheckInterceptor extends AbstractInter...
private static final long serialVersionUID = 707324263...
@Override
public Object invoke(MethodInvocation arg0) throws Thr...
Log.debug("LoginCheckInterceptor.invoke");
if(isExecuteMethod(arg0)){
if (isLoggedIn()){
Log.debug("ログインチェック OK.");
return arg0.proceed();
}else{
Log.error("正しくログイン認証されていません。");
return "/?redirect=true";
}
} else
return arg0.proceed();
}
/**
* @Executeアノテーションがついているか
* @param invocation
* @return Executeがついていたらtrue
*/
boolean isExecuteMethod(MethodInvocation invocation) {
return invocation.getMethod().
isAnnotationPresent(Execute.class);
}
/**
* ログイン済みかチェック
* @return ログイン認証されていて、タイムアウトしてな...
*/
private boolean isLoggedIn() {
HttpSession session =
(HttpSession) SingletonS2ContainerFactory
.getContainer()
.getExternalContext()
.getSession();
SessionDto dto = (SessionDto) session.getAttribu...
//セッションタイムアウトしてたらnullになるはず
if(dto==null)
return false;
else{
return dto.isLoggedIn();
}
}
}
-customizer.diconの設定
<component name="actionCustomizer"
class="org.seasar.framework.container.customizer.Cus...
<!-- ログインしているかチェックするインターセプタ -->
<initMethod name="addCustomizer">
<arg>
<component class="org.seasar.framework.container...
<!-- プロパティネームの先頭は小文字になる点に...
<property name="interceptorName">"loginCheckIn...
<initMethod name="addIgnoreClassPattern">
<arg>"approot.action"</arg>
<arg>"IndexAction"</arg>
</initMethod>
</component>
</arg>
</initMethod>
</component>
終了行:
→詳細設計・アルゴリズムなど
→DI(依存性注入)
→Java関連
#contents
*SAStrutsのアクション全実行メソッドでログイン済みチェック...
public class LoginCheckInterceptor extends AbstractInter...
private static final long serialVersionUID = 707324263...
@Override
public Object invoke(MethodInvocation arg0) throws Thr...
Log.debug("LoginCheckInterceptor.invoke");
if(isExecuteMethod(arg0)){
if (isLoggedIn()){
Log.debug("ログインチェック OK.");
return arg0.proceed();
}else{
Log.error("正しくログイン認証されていません。");
return "/?redirect=true";
}
} else
return arg0.proceed();
}
/**
* @Executeアノテーションがついているか
* @param invocation
* @return Executeがついていたらtrue
*/
boolean isExecuteMethod(MethodInvocation invocation) {
return invocation.getMethod().
isAnnotationPresent(Execute.class);
}
/**
* ログイン済みかチェック
* @return ログイン認証されていて、タイムアウトしてな...
*/
private boolean isLoggedIn() {
HttpSession session =
(HttpSession) SingletonS2ContainerFactory
.getContainer()
.getExternalContext()
.getSession();
SessionDto dto = (SessionDto) session.getAttribu...
//セッションタイムアウトしてたらnullになるはず
if(dto==null)
return false;
else{
return dto.isLoggedIn();
}
}
}
-customizer.diconの設定
<component name="actionCustomizer"
class="org.seasar.framework.container.customizer.Cus...
<!-- ログインしているかチェックするインターセプタ -->
<initMethod name="addCustomizer">
<arg>
<component class="org.seasar.framework.container...
<!-- プロパティネームの先頭は小文字になる点に...
<property name="interceptorName">"loginCheckIn...
<initMethod name="addIgnoreClassPattern">
<arg>"approot.action"</arg>
<arg>"IndexAction"</arg>
</initMethod>
</component>
</arg>
</initMethod>
</component>
ページ名: