OSDN Git Service

SSL対応コードを追加(まだ一部)
authorTaro Matsuzawa <tmatsuzawa@kbmj.com>
Tue, 7 Sep 2010 17:41:47 +0000 (02:41 +0900)
committerTaro Matsuzawa <tmatsuzawa@kbmj.com>
Tue, 7 Sep 2010 17:41:47 +0000 (02:41 +0900)
app/controllers/application_controller.rb
app/controllers/cart_controller.rb
db/migrate/20100907091542_add_use_ssl_to_systems.rb [new file with mode: 0644]
spec/fixtures/systems.yml

index 2790713..d20f421 100644 (file)
@@ -21,6 +21,9 @@ class ApplicationController < ActionController::Base
   # セッションハイジャック対策を導入
   include CheckSessionSignature
 
+  include SslRequirement
+  ssl_allowed :get_address
+
   def load_system
     @system = System.find(:first)
     @system_supplier_use_flag = true if @system && @system.supplier_use_flag
@@ -38,5 +41,24 @@ class ApplicationController < ActionController::Base
     end
   end
 
+  private
+  #sslの有効無効をuse_sslで決定する
+  def ensure_proper_protocol
+    return true unless @system #specでload_systemが通らない問題に対応するため
+    return true unless @system.use_ssl
+    return true if ssl_allowed?
+    
+    if ssl_required? && !request.ssl?
+      redirect_to "https://" + request.host + request.request_uri
+      flash.keep
+      return false
+    elsif request.ssl? && !ssl_required?
+      redirect_to "http://" + request.host + request.request_uri
+      flash.keep
+      return false
+    end
+  end
+
+    
 end
 
index 2274543..90546d1 100644 (file)
@@ -4,6 +4,8 @@ require 'open-uri'
 class CartController < BaseController
   include CartControllerExtend
 
+  ssl_required :temporary_shipping, :shipping, :purchase, :purchase2, :purchase_confirm, :confirm, :complete, :before_finish, :finish, :select_delivery_time, :select_delivery_time_with_delivery_trader_id_ajax
+
   before_filter :cart_check, :only => [:temporary_shipping,:shipping, :purchase,:purchase2, :confirm, :complete, :delivery, :delivery2]
   before_filter :login_divaricate ,:only =>[:purchase,:purchase2,:confirm, :complete, :delivery, :delivery2]
   before_filter :login_check, :only => [:shipping]
diff --git a/db/migrate/20100907091542_add_use_ssl_to_systems.rb b/db/migrate/20100907091542_add_use_ssl_to_systems.rb
new file mode 100644 (file)
index 0000000..b6492f2
--- /dev/null
@@ -0,0 +1,9 @@
+class AddUseSslToSystems < ActiveRecord::Migration
+  def self.up
+    add_column :systems, :use_ssl, :boolean, :default => false
+  end
+
+  def self.down
+    remove_column :systems, :use_ssl
+  end
+end
index e416edc..21eb993 100644 (file)
@@ -7,3 +7,4 @@ load_by_system_test_id_1:
   googleanalytics_use_flag: true
   googleanalytics_account_num: UA-00000-1
   tracking_code: "<script></script>"
+  use_ssl: false
\ No newline at end of file