spring security form-login

时间:2010-09-17 09:59:10

标签: java spring spring-security ntlm

当ntlmprocessingfilter失败(输入错误的用户名和密码)时,会转发到表单登录页面。但我无法从protected UserDetails retrieveUser(String username

中的j_username获取价值

任何想法我错过了什么?

我发现它在firefox中有效。但不能在Internet Explorer中工作

2 个答案:

答案 0 :(得分:1)

默认情况下为Firefox does not use NTLM authentication,而Internet Explorer则为。

因此,除非您故意将Firefox安装配置为使用NTLM,否则Firefox将使用其他类型的身份验证,如Basic或Digest。

Basic和Digest都使用简单的用户名进行身份验证,因此有意义的是,在Firefox发送用户名后,它将存储在j_username(或Spring Security存储的任何地方)。

相比之下,NTLM使用用户名和NT域进行身份验证。即,而不是“用户名”,它可能是“DOMAIN \用户名”。没有域名,NTML用户名是没有意义的,因此NTLM用户名实际上并不等同于基本或摘要用户名。也许这就是Spring Security没有给你用户名的原因 - NTLM没有像其他登录方法那样简单的'用​​户名'。

答案 1 :(得分:0)

您是说在重新提交时无法获得用户名吗?

您是否正在使用弹簧安全变量$ {SPRING_SECURITY_LAST_USERNAME}

<input type="text" name="j_username" value="${SPRING_SECURITY_LAST_USERNAME}">