Czy istnieje prosty sposób włączenia protokołu SSL w całej aplikacji?Ruby on Rails: ssl_required: jak włączyć w całej aplikacji?
Używam szyn 2.3.8
Czy istnieje prosty sposób włączenia protokołu SSL w całej aplikacji?Ruby on Rails: ssl_required: jak włączyć w całej aplikacji?
Używam szyn 2.3.8
Domyślnie wszystkich kontrolerów powinny dziedziczyć ApplicationController
.
ssl_required
jest rzeczywiście wspierany przez chronioną metodę o nazwie ssl_required?
, która określa, czy dla danej akcji wymagane jest SSL. Ta implementacja spowoduje, że protokół SSL będzie zawsze wymagany w środowisku produkcyjnym (ale nie w inny sposób, więc nadal możesz wykonywać programowanie w zwykły sposób).
class ApplicationController < ActionController::Base
# (... other stuff ...)
protected
def ssl_required?
Rails.env.production?
end
end
zależności od środowiska, może to być również możliwe do serwera nadrzędnego, aby tylko być dostępne za pośrednictwem protokołu HTTPS (na przykład, jeśli używasz Apache, można go skonfigurować, aby nie służyć swoją aplikację przez port 80). To zależy od konfiguracji serwera.
czy nie musisz jeszcze określać, jakich działań użyć? nawet jeśli przedefiniujesz metodę o nazwie ssl_required? – NullVoxPopuli
ssl_required przyjmuje listę akcji, które przechowuje w tablicy. Domyślna implementacja ssl_required? po prostu sprawdza, czy bieżąca akcja znajduje się w tej tablicy. To przesłania to, aby było stosowane do wszystkich akcji, zawsze (no chyba, że ssl_required? Jest nadpisywane ponownie w podklasie). –
więc ... jak wywołać ssl_required? globalnie? – NullVoxPopuli
Duplikat http://stackoverflow.com/questions/4961374/set-ssl-allowed-for-all-pages-in-rails? –
@Jeff, post jest bardzo stary. od tego czasu zmienił się kod. – NullVoxPopuli