Ich bin neu zu sprühen und ich versuche, eine benutzerdefinierte Richtlinie zu schreiben. Ich möchte, dass die Anweisung die Anfrage ablehnt, wenn der Kopfzeilenwert nicht gültig ist, andernfalls lassen Sie die Anfrage in Ruhe.Benutzerdefinierte spray.io-Anweisung zur Validierung der Anfrage Header-Wert
Ich habe versucht, diese Seite zu absorbieren: http://spray.io/documentation/1.1.2/spray-routing/key-concepts/directives/
Insbesondere der Teil über die Responder-Kette. Ich versuche etwas auf der Ebene der Bar-Richtlinie in der Abbildung zu schaffen. Ich verstehe nicht, wie man den Kontext unverändert an die innere Route weitergibt.
Mein else Block unten ist nicht korrekt, aber drückt aus, was ich versuche zu tun. Ich kann einfach nicht herausfinden, wie ich es umsetzen soll.
Jede Hilfe würde sehr geschätzt werden.
trait ApiKeyDirective {
import spray.routing.directives.HeaderDirectives._
import spray.routing.directives.BasicDirectives._
def validateApiKey(): Directive1 = {
headerValueByName("api-key") {key =>
val valid = key == "123"
if (!valid) reject() else pass
}
}
}
object ApiKeyDirective extends ApiKeyDirective
Dank! Ich beabsichtige, mit einer AuthorizationFailedRejection abzulehnen, aber es aus Gründen der Prägnanz auszulassen. –