Захват входа / выхода и попыток входа с помощью Grails и Acegi Plugin - PullRequest
0 голосов
/ 09 февраля 2010

Я частично реализовал решение, используя фильтр Grails и прослушиватель сеанса, что потребовало от меня изменения файла web.xml. Слушатель сеанса сообщает мне, когда сеанс закончился, и фильтр grails сообщает мне, когда какой-либо контроллер был вызван впервые с аутентифицированным пользователем.

Мне показалось, что оба требовались, потому что либо grails, либо плагин acegi автоматически создают новый сеанс, поэтому мне потребовался фильтр grails, чтобы определить, когда сеанс действительно имеет аутентифицированного пользователя.

Я говорю все это, чтобы сказать, есть ли более простой подход, который не требует фильтра и sessionListener. Просто хочу очистить код, чтобы, когда мне понадобится вернуться к нему позже, все равно будет иметь смысл

1 Ответ

2 голосов
/ 10 февраля 2010

События запускаются при входе в систему, так что это ваш лучший выбор для отслеживания входа в систему - создание сеанса часто происходит раньше, чем вход в систему, если пользователь некоторое время перемещается по сайту перед входом в систему. См. Эту страницу, на которой говорится о четных обработчиках: 1001 *http://grails.org/AcegiSecurity+Plugin+-+Acegi+Events

Выход из системы сложнее, поскольку пользователи могут явно щелкнуть ссылку выхода из системы или просто закрыть свой браузер. Если они закроют браузер, время их сеанса истечет, но это будет через 30 минут после последнего щелчка (если вы не изменили значение по умолчанию).

Если вы хотите установить ловушку для явного выхода из системы, зарегистрируйте LogoutHandler, как описано в http://grails.org/AcegiSecurity+Plugin+-+Customizing+with+SecurityConfig в разделе «Обработчики выхода из системы».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...