2017-11-03 2 views
0

Ich bin versucht, grundlegende auth zu einer Route hinzufügen mit Akka http 10.0.10, indem Sie die folgenden Schritte aus:Akka http basic authentication type mismatch

def myUserPassAuthenticator(credentials: Credentials): Option[String] = 
    credentials match { 
    case p @ Credentials.Provided(id) if p.verify("p4ssw0rd") => Some(id) 
    case _ => None 
    } 

val routes: Route = 
    pathPrefix("foo") { 
    authenticateBasic(realm = "secure site", myUserPassAuthenticator) { user => 
     path("bar") { 
     pathEndOrSingleSlash { 
      complete("bla") 
     } 
     } 
    } 
    } 

Dieses aber IDEA kompiliert wird mir die folgende Fehler zeigt:

Type mismatch, expected L => server.Route, actual String => server.Route

Zusätzlich laden localhost: 9000/foo/bar liefert ein 404. mir jemand kann helfen, zu verstehen, warum dies und wie man diese Richtlinien richtig strukturieren?

+0

Haben Sie den Import akka.http.scaladsl.server.Directives._ importiert? Es scheint in Ordnung zu sein – EmiCareOfCell44

+0

ja, ich habe akka.http.scaladsl.server.Directives._ importiert – novon

Antwort

1

Das obige snipped ist korrekt, soweit es akka http betrifft, und funktioniert jetzt gut. Mein Problem kam von einer handgerollten CORS-Direktive, die höher in der Direktivenhierarchie lag, die nicht korrekt implementiert wurde.

Seltsamerweise beschweren sich IDEA immer noch über die Art Mismatch.