2010-06-11 5 views
9

Ich möchte eine App in einer eingeschränkten privaten Beta auf Heroku ausführen.Heroku powered private restricted Beta

Wir ändern die App regelmäßig und haben keine Sicherheitsüberprüfung durchgeführt.

Um zu verhindern, dass irgendjemand etwas ausnutzt, möchten wir die gesamte Seite sperren, also brauchen Sie ein Passwort, um auf alles zugreifen zu können.

Idealerweise der Verwendung von .htaccess- und .htpasswd-Dateien zum Sperren einer gesamten Site auf einem Apache-Server.

Gibt es eine einfache Möglichkeit, dies für eine heroku gehostete App zu tun?

+0

Duplizieren/ähnlich der http://stackoverflow.com/questions/3839167/is-there-a-way-to-setup-simple-http-Authentifizierung-für-eine-App-auf-heroku – tothemario

Antwort

3

.htaccess und .htpasswd weist Apache im Wesentlichen an, den Benutzer mit einem Basic Auth-System zu authentifizieren. Sie können dasselbe mit einer reinen Rack-Ebene machen.

Siehe http://rack.rubyforge.org/doc/Rack/Auth/Basic.html

Weil Sie Heroku verwenden, gehe ich davon aus Sie eine Rack-kompatible Anwendung bereitstellen (entweder ein Gestell, Schienen oder Sinatra app).

5

Verwenden Sie einfach authenticate_or_request_with_http_basic in einem before_filter in Ihrem ApplicationController.

Sehen Sie diese Railscasts Episode für Anweisungen: http://railscasts.com/episodes/82-http-basic-authentication

+0

versuchte es, aber würde nicht schön mit Gerät spielen. schien eine unendliche Umleitungsschleife zu erzeugen –

+0

Ah! Füge einfach 'warden.custom_failure hinzu! wenn durchgeführt? 'Am Ende Ihrer Filtermethode (wie in https://gist.github.com/dc7906d07174c8514551) – plindberg

+0

Ich habe diese Methode mit dem' warden.custom_failure versucht! wenn durchgeführt? ', und es funktioniert, aber es verursacht ein anderes Problem. Wenn Sie versuchen, sich als Benutzer anzumelden (mit Hilfe von devise), wird "falscher Benutzername und falsches Passwort" angezeigt, wahrscheinlich weil versucht wird, die Benutzerschnittstelle zu verwenden, die ich für die HTTP-Standardauthentifizierung verwendet habe. Irgendwelche Ideen? –