Итак, я работаю над webapp в Scala с Play 2.3, используя IntelliJ 14.1.1.Scala Play значение сеанса не сохраняется
Проблема заключается в сохранении значений в сеансе. Сейчас у меня это:
def authCredentials = Action { implicit request =>
loginForm.bindFromRequest.fold(
formWithErrors => BadRequest(views.html.login(formWithErrors.withError("badlogin","Username or password is incorrect."))),
goodForm => Redirect(routes.AccountController.display).withSession(request.session + ("username" -> goodForm._1))
)
}
, а затем в моем AccountController:
def display = Action { implicit request =>
request.session.get("username").map { username =>
Ok(views.html.account(User.getUser(username))).withSession(request.session + ("username" -> username))
}.getOrElse(Redirect(routes.LoginController.login)).withNewSession
}
Теперь в приведенной выше функции, которая находит имя пользователя и отображения страницы учетной записи только один раз. Проблема в том, что когда я хочу перейти к странице со страницы учетной записи, например, на странице смены пароля или даже обновить страницу учетной записи, она перенаправит обратно на логин с новым сеансом.
Что я делаю неправильно, и есть лучший способ проверить, прошел ли сеанс для доступа к странице вместо повторного кода для каждой функции отображения.