Как в Grails получить ссылку на все текущие сеансы?

Я хотел бы перечислить все текущие сеансы в контроллере администратора в Grails. Какой самый простой способ получить ссылку, например. Сбор сессий с контроллера?


person Jörg Brenninkmeyer    schedule 10.09.2010    source источник


Ответы (2)


Это функция (отключена по умолчанию, но ее легко включить, установив grails.plugins.appinfo.useContextListener = true в Config.groovy) подключаемого модуля App-Info: http://grails.org/plugin/app-info

person Burt Beckwith    schedule 10.09.2010
comment
@Burt Отличный плагин, о котором я никогда не знал ... обязательно расследую сегодня - person Aaron Saunders; 10.09.2010
comment
Выглядит очень многообещающе! Однако я получаю следующую ошибку при попытке запуска после установки: Ошибка: следующие плагины не удалось загрузить из-за отсутствия зависимостей: [appInfo] - Плагин: appInfo, зависимости: [dynamicController, googleVisualization, jquery] Я нашел несколько обсуждений на но никто не решил мою проблему. Все указанные плагины установлены и перечислены в application.xml, я удалил .ivy2 и переустановил, но все равно получаю ошибку... используя STS 2.3.3.M2 с grails 1.3.4. Можете ли вы указать мне какое-то направление? - person Jörg Brenninkmeyer; 15.09.2010
comment
Вы уже используете один из плагинов dynamicController, googleVisualization или jquery? - person Burt Beckwith; 15.09.2010
comment
Я установил их все для вашего плагина, однако в своем проекте я использую только плагин jquery. - person Jörg Brenninkmeyer; 17.09.2010
comment
Я переустановил все на Linux и теперь все работает. Плагин прикольный, но в Info/Session нет сессий, даже когда я захожу под другим пользователем в другом браузере. Что может быть причиной этого? Я использую службу безопасности Широ, если это имеет значение. Я НЕ установил grails.plugins.appinfo.useContextListener = false. - person Jörg Brenninkmeyer; 11.11.2010
comment
По умолчанию это false - вам нужно установить его в true. - person Burt Beckwith; 11.11.2010
comment
Отлично, теперь работает - я думал, что где-то читал об обратном... ;-) Спасибо за отличный плагин! Теперь я также могу использовать ваш 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