Back

ruby - cas的相关问题:single sign out, 与gate way

发布时间: 2019-07-21 22:33:00

cas 服务器端:

https://github.com/rubycas/rubycas-server/  (内容多)

文档都在代码里.wiki中也有很多. 配置文档见 config.example.yml

这里也有配置:https://github.com/rubycas/rubycas-server/wiki/Installation

这里说了gateway的用法:https://github.com/rubycas/rubycas-server/wiki/Usage-Scenarios

客户端:

分成2个,古老的:https://github.com/rubycas/rubycas-client  (比较多)

https://github.com/rubycas/rubycas-client-rails  ( 几乎没内容)

新兴客户端:

https://github.com/biola/rack-cas

使用single sign out步骤:

1. Gemfile

2. config/environment.rb  

# 记得touch 这个文件
cas_logger = CASClient::Logger.new(Rails.root.join('log', 'cas.log'))
cas_logger.level = Logger::DEBUG

CASClient::Frameworks::Rails::Filter.configure(
  :cas_base_url => ENV['CAS_SERVER'],
  :username_session_key => :cas_user,
  :logger => cas_logger,
  :enable_single_sign_out => true
)

3. config/application.rb

0     # 给cas sso 使用

 42     config.action_controller.allow_forgery_protection = false

4 .对于rails 4.2 无法使用session_store ,参考: https://github.com/rails/activerecord-session_store

rails generate active_record:session_migration
bundle exec rake db:migrate

5. 为/config/initializers/session_store.rb

Rails.application.config.session_store :active_record_store, :key => '_cadae_session'

6. 为logger打个补丁

# config/initializers/log4r_patch.rb
class Log4r::Logger
  def formatter()
  end
end

Log4r::Logger.send :include, ActiveRecord::SessionStore::Extension::LoggerSilencer

7. Gemfile:

gem 'activerecord-session_store', '1.1.3'

8. 

$ mkdir tmp/sessions

Gateway 

为对应的controller 增加:

before_filter CASClient::Frameworks::Rails::GatewayFilter, :only => :index 

Back