1

我有一个与 Spring 3.1 身份验证连接的应用程序。我有一些页面发出 AJAX 请求以在对话框中显示一些信息。现在,如果用户的会话超时,Spring 会重定向到登录页面。我不想要基于 AJAX 的登录页面。我希望通过取消当前操作将用户完全导航到登录页面。用户登录后,将用户导航回他所在的最后一页(从那里发出 AJAX 请求)。

如果请求是从页面发出的,则重定向内容可以正常工作。

4

1 回答 1

1

执行重定向到登录页面的类是LoginUrlAuthenticationEntryPoint. 我会编写一个自定义AuthenticationEntryPoint实现来检测 Ajax 请求(例如,通过查看Accept标头),并发送错误代码而不是执行重定向。

不过,您仍然必须在客户端检测到这一点。Spring Security 无能为力,但您应该能够从 Javascript 重新加载当前页面,这将强制登录,然后重定向到原始页面(默认 Spring Security 行为)。

于 2012-11-21T15:28:17.127 回答