RubyCAS-Client-Rails Single Sign Out

Rails 4のアプリでCASを使ってSSOしたいのでRubyCAS-Client-Railsを使ってチャレンジ。

rubycas/rubycas-client-rails · GitHub

現時点ではリポジトリから引っ張らないと動かない

echo "gem 'rubycas-client', :git => 'git://github.com/rubycas/rubycas-client.git'" >> Gemfile
echo "gem 'rubycas-client-rails', :git => 'git://github.com/rubycas/rubycas-client-rails.git'" >> Gemfile
bundle install

現状ではSingle Sign Outの処理がRails4に対応していないので修正する

lib/rubycas-client-rails.rb

   312           # Rails 3.0
    313           ## required_sess_store = ActiveRecord::SessionStore
    314           ## current_sess_store  = ::Rails.application.config.session_store
    315 
    316           # Rails 4.0
    317           required_sess_store = ActionDispatch::Session::ActiveRecordStore
    318           current_sess_store  = ::Rails.application.config.session_store
    319 
    320           if current_sess_store == required_sess_store
    321             session_id = read_service_session_lookup(si)
    322 
    323             if session_id
    324               session = current_sess_store.session_class.find_by_session_id(session_id)