扩展Spring安全登录过程

时间:2011-06-30 14:30:18

标签: spring spring-security

目前我在Spring Security 3中有一个自定义表单登录页面,它将表单数据发送到正确的身份验证URL。

但是现在我需要在登录后但在访问网站的其他部分之前扩展流程以支持安全问题。

我在阅读文档时有一些选择,但我对选择正确的选项感到困惑。

选项1:保留当前登录系统并设置一个只允许用户访问安全问题页面的特殊角色。如果他们成功通过安全问题流程,请将他们正确的角色添加到安全上下文中。

选项2:子类AbstractAuthenticationProcessingFilter并将安全问题作为登录过程的一部分。这似乎更像春天,但我坚持如何通过打破身份验证框架的其余部分来支持问题的多个页面。

2 个答案:

答案 0 :(得分:0)

这种方法怎么样:

  1. 当用户提交用户名/密码时,请将其保存到会话中。
  2. 将她重定向到您的问题。
  3. 当她完成回答您的问题后,看看您是否想让她登录。 3.1。如果是,请POST她保存的凭据,以便Spring Security过滤器链可以捕获和处理它们。 3.2。如果不是,请将她带回登录页面。 (或者在这种情况下你想做什么。)

答案 1 :(得分:0)

我最终使用了选项1. @ craftsman的答案不合适,因为问题是每个用户特定的。它实际上运作得很好。