如何访问j_spring_security_check中的其他参数并在AuthenticationProvider中访问

时间:2016-05-05 07:27:35

标签: spring spring-mvc spring-security

如何在CustomAuthenticationProvider中从前端获取对其他帖子参数的访问权限,从而扩展DaoAuthenticationProvider。

在使用Spring身份验证登录时,需要在我的CustomAuthenticationProvider中基于附加检查参数执行逻辑实现。

先谢谢!!

1 个答案:

答案 0 :(得分:0)

我们需要更多细节才能给出完整的答案。但这是一般的想法:

  • 首先,请记住AuthenticationProvider是(并且应该保留)不知道网络上下文。它们用于验证Authentication对象,它们可以(并且应该)在Web应用程序中运行,如在EE或桌面应用程序中。
  • 您应该创建自己的身份验证对象(在这种情况下是UsernamePasswordAuthenticationToken的子类),它将保存您的新/自定义属性,让我们使用新属性CustomToken将其称为customProp 1}}(你应该选择更有意义的名字:))
  • 您应该将UsernamePasswordAuthenticationFilter子类化,以便能够访问请求参数并在Authentication对象中放置您需要的内容:setDetails中的方法UsernamePasswordAuthenticationFilter正是为了满足需求,因此只是覆盖子类中的方法。别忘了配置在spring security config中使用的新子类而不是UsernamePasswordAuthenticationFilter
  • 在CustomProvider中,您现在可以将身份验证对象强制转换为CustomToken,并从该身份验证对象中检索添加的属性(customProp)。