【发布时间】:2014-10-09 06:55:07
【问题描述】:
要求:
在每个动作意味着每个控制器方法(即处理程序)之前,我必须检查会话是否有效。 如果会话有效,请检查会话中用户登录详细信息的可用性,否则应在会话中设置这些详细信息。 如果会话无效,则应将其重定向到登录页面。
谁能告诉我哪个适合我的要求。
【问题讨论】:
标签: java jsp session spring-mvc
要求:
在每个动作意味着每个控制器方法(即处理程序)之前,我必须检查会话是否有效。 如果会话有效,请检查会话中用户登录详细信息的可用性,否则应在会话中设置这些详细信息。 如果会话无效,则应将其重定向到登录页面。
谁能告诉我哪个适合我的要求。
【问题讨论】:
标签: java jsp session spring-mvc
您还可以在调度程序 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
}
【讨论】:
为此使用Spring Security。它将在会话中存储一个安全上下文对象,保存所有凭据等。例如,security filter chain 将确保此对象 sill 有效,或者将用户重定向到登录页面。
【讨论】:
同意@Stefan 的观点。使用 Spring Security(我们在我们的 mvc 应用程序中使用相同的会话身份验证/验证)。 但请记住,Ajax 调用需要稍作调整才能让它们重定向到登录页面。否则你只会得到一个错误页面响应,你可能会或可能不会在 JS 解析/处理(客户)级别
【讨论】: