Play Framework REST mit Standardauthentifizierung und SSL

8

Ich bin neu in diesem Authentifizierungsbereich. Ich habe viel gesucht, konnte jedoch keine Möglichkeit finden, die REST-Aufrufe des Play-Servers zu authentifizieren. Was sind die verschiedenen Möglichkeiten und Best Practices?

    
Prakash 07.04.2015, 12:33
quelle

6 Antworten

10

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.

    
centr 08.04.2015, 02:46
quelle
4

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%     
Peter Perháč 10.01.2017 23:54
quelle
3

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äutert     
Didac Montero 09.04.2015 07:46
quelle
2

Lesen 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.

    
Peanut 07.04.2015 13:25
quelle
2

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.

    
marvin82 07.04.2015 13:31
quelle
2

Ein Filter könnte ebenfalls verwendet werden. Das Folgende basiert auf Play 2.5.

%Vor%     
Henry 15.11.2016 21:03
quelle