当ntlmprocessingfilter失败(输入错误的用户名和密码)时,会转发到表单登录页面。但我无法从protected UserDetails retrieveUser(String username
任何想法我错过了什么?
我发现它在firefox中有效。但不能在Internet Explorer中工作
答案 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}">