Erzwingen der Https-routing für die Anmeldung mit play framework
Ich will enforce https-routing für die login Seite nur für meine Anwendung.
Ist es möglich mit Spielen! ohne die Verwendung einer front-end-http-server?
- Warum auch immer, dass jemand bittet, ein Spiel-framework stellt sich die Frage, gibt es Antworten für 1.x und 2.x-Versionen? Gegeben, Sie sind so Verschieden, dies nur zu Verwirrung führen, wenn es nur mit verschiedenen Namen... Wie
Play
undRun
vielleicht. - Alle sagten, dass die Spielen! team, wenn Sie gestartet 2.0. Sie nicht hören wollte.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie eine
@Before
interceptor umleiten jede Anfrage, auch wenn der Benutzer eingibt: http://direkt. Unten ist der code, den ich verwenden (es funktioniert, wenn ausgeführt containerlessplay run
oder wenn hinter einer front-end wie auf Heroku).Hier ist ein Beispiel, das funktioniert mit Java-Spielen 2.1.1 und Heroku.
Dann an jeden Controller, den Sie überprüfen möchten für https, fügen Sie @Mit(ForceHttps.class). Oder, wenn Sie möchten, dass alle Controller, um zu überprüfen, fügen Sie eine Klasse HttpsController erstreckt Controller und haben alle Ihre Klassen erweitern HttpsController.
z.B.
Ich denke, dass Sie können überprüfen, in der die controller für die Anfrage.secure == true und dann redirect auf https.
request.secure
Feld im Spiel 2.2.request.sequre
steht in den Play-2.3, veröffentlicht im Juni 2014 finden Sie in den API-docs: playframework.com/documentation/2.3.x/api/scala/...Wenn Ihr mit AWS können Sie kündigen Ihr HTTPS auf die Load-Balancer und einen filter verwenden, umleiten HTTP-Verbindung zu HTTPS.
AWS Conf:
443 (Load Balancer) ----------> 80 (Server)
80 (Load Balancer) ----------> 80 (Server)
Filter:
Sollten Sie in der Lage sein. Das folgende tun:
Sollte diese Arbeit
Scheint es nicht möglich zu sein, aus der controller-Sicht. Aus der Vorlage Pere Lösung funktioniert, aber dies erzeugt nur die https-url aus der Vorlage.
Wenn der Benutzer auf die login-action, indem Sie entweder manuell eingeben oder folgenden link, um die http-url, es scheint nicht zu einem Weg zur Durchsetzung/redirect auf https.
Dem besten Weg scheint, eine front-end-proxy.