Запись команд неожиданно не авторизована - проверка [CSRF] не удалась из-за запроса application / json - PullRequest
0 голосов
/ 07 мая 2019

Я действительно сбит с толку, так как больше не могу писать в свою базу данных (используя игру 2.6 с реактивным монгом 0.16.5) - столкнулся с 403 forbidden.Недавно я обновил реактивную программу MONGO, но сразу после этого (во время тестирования записи) проблем не возникло, поэтому чувствую, что это вызвано в другом месте.Предупреждение указывает на проблему csrf:

[warn] p.filters.CSRF - [CSRF] Проверка завершилась неудачно, так как запрос application / json

application.conf (как задокументировано здесь )

csrf {
    play.filters.enabled += "play.filters.csrf.CSRFFilter"
  }

Мой фильтр не изменился по сравнению с сеяной версией, которую я использовал (когда это работало):

@Singleton
class ExampleFilter @Inject()(implicit ec: ExecutionContext) extends EssentialFilter {
  override def apply(next: EssentialAction) = EssentialAction { request =>
    next(request).map { result =>
      result.withHeaders("X-ExampleFilter" -> "foo")
    }
  }
}

Действие, которое вызывается (опять же - не было изменено)

def updateById(collName: String, id: BSONObjectID) = Action.async(parse.json) { implicit request: Request[JsValue] =>

  val oDocJso = request.body.asOpt[JsObject]
  val oQueryJso = Some(Json.obj("_id" -> id))

  val oCommandValueAndIsTrueValueTup = request.getQueryString("exists").map(x => (x, "y")) // $exists option
  val qJso = addToSelector(writeFieldsExistQuery)(oQueryJso, oDocJso)(commandIsDefault = true, oCommandValueAndIsTrueValueTup)

  oDocJso.map(docJso => mongoRepo.updateOne(collName: String)(qJso, docJso)().map(result => rs.writeResultStatus(result))).getOrElse(Future(Ok("no object to write")))

}

Я использую собственный API-интерфейс для выполнения вызовов веб-службы (снова работает раньше).Я не хочу отключать csrf.Похоже, это должно быть что-то простое, но я не могу найти ничего, что помогло.Я так потрошен прямо сейчас.

...