1
我有一个与Spring 3.1身份验证连接的应用程序。我有一些页面使AJAX请求显示对话框中的一些信息。现在,如果用户的会话超时,Spring将重定向到登录页面。我不想要一个基于AJAX的登录页面。我希望用户完全导航到登录页面,取消当前的操作。用户登录后,将用户导航回到他所在的最后一页(从发出AJAX请求的位置)。Spring 3.1:处理会话超时
重定向的东西工作正常,如果请求是从一个页面。
我有一个与Spring 3.1身份验证连接的应用程序。我有一些页面使AJAX请求显示对话框中的一些信息。现在,如果用户的会话超时,Spring将重定向到登录页面。我不想要一个基于AJAX的登录页面。我希望用户完全导航到登录页面,取消当前的操作。用户登录后,将用户导航回到他所在的最后一页(从发出AJAX请求的位置)。Spring 3.1:处理会话超时
重定向的东西工作正常,如果请求是从一个页面。
执行重定向到登录页面的类是LoginUrlAuthenticationEntryPoint
。我会编写一个自定义的AuthenticationEntryPoint
实现来检测Ajax请求(例如,通过查看Accept
标头),并发送错误代码而不是执行重定向。
尽管如此,您仍然必须在客户端检测到这一点。 Spring Security在那里没有多少功能,但是你应该能够从Javascript重新加载当前页面,这将强制登录,然后重定向到原始页面(默认的Spring安全行为)。
你能给我一个示例代码如何从ajax调用重定向吗? – grep