1

ユーザーがページを読み込もうとするときはいつでも、ユーザーのリクエストを処理する必要があります。このリスナーでは、いくつかの特別なチェックを行う必要があり、その結果、ユーザーのセッションを閉じるか閉じないかを決定します。これをどのように実装する必要がありますか? 一般的なタスクのように見えますが、私は春と春のセキュリティにかなり慣れていません。

4

3 に答える 3

2

私はリスナーを、行動を観察するが、行動に影響を与えないものと考えています。ユーザーのセッションを閉じると述べているため、これは間違いなくユーザーに影響を与えています。したがって、リスナーではなくインターセプター/フィルターについて話していると思います。

Spring は、このようなものに適したインターセプター フレームワークを提供します。

ただし、セッションについて話しているので、これは春のセキュリティの領域です。ここでセッション管理を処理する別の方法があるようです:春のセキュリティセッションを無効にすることは可能ですか?

于 2012-12-01T13:13:50.590 に答える
2

リチウムが言ったように、フィルターは特定のタスクを処理するのに適していると思われます。Spring Security は独自のフィルター チェーンを使用し(リンクは 3.1.x ドキュメントへのリンク)、独自のフィルターを追加できます。チェーン内のフィルターの位置に注意してください注文に関する注意事項を次に示します。

要件に応じて、このようなフィルターは、たとえば、ユーザーを要求されたページ以外の別のページにリダイレクトし、フィルター チェーンの実行を停止することができます。ここでも、フィルター チェーンでの配置が重要です。

于 2012-12-01T13:26:23.733 に答える
0

インターセプターを試す必要があると思います。もう少し詳細:

  • HandlerInterceptorクラスを作成
public class RequestInitializeInterceptor implements HandlerInterceptor {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //Code to perform database checks
  }
}
  • servlet-context.xml (サーブレットの ApplicationContext) ファイルでインターセプターを定義する
<mvc:interceptors>
    <mvc:interceptor>   
      <!-- Update path as per you requirement --!> 
      <mvc:mapping path="/**"/>  
         <bean class="com.abc.web.support.RequestInitializeInterceptor" />
    </mvc:interceptor>
</mvc:interceptors>
于 2012-12-03T21:25:16.447 に答える