RubyCAS サーバーでログアウトを機能させるにはどうすればよいですか?
-
09-06-2019 - |
質問
自分のマシンに RubyCAS-Server と RubyCAS-Client をインストールしてセットアップしました。ログインは完全に機能しますが、ログアウトしようとすると、RubyCAS サーバーから次のエラー メッセージが表示されます。
Camping Problem!
CASServer::Controllers::Logout.GET
ActiveRecord::StatementInvalid Mysql::Error: Unknown column 'username' in 'where clause': SELECT * FROM `casserver_pgt` WHERE (username = 'lgs') :
gem のバージョン 0.6 を使用しています。RubyCAS サーバーの移行を見ると、そのテーブルにはユーザー名列がまったくあってはならないように見えます。
なぜこれが起こっているのか、そしてそれに対して何ができるのか知っている人はいますか?
解決
この gem のバージョン 0.6 にはバグがあるようです (おそらく Rails 2.1 のファインダーに加えられた変更と同時に発生します)。詳しくはこちらをご覧ください。 バグチケット. 。それまでの間、試してみてください ソースツリーからインストールする.
他のヒント
Ruby CAS の場合、2 種類のセッションがあります。
(1)。アプリケーションセッション。
(2)。シングル サインオン (SSO) セッション。
アプリケーションセッションの管理にはsinatra-session gemを使用できます。 セッション終了! ヘルパー メソッドを使用してアプリケーション セッションを破棄します。SSO セッションを破棄するには、 セッション[:cas_ticket] ログアウトルートのパラメータ。
例:
シナトラの場合: get '/logout' do
session_end! # provided by sinatra-session gem
session[:cas_ticket] = nil # session variable set by CAS server
end