Spring Security Form-Логин - PullRequest
       10

Spring Security Form-Логин

2 голосов
/ 17 сентября 2010

при сбое ntlmprocessingfilter (введено неверное имя пользователя и пароль), оно перенаправляется на страницу входа в форму. но я не могу получить значение из j_username в protected UserDetails retrieveUser(String username

есть идеи, что я пропускаю?

Я обнаружил, что это работает в Firefox. но не работает в Internet Explorer

Ответы [ 2 ]

1 голос
/ 23 сентября 2010

Firefox не использует проверку подлинности NTLM по умолчанию, в то время как Internet Explorer использует.

Так что, если вы специально не настроили установку Firefox для использования NTLM, тогда Firefox будет использовать некоторые другиетип аутентификации, такой как Basic или Digest.

Как Basic, так и Digest используют простое имя пользователя для аутентификации, поэтому имеет смысл, что после того, как Firefox отправит имя пользователя, оно будет сохранено в j_username (или везде, где Spring Securityсохраните его).

В отличие от этого, NTLM использует как имя пользователя, так и домен NT для аутентификации.то есть вместо «username» это может быть «DOMAIN \ username».Имя пользователя NTML не имеет смысла без домена, поэтому имя пользователя NTLM на самом деле не эквивалентно имени пользователя Basic или Digest.Возможно, именно поэтому Spring Security не дает вам имя пользователя - у NTLM нет простого «имени пользователя», как у других методов входа.

0 голосов
/ 22 сентября 2010

Вы говорите, что не можете получить имя пользователя при повторной отправке?

Используете ли вы переменную безопасности пружины $ {SPRING_SECURITY_LAST_USERNAME}, как в

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