読者です 読者をやめる 読者になる 読者になる

ssl_requirementとrender_componentでstack level too deep

運用中のサイトにSSLを導入することになり、ssl_requirementを使ってみたらstack level too deepになってしまいました。
render_componentで読んだ先でもssl_requirementのbefore_filterがかかってしまうようで、http://にリダイレクトさせようとしているみたいです。しかもそのURLがrender_componentの呼び出し元なので、リダイレクトがループしてしまうようです。


ということで、render_componentで呼ばれたらSSLのチェック不要するようにしました。

--- vendor/plugins/ssl_requirement/lib/ssl_requirement.rb.orig  2010-06-08 11:36:06.000000000 +0900
+++ vendor/plugins/ssl_requirement/lib/ssl_requirement.rb 2010-06-08 11:35:52.000000000 +0900
@@ -47,7 +47,7 @@

   private
     def ensure_proper_protocol
-      return true if ssl_allowed?
+      return true if ssl_allowed? || component_request?

       if ssl_required? && !request.ssl?
         redirect_to "https://" + request.host + request.request_uri

2010-06-08 11:37 diffが逆だったのを修正しました。