2016-05-02 4 views
1

(セッション)ユーザーがログインしているかどうかを確認したい ユーザーがリソース)彼は、私は、彼が ログインページにリダイレクトする必要があり、この検証後、アクションの実行前にメソッドを実行する方法(ユーザーがログインしているかどうかを確認する)Struts 2

//when logging in 
sessionMap.put("logined",true); 

public String checkLogin() { 
//when trying to reach a resource 
if ((Boolean) sessionMap.get("logined")) return "Logined"; 
    else return "notLogined"; 
} 

を可能性が接続されていないが、私は、クラスアクション とI内のすべてのメソッド・アクションでこのメソッドを実行する必要がありますすべてのアクションで結果を処理する必要がありますSessionAwareとsessionMapを使用して「光」解決策がある場合はstruts.xmlので

に、私の質問は:

private SessionMap<String,Object> sessionMap; 

私はむしろ春のセキュリティ「を使用していません」。

+0

"servlet filter"の場合はGoogle、ServletFilterのjavadocを読んでください。 –

+0

インターセプタ。そして、あなたは本当にいくつかのセキュリティフレームワークの使用を検討すべきです。 –

+0

Nizetが提案したようにサーブレットフィルタに取り組んでいますが、シンプルなセキュリティフレームワークを提案できますか? –

答えて

1

prepare()でメソッドを実行できます。この機能を使用するには、アクションクラスにPreparableインターフェイスを実装する必要があります。アクションが、この機能を含むインターセプタのdefaultStackを使用するように構成されていると仮定します。

Prepare Interceptor:

このインターセプタはPreparableを実装するアクションにprepare()を呼び出します。このインターセプタは、実際のexecuteメソッドが実行される前にロジックを実行する必要がある場合に非常に便利です。


あなたのロジックは、アクションクラスの範囲を超えている場合、認証用のカスタムインターセプタを使用することを検討してください。認証インターセプタの例はHereです。

+0

答えを受け入れる –

関連する問題