Я хотел бы перечислить все текущие сеансы в контроллере администратора в Grails. Какой самый простой способ получить ссылку, например. Сбор сессий с контроллера?
Как в Grails получить ссылку на все текущие сеансы?
Ответы (2)
Это функция (отключена по умолчанию, но ее легко включить, установив grails.plugins.appinfo.useContextListener = true
в Config.groovy) подключаемого модуля App-Info: http://grails.org/plugin/app-info
person
Burt Beckwith
schedule
10.09.2010
@Burt Отличный плагин, о котором я никогда не знал ... обязательно расследую сегодня
- person Aaron Saunders; 10.09.2010
Выглядит очень многообещающе! Однако я получаю следующую ошибку при попытке запуска после установки: Ошибка: следующие плагины не удалось загрузить из-за отсутствия зависимостей: [appInfo] - Плагин: appInfo, зависимости: [dynamicController, googleVisualization, jquery] Я нашел несколько обсуждений на но никто не решил мою проблему. Все указанные плагины установлены и перечислены в application.xml, я удалил .ivy2 и переустановил, но все равно получаю ошибку... используя STS 2.3.3.M2 с grails 1.3.4. Можете ли вы указать мне какое-то направление?
- person Jörg Brenninkmeyer; 15.09.2010
Вы уже используете один из плагинов dynamicController, googleVisualization или jquery?
- person Burt Beckwith; 15.09.2010
Я установил их все для вашего плагина, однако в своем проекте я использую только плагин jquery.
- person Jörg Brenninkmeyer; 17.09.2010
Я переустановил все на Linux и теперь все работает. Плагин прикольный, но в Info/Session нет сессий, даже когда я захожу под другим пользователем в другом браузере. Что может быть причиной этого? Я использую службу безопасности Широ, если это имеет значение. Я НЕ установил grails.plugins.appinfo.useContextListener = false.
- person Jörg Brenninkmeyer; 11.11.2010
По умолчанию это false - вам нужно установить его в true.
- person Burt Beckwith; 11.11.2010
Отлично, теперь работает - я думал, что где-то читал об обратном... ;-) Спасибо за отличный плагин! Теперь я также могу использовать ваш grails.plugins.appinfo.ScopesInfoService, чтобы показать количество пользователей в сети через scopesInfoService.getSessionsInfo().size()
- person Jörg Brenninkmeyer; 25.11.2010
есть «отличный» способ сделать это без SessionListener, есть генерируемые события, которым могут быть назначены замыкания. Вы можете зафиксировать успешные сеансы на карте/списке и удалить сеансы после выхода из системы или
Регистрация замыканий обратного вызова
rails.plugins.springsecurity.useSecurityEventListener = true
grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent = { e, appCtx ->
// handle InteractiveAuthenticationSuccessEvent
}
grails.plugins.springsecurity.onAbstractAuthenticationFailureEvent = { e, appCtx ->
// handle AbstractAuthenticationFailureEvent
}
grails.plugins.springsecurity.onAuthenticationSuccessEvent = { e, appCtx ->
// handle AuthenticationSuccessEvent
}
grails.plugins.springsecurity.onAuthenticationSwitchUserEvent = { e, appCtx ->
// handle AuthenticationSwitchUserEvent
}
grails.plugins.springsecurity.onAuthorizationEvent = { e, appCtx ->
// handle AuthorizationEvent
}
person
Aaron Saunders
schedule
10.09.2010