Как получить доступ к пользовательской сессии в обработчике 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

Другие вопросы по тегам