我已经在我的机器上安装并设置了 RubyCAS-Server 和 RubyCAS-Client。登录工作正常,但当我尝试注销时,我从 RubyCAS-Server 收到此错误消息:

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-Server 中的迁移,看起来该表中根本不应该有用户名列。

有谁知道为什么会发生这种情况以及我能做些什么?

有帮助吗?

解决方案

似乎 gem 的 0.6 版本中存在一个错误(可能与 Rails 2.1 中对查找器所做的更改一致),详细信息请参见 错误票. 。在此期间,你可以尝试 从源代码树安装.

其他提示

对于 ruby​​ CAS,有两种会话:

(1).申请会议。

(2)。单点登录 (SSO) 会话。

您可以使用 sinatra-session gem 来管理应用程序会话,然后使用 会话结束! 销毁应用程序会话的辅助方法。要销毁 SSO 会话,请取消设置 会话[:cas_ticket] 注销路由中的参数。

例子:

对于 Sinatra: get '/logout' do session_end! # provided by sinatra-session gem session[:cas_ticket] = nil # session variable set by CAS server end

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top