java - Spring Security的几种不同的登录表单

标签 java configuration spring-mvc spring-security

我正在使用带有自定义身份验证的 spring-mvc 的 spring-security web 身份验证,到目前为止一切都很好:

我的问题是:/login 加载一个具有全功能页面的 View ,但现在我必须为 iframe/popup 格式提供身份验证(例如,对于一个经过身份验证的小书签),所以加载一个不同的查看(或使用不同的参数)。

我看到两个并不过分复杂的解决方案:

  1. 在我的 /login 操作中,我有一种方法(到目前为止我还不知道)来检索原始请求并根据一组使用更简单 View 的 URL 检查它,然后选择匹配的 View 。 => 我如何检索这个原始请求?

  2. 我创建了另一个登录操作/表单,比如 /login/minimal,它也 POST 到 spring security URL /j_spring_security_check,但我需要实现请求存储/检索机制,以便在成功登录后执行原始请求。 => 我看到这与 SecurityContextPersistenceFilter 有关,但我不知道如何实现或调用它。

最佳答案

如果我对您的问题的理解正确,您希望根据原始请求字符串更改登录页面。查看this forum post用于从 session 访问原始请求 url。它适用于旧版本,但您应该能够使用它开始。

编辑 我还没有机会验证这一点,但看起来 key 在 Acegi 安全性和 Spring Security 3 之间发生了变化。看起来您可以使用中的常量从 session 访问它WebAttributes类(class)。有效

//request is a HttpServletRequest object
SavedRequest savedRequest = (SavedRequest)request.getSession().getAttribute(WebAttributes.SAVED_REQUEST);
String url = savedRequest.getRequestURL();

关于java - Spring Security的几种不同的登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4672759/

相关文章:

java - android后台服务中的位置监听器

java - 在java中将随机数传递给二维数组

zend-framework - 如何在 session 期间从 Zend application.ini 文件中检索参数?

c# - 以编程方式从 IIS 获取站点状态,返回 COM 错误

java - 如何在java中使用mongodb嵌入模式

java - 如何访问 HandlerInterceptorAdapter 中的 RequestBody?

java - 如何以速度静默表示法转义 "["

java - JFrame 中的窗口动画

java - 将字符串分成三分之一

c# - C# 3.5 中的应用程序配置