Для проверки подписи в некотором вызове API я должен вычислить Подпись от тела запроса и сравнить ее с заголовком. Так как я не мог найти какие-либо директивы Предопределенные могут сделать эту работу, я вышел с обычаем один, как это:Директива использует как заголовок запроса, так и тело в akka-http
def verifySignature(channelSecret: String): Directive0 =
headerValueByName("X-Line-Signature").flatMap { signature =>
entity(as[String]).flatMap { bodyString =>
if (computeSignature(channelSecret, bodyString) == signature) pass
else reject
}
}
Это работает, как ожидалось.
Так что мне просто интересно, может ли это быть лучше. Есть ли директива может сделать эту работу лучше? И правильно ли использовать pass?