![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| bingo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 2.12.2006 Где: Minsk, Belarus Репутация: нет Всего: нет |
Ситуация такова, что после определенного количества невалидных попыток войти в систему, пользователь лочится на определенное время.
Но не знаю теперь как реализовать так, что если период блокировки истекает, то пользователь может войти в систему. =) Делаю так: проверяю объект org.springframework.context.ApplicationEvent на "соответствие" классу org.acegisecurity.event.authentication.AuthenticationFailureLockedEvent и вношу соответствующие изменения в БД. Но вот как быть чтобы пользователя тут же и аутентифицировать?.. (т.е. сейчас получается, что пользователю приходится повторить попытку входа: 1-ый раз - аккаунт разблокируется, 2-ой раз - успешный вход =)). Первое что попалось в глаза - это метод setAuthenticated(boolean isAuthenticated) из org.acegisecurity.Authentication, но получил тут же exception:
И где этот конструктор... =) Подскажите, что можно сделать? |
|||
|
||||
| Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
bingo, я ловлю BadCredentialsException и после n неудачных попыток делаю его enable = false в бд (Помнишь, где при настройке applicationContext.xml указывется SELECT username, password, enabled FROM users WHERE username = ?). Для разлочки нужно запросить ключ. Количество неудачных попыток храню в сессии....
Добавлено через 1 минуту и 44 секунды
Храни в сессии, как сессия умрёт, так и пускай заного... -------------------- Thank you opensource. |
|||
|
||||
| bingo |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 2.12.2006 Где: Minsk, Belarus Репутация: нет Всего: нет |
Что-то не совсем понял про это =):
Вообщем логика в моем понимании и как я предполагаю реализовать 'enabled' - это для пользователей, чтоб могли друг друга отключать вручную, а 'nonLocked' - для автоматической блокировки/разблокировки пользователей при входе в систему. Сессия - вариант, бесспорно, но мне не нравится, т.к. если "клиент" создает новую сессию каждый раз, то получается аккаунт никогда не заблокируется. И кроме того, я хочу блокировку делать, ну минут 10 или 20, а для жизни сессии это как-то маловато. |
|||
|
||||
| Zamuta |
|
||||||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: 4 Всего: 6 |
Расскажи про специфику приложения. Не понятно зачем пользователи будут отключать друг друга.
Как узнать, что пользователь вводит не тот пароль? Ловить BadCredentialsException . А как иначе? Вот по этому событию и делай что хочешь. Хоть поля для ввода логина и пароля делай неактивными.
Вот именно, что не заблокируется. Будет каждый раз браузер по новой открывать и вводить пароль. Но так он всё равно простым перебором не сможет сломать, глупо это. Почему 10 или 20 минут это мало. 10 или 20 минут с последней активности пользователя. Т.е. если в сессии нет активности 10 или 20 минут то тогда она умирает....
Это:
-------------------- Thank you opensource. |
||||||||||||
|
|||||||||||||
| bingo |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 44 Регистрация: 2.12.2006 Где: Minsk, Belarus Репутация: нет Всего: нет |
Это я просто так выразился =), администраторы могут "выключать" пользователей.
Это я понял =), вопрос в другом.
Это и смущает, что точно сказать нельзя когда аккаунт разлочится. А 10-20 минут мало для сессии, т.к. в принципе пользователи будут что-то запускать, заниматься своими делами, а потом будут возвращаться к работе с моим приложением через полчаса, а может и позже.
Я просто по-другому делаю, через свою имплементацию сервиса и соотвующего DAO. ps: вообщем не знаю =), хочу сделать как задумал изначально, т.е. главный вопрос как аутентифицировать пользователя вручную в моей имплементации org.springframework.context.ApplicationListener и отлавливая соответсвующие acegi-even'ы. |
||||||||
|
|||||||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |