Spring安全性:如何让用户打开任何页面的侦听器?

Spring安全性:如何让用户打开任何页面的侦听器?,spring,spring-security,Spring,Spring Security,当用户试图加载某个页面时,我需要随时处理该用户的请求。在这个侦听器中,我需要进行一些特殊检查,并最终关闭或不关闭用户的会话。我应该如何实现这一点?看起来是一项普通的任务,但我对spring和spring安全性还很陌生 我认为听众是观察行为但不影响行为的人。由于您提到关闭用户会话,这肯定会影响用户。因此,我认为您谈论的是拦截器/过滤器,而不是侦听器 Spring为类似的东西提供了一个很好的拦截器框架 但是,由于您正在谈论会话,因此这是spring安全性的领域。这里似乎有另一种处理会话管理的方法:我

当用户试图加载某个页面时,我需要随时处理该用户的请求。在这个侦听器中,我需要进行一些特殊检查,并最终关闭或不关闭用户的会话。我应该如何实现这一点?看起来是一项普通的任务,但我对spring和spring安全性还很陌生

我认为听众是观察行为但不影响行为的人。由于您提到关闭用户会话,这肯定会影响用户。因此,我认为您谈论的是拦截器/过滤器,而不是侦听器

Spring为类似的东西提供了一个很好的拦截器框架


但是,由于您正在谈论会话,因此这是spring安全性的领域。这里似乎有另一种处理会话管理的方法:

我认为监听器是观察行为但不影响行为的东西。由于您提到关闭用户会话,这肯定会影响用户。因此,我认为您谈论的是拦截器/过滤器,而不是侦听器

Spring为类似的东西提供了一个很好的拦截器框架


但是,由于您正在谈论会话,因此这是spring安全性的领域。这里似乎还有另一种处理会话管理的方法:

正如Limition所说,应该有一个过滤器来处理给定的任务。Spring Security使用自己的(指向3.1.x文档的链接点),您可以在其中添加自己的过滤器-请注意过滤器在链中的位置,以下是一些订购说明


根据您的要求,例如,这样的过滤器可以将用户重定向到另一个页面,而不是执行过滤器链的请求的一站式页面。同样,在过滤器链中定位非常重要。

正如Lili所说,过滤器应该适合处理给定任务。Spring Security使用自己的(指向3.1.x文档的链接点),您可以在其中添加自己的过滤器-请注意过滤器在链中的位置,以下是一些订购说明


根据您的要求,例如,这样的过滤器可以将用户重定向到另一个页面,而不是请求的一站式执行过滤器链-同样:在过滤器链中定位是至关重要的。

我认为您应该尝试拦截器。再详细一点:

  • 创建
    HandlerInterceptor
  • 在servlet-context.xml(servlet的ApplicationContext)文件中定义拦截器


我想你应该试试拦截器。再详细一点:

  • 创建
    HandlerInterceptor
  • 在servlet-context.xml(servlet的ApplicationContext)文件中定义拦截器


什么样的支票?也许一个servlet过滤器就足够了?检查数据库。换句话说,我需要实现一些我的代码,当用户试图执行某些操作时,这些代码应该被执行。现在,我正尝试使用自定义类ExtendesWebContentInterceptor和在预处理方法中插入检查来实现这一点。但它不起作用。什么样的支票?也许一个servlet过滤器就足够了?检查数据库。换句话说,我需要实现一些我的代码,当用户试图执行某些操作时,这些代码应该被执行。现在,我正尝试使用自定义类ExtendesWebContentInterceptor和在预处理方法中插入检查来实现这一点。但它不起作用。
public class RequestInitializeInterceptor implements HandlerInterceptor {

  @Override
  public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        //Code to perform database checks
  }
}
<mvc:interceptors>
    <mvc:interceptor>   
      <!-- Update path as per you requirement --!> 
      <mvc:mapping path="/**"/>  
         <bean class="com.abc.web.support.RequestInitializeInterceptor" />
    </mvc:interceptor>
</mvc:interceptors>