【问题标题】:Best way to handle session management in spring mvc filters or interceptors在 spring mvc 过滤器或拦截器中处理会话管理的最佳方法
【发布时间】:2014-10-09 06:55:07
【问题描述】:

要求:

在每个动作意味着每个控制器方法(即处理程序)之前,我必须检查会话是否有效。 如果会话有效,请检查会话中用户登录详细信息的可用性,否则应在会话中设置这些详细信息。 如果会话无效,则应将其重定向到登录页面。

谁能告诉我哪个适合我的要求。

【问题讨论】:

    标签: java jsp session spring-mvc


    【解决方案1】:

    您还可以在调度程序 servlet 中配置自定义 interceptor

    <mvc:interceptors>
        <bean class="com.CusInterceptor"/>
    </mvc:interceptors>
    

    并扩展类HandlerInterceptorAdapter,重写preHandle()方法,拦截所有请求。

    public class CusInterceptorextends HandlerInterceptorAdapter {
        public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    
        // verify user session here and process it for further operations  
        }
    

    【讨论】:

      【解决方案2】:

      为此使用Spring Security。它将在会话中存储一个安全上下文对象,保存所有凭据等。例如,security filter chain 将确保此对象 sill 有效,或者将用户重定向到登录页面。

      【讨论】:

        【解决方案3】:

        同意@Stefan 的观点。使用 Spring Security(我们在我们的 mvc 应用程序中使用相同的会话身份验证/验证)。 但请记住,Ajax 调用需要稍作调整才能让它们重定向到登录页面。否则你只会得到一个错误页面响应,你可能会或可能不会在 JS 解析/处理(客户)级别

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-06-11
          • 2021-07-17
          • 1970-01-01
          • 1970-01-01
          • 2014-06-16
          • 2014-11-26
          • 1970-01-01
          相关资源
          最近更新 更多