2011-07-27 8 views
7

アプリ全体でSSLを有効にする簡単な方法はありますか?Ruby on Rails:ssl_required:アプリ全体でどのように有効にしますか?

私はあなたのコントローラのすべてがApplicationControllerから継承する必要があり、デフォルトではレール2.3.8

+1

重複しているhttp://stackoverflow.com/questions/4961374/set-ssl-allowed-for-all-pages-in-rails? –

+0

@ジェフ、投稿は超古いです。それ以来tehコードが変更されています。 – NullVoxPopuli

答えて

7

を使用しています。

ssl_requiredは実際には、ssl_required?と呼ばれる保護されたメソッドに基づいており、特定のアクションにSSLが必要かどうかを判断します。この実装により、運用環境では常にSSLが必要になります(そうでない場合はそうではないため、通常どおり開発することができます)。

class ApplicationController < ActionController::Base 
    # (... other stuff ...) 

    protected 

    def ssl_required? 
    Rails.env.production? 
    end 
end 

は、ご使用の環境によっては、それはまた、(例えば、Apacheを使用している場合、あなたはポート80を超えるアプリケーションにサービスを提供しないように設定できます)のみHTTPS経由で利用できるように上流のサーバーことが可能であり得ます。これはサーバーの設定によって異なります。

+0

あなたはまだ使用するアクションを指定する必要はありませんか? ssl_requiredによって呼び出されたメソッドを再定義したとしても? – NullVoxPopuli

+0

ssl_requiredは、配列に格納されているアクションのリストを受け入れます。 ssl_requiredのデフォルト実装ですか?現在のアクションがその配列内にあるかどうかを単純にチェックします。これは、常にすべてのアクションに適用されるようにオーバーライドされます(ssl_required?がサブクラスで再びオーバーライドされない限り)。 –

+0

so ... ssl_requiredを呼び出すにはどうすればいいですか?世界的に? – NullVoxPopuli