Ich versuche, ein gemeinsames Authentifizierungsmerkmal für eine Nicht-String-Version von Security.authenticated zu implementieren. Ich möchte eine Instanz einer Person zurückgeben, wenn die Authentifizierung erfolgreich ist, und nicht die Standardzeichenfolge (z. B. Benutzername). Code ist so etwas wie dies bisher:"type mishmatch" implementiert typisierte Security.authenticated
trait Secured {
def withPerson[Person](f: => Person => Request[AnyContent] => Result) = {
def findPerson(request:RequestHeader) : Option[Person] =
Person.findByRuid("me")
def noPerson(request:RequestHeader) = Results.BadRequest("No access")
Security.Authenticated[Person](findPerson, noPerson) { person =>
Action { implicit request =>
f(person)(request)
}
}
}
}
Person.findByRuid
in den Modellen Paket definiert ist ein Option[Person]
zurückzukehren, so dachte ich, das wäre einfach, aber ich bin eine Art von Typ-Parameter/Typ Pfad Problem schlagen und erhalten die folgende Kompilierung-Fehlermeldung auf der Linie mein Modell-Methode aufrufen:
type mismatch;
found : Option[models.Person]
required: Option[Person]
scheine ich etwas verpasst in meiner Scala Art Ausbildung zu haben und Hilfe schätzen würde. Wie verknüpfe ich meine models.Person mit dem Person type-Parameter?
Excellent tun konnten, danke. Irgendwie sah ich mir die Signatur an, auf die ich den Typ-Parameter gesetzt hatte. – wwkudu
Sie sind willkommen, genießen Sie Scala –