やることは全体にBasic認証を掛けることとあまり変わらない。対象となるページのコントローラ内でアクションにBasic認証のフィルタを掛ければ良い。例えば、http://railsアプリ/home/indexにBasic認証を掛けたいときは、Railsアプリディレクトリ内の「app/controllers/home_controller.rb」ファイルを編集する。
プログラム
Rails3.1以上
home_controller.rb
class HomeController < ApplicationController # Basic認証フィルタを対象アクションに指定 http_basic_authenticate_with :name => 'Basic認証ユーザ名', :password => 'Basic認証パスワード', :only => :index def index end end
Rails3.0以下
home_controller.rb
class HomeController < ApplicationController # Basic認証フィルタを対象アクションに指定 before_filter :auth, :only => :index def index end # 下記にBasic認証の設定を記述 private def auth authenticate_or_request_with_http_basic do |user,pass| user == 'Basic認証ユーザ名' && pass == 'Basic認証パスワード' end end end
記述したユーザ名とパスワードでBasic認証を通る事が出来る。