Я написал собственный анализатор тела, похожий на описанный в документах , и тип защиты ActionRefiner, который либо преобразуется в мой UserRequest, либо возвращает ошибку:
val userRefiner = new ActionRefiner[Request, UserRequest] {
override protected def refine[A](request: Request[A]) = ???
override protected def executionContext = ???
}
def roleFilter(role: Role) = new ActionFilter[UserRequest] {
override protected def filter[A](request: UserRequest[A]) = ???
override protected def executionContext = ???
}
def UserAction(role: Role): ActionBuilder[UserRequest, AnyContent] = {
deps.cc.actionBuilder.andThen(userRefiner).andThen(roleFilter(role))
}
Использование:
UserAction(Role.User)(customBodyParser) { implicit request => ... }
Проблема, с которой я столкнулся, заключается в том, что анализатор тела выполняется перед ActionRefiner, поэтому я по сути обрабатываю запрос, прежде чем отклонить его.
Как правильно обработать этот запрос??Мне нужен какой-то ActionTransformer, который использует только заголовки HTTP, а не тело