Spring安全自定义登录页面

时间:2012-05-13 11:35:09

标签: spring spring-security login-page

有人可以帮我解决一下如何在自定义登录jsp文件中添加更多字段?默认值为“j_username”和“j_password”。如果我想添加更多字段,并希望在扩展CustomAuthenticationProvider的{​​{1}}类中获取该字段,该怎么办?如果有任何资源或链接,请告诉我。

1 个答案:

答案 0 :(得分:7)

引用official FAQ

  

1.1。我需要登录的信息不仅仅是用户名。如何添加对额外登录字段(例如公司名称)的支持?

     

这个问题在Spring Security论坛中反复出现,因此您可以通过搜索档案(或通过谷歌)找到更多信息。

     

提交的登录信息由UsernamePasswordAuthenticationFilter的实例处理。您需要自定义此类以处理额外的数据字段。一种选择是使用您自己的自定义身份验证令牌类(而不是标准UsernamePasswordAuthenticationToken),另一种选择只是将额外字段与用户名连接起来(例如,使用“:”作为分隔符)并在UsernamePasswordAuthenticationToken的用户名属性中传递它们。

     

您还需要自定义实际的身份验证过程。例如,如果您使用自定义身份验证令牌类,则必须编写AuthenticationProvider来处理它(或扩展标准DaoAuthenticationProvider)。如果您已连接这些字段,则可以实现自己的UserDetailsService,将其拆分并加载相应的用户数据以进行身份​​验证。