Акка HTTP отклонить с отсутствующим заголовком - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть следующий метод:

private def initiateAuth(req: LoginRequest, userAgent: String, deviceId: String) = {
    extractClientIP { clientIp =>
      extractRequestContext { implicit ctx =>
        if (clientIp.toOption.isEmpty) reject(Rejections.validationRejection("abc"))
        val xForwardedFor = clientIp.toOption.map(_.getHostAddress).get
        mapToResponse(userAuthenticator.auth(req.username, req.password, deviceId, xForwardedFor, userAgent))
      }
    }
}

Что действительно странно, так это Rejections.validationRejection("abc") работает, но когда я использую Rejections.missingHeader("abc"), я получаю ошибку:

enter image description here

Чем они отличаются?Я в замешательстве, потому что MissingHeaderRejection реализует отклонение, так почему несоответствие типов?

1 Ответ

0 голосов
/ 19 февраля 2019

В вашем операторе if, когда опция clientIp пуста, результат , если , игнорируется.Я бы лучше использовал сопоставление с образцом или , если - иначе выражение

...