Как получить доступ к пользовательской сессии в обработчике Deadbolt2
Я пытаюсь использовать Deadbolt2 в приложении play2, и я застрял с реализацией getRolesHolder() в моем обработчике Deadbolt.
В примере приложения есть этот пример:
public class MyDeadboltHandler extends AbstractDeadboltHandler
{
public RoleHolder getRoleHolder()
{
// in a real application, the user name would probably be
// in the session following a login process
return User.findByUserName("steve");
}
}
Моя проблема: как я могу получить сессию в getRoleHolder()?
Я пытался вызвать Context.current(). Session(); но у меня есть следующая ошибка:
Здесь нет HTTP-контекста.
Есть идеи?
Спасибо
2 ответа
Решение
Кажущаяся переменная доступность контекста начинает немного раздражать. Я изменю подпись getRoleHolder(), чтобы взять контекст. Зарегистрируйтесь в github примерно через 10 минут и обновите версию Deadbolt для Build.scala до версии 1.1-SNAPSHOT.
С этим аксессором
Session session = play.mvc.Http.Context .current().session()
Дополнительные образцы Play1 to Play2 на https://github.com/playframework/Play20/wiki/Play-2.0-for-Play-1.x-developers