Eine sehr einfache Möglichkeit ist die Verwendung der Aktionszusammensetzung. Werfen Sie einen Blick auf diesen von Guillaume Bort zur Verfügung gestellten Gist: Ссылка . Wenn Sie es in einer asynchronen Aktion verwenden möchten, können Sie Folgendes schreiben:
%Vor%SSL hat nichts mit der Standardauthentifizierung zu tun. Sie können HTTPS für API entweder direkt oder über einen Front-End-HTTP-Server wie ngnix verwenden. Es gibt ziemlich gute Details in Play-Dokumentation zu diesem Thema.
Im Grunde genommen habe ich die Antwort von @centr genommen und versucht, sie etwas lesbarer zu machen. Sehen Sie, ob Sie diese Version des gleichen Codes bevorzugen. Gründlich getestet, funktioniert wie erwartet.
%Vor%Wenn wir nur von basic auth sprechen, benötigen Sie kein externes Modul. Im Grunde können Sie es mithilfe der Aktionskomposition implementieren.
Hier ist ein vollständiges Beispiel darüber.
Wenn Sie auch Autorisierung benötigen, können Sie das vorherige Beispiel einfach mit Deadbolt kombinieren . Es ermöglicht Ihnen, Zugriff auf einige Gruppen von Clients bereitzustellen und anderen den Zugriff zu verweigern.
Die SSL-Unterstützung hat nichts mit der Authentifizierung zu tun. Dies wird jedoch in der Play-Dokumentation
erläutertLesen Sie die folgende Readme / den folgenden Artikel: Absichern von Single Page Apps und REST-Services und checken Sie das entsprechende Beispiel aus Anwendung (gleicher Link). Es erklärt, wie Sie tun, was Sie fragen.
Für Scala ist Secure Social wahrscheinlich die beste etablierte Lösung. Unter dem angegebenen Link finden Sie zahlreiche Dokumentationen und Beispiele. Sie können sich auch Play2-auth als weitere gültige Option ansehen.
Auf Play 2 Modules finden Sie noch mehr Möglichkeiten.
Wenn Sie Ihre eigene Lösung backen wollen / müssen, wird es wahrscheinlich immer noch nützlich sein, Code für bestehende Lösungen nach Inspiration und Ideen zu suchen. Nichtsdestotrotz, mein allgemeiner Ratschlag in Bezug auf alles, was mit Sicherheit zu tun hat, ist NICHT, es selbst zu implementieren, es sei denn, du brauchst es wirklich (und / oder weißt wirklich, was du tust).
Übrigens, hier gibt es absolut nichts Spezifisches an REST. Sie schützen im Wesentlichen Ihre Controller-Methoden, es ist also egal, ob ihr Aufruf von einem REST-Aufruf ausgelöst wurde oder nicht.
Tags und Links scala playframework playframework-2.0 typesafe-activator scala-collections