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

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

  
  
  
  
  
  
 

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

我看到两个不太复杂的解决方案:

>在我的/ login操作中,我有一种方法(目前尚未知道)检索原始请求并根据使用更简单视图的一组URL进行检查,然后选择匹配的视图. =>如何检索此原始请求?
>我创建另一个登录操作/表单,比如说/ login / minimal,它也会POST到spring security URL / j_spring_security_check,但我需要实现请求存储/检索机制,以便在成功登录后执行原始请求. =>我看到这与SecurityContextPersistenceFilter有关,但我不知道如何实现它或调用它.

最佳答案 如果我正确理解您的问题,您可能希望根据原始请求字符串更改登录页面.查看
this forum post以访问会话中的原始请求URL.这是旧版本,但您应该可以使用它来开始.

编辑我没有机会验证这一点,但看起来密钥在Acegi安全性和Spring Security 3之间发生了变化.看起来你可以使用WebAttributes类中的常量从会话中访问它.有效

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