Как сохранить и прочитать данные из сессии? - PullRequest
0 голосов
/ 03 марта 2020

Я использую play framework 2.8.x, и я пытаюсь сохранить данные в сеансе и в следующем запросе прочитать эти данные, но мои данные не сохранены в объекте сеанса. Мой класс контроллера выглядит следующим образом:

public class UserController extends Controller {
    public Result verifyToken(Http.Request request) {
        final Http.Session session = request.session();
        session.adding("key1", "my_value");
        return ok(userInfo).withCookies(tokenCookie).withSession(session);
    }
}

, затем я реорганизую свой код следующим образом:

public class UserController extends Controller {
    public Result verifyToken(Http.Request request) {
        return ok(userInfo).addingToSession(request, "sessionData", "test");
    }
}

, но у меня тот же результат. Не работает! и затем я пытаюсь прочитать мои данные из сеанса в Filter. Мой фильтр выглядит следующим образом:

public class PageAccessFilter extends Filter {
    @Inject
    public PageAccessFilter(Materializer mat) {
        super(mat);
    }

    @Override
    public CompletionStage<Result> apply(Function<Http.RequestHeader, CompletionStage<Result>> next, Http.RequestHeader rh) {
        final Http.Session userSession = rh.session();
            final String userToken = userSession.get("key1").orElse(null); // in this value was null.
        return next(rh);
    }
}

enter image description here Как сохранить и прочитать данные из сеанса? Что я делаю не так?

1 Ответ

1 голос
/ 04 марта 2020

Используйте addingToSession в ответе ok ().

public class UserController extends Controller {
    public Result verifyToken(Http.Request request) {
        return ok(userInfo).addingToSession(request, "key1", "my_value");
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...